Click here to Skip to main content
15,893,994 members
Articles / Programming Languages / Java

Create Your Own Programming Language

Rate me:
Please Sign up or sign in to vote.
4.87/5 (53 votes)
21 Jan 2010CPOL12 min read 487.8K   15.4K   87  
I've created my own programming language called Alef++ for fun, and for better understanding: What is a programing language? How does it work? Can I can create my own?
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>St4tic: st4tic.reflect.St4ticReflection Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespacest4tic.html">st4tic</a>.<a class="el" href="namespacest4tic_1_1reflect.html">reflect</a>.<a class="el" href="classst4tic_1_1reflect_1_1_st4tic_reflection.html">St4ticReflection</a>
  </div>
</div>
<div class="contents">
<h1>st4tic.reflect.St4ticReflection Class Reference</h1><!-- doxytag: class="st4tic::reflect::St4ticReflection" -->
<p><a href="classst4tic_1_1reflect_1_1_st4tic_reflection-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1reflect_1_1_st4tic_reflection.html#aabac76815db6b918429468154e1f43fa">pushPackage</a> (String packageName)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1reflect_1_1_st4tic_reflection.html#a416cf2cb7ca68c2a3e7fae0c6a3ff628">fullIdentifier</a> (String className)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static Class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1reflect_1_1_st4tic_reflection.html#ac3e7e6640731a5f0e27ea53d7d0fb379">makeObject</a> (String className)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static boolean&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1reflect_1_1_st4tic_reflection.html#a8ac2fff2ffaea8588102786904fe2c0f">existsField</a> (Object classInstance, String fieldName)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1reflect_1_1_st4tic_reflection.html#a744948fe93749de706cd02bd9bcd677f">getFieldObject</a> (Object classInstance, String fieldName)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static boolean&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1reflect_1_1_st4tic_reflection.html#adc2ba12f09eb09b3f69df3aa73c9292a">existsSubroutine</a> (Object classInstance, String methodName, St4ticValue...args)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1reflect_1_1_st4tic_reflection.html#ac58795ac9fc30706c58791d6f17412de">invokeStaticSubroutine</a> (Object classInstance, String methodName, St4ticValue...args)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Magical class for java reflection =)</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Adrabi Abderrahim </dd></dl>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a8ac2fff2ffaea8588102786904fe2c0f"></a><!-- doxytag: member="st4tic::reflect::St4ticReflection::existsField" ref="a8ac2fff2ffaea8588102786904fe2c0f" args="(Object classInstance, String fieldName)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static boolean st4tic.reflect.St4ticReflection.existsField </td>
          <td>(</td>
          <td class="paramtype">Object&nbsp;</td>
          <td class="paramname"> <em>classInstance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>fieldName</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check existence of the field </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>classInstance</em>&nbsp;</td><td>(Object : Class Object) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fieldName</em>&nbsp;</td><td>(String : Filed Name) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div>
<a class="anchor" id="adc2ba12f09eb09b3f69df3aa73c9292a"></a><!-- doxytag: member="st4tic::reflect::St4ticReflection::existsSubroutine" ref="adc2ba12f09eb09b3f69df3aa73c9292a" args="(Object classInstance, String methodName, St4ticValue...args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static boolean st4tic.reflect.St4ticReflection.existsSubroutine </td>
          <td>(</td>
          <td class="paramtype">Object&nbsp;</td>
          <td class="paramname"> <em>classInstance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>methodName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">St4ticValue...&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check existence of the subroutine with a specified parameters </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>classInstance</em>&nbsp;</td><td>(Object : Class Object) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>methodName</em>&nbsp;</td><td>(String : Subroutine Name) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>(St4ticValue[] : Types) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div>
<a class="anchor" id="a416cf2cb7ca68c2a3e7fae0c6a3ff628"></a><!-- doxytag: member="st4tic::reflect::St4ticReflection::fullIdentifier" ref="a416cf2cb7ca68c2a3e7fae0c6a3ff628" args="(String className)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static String st4tic.reflect.St4ticReflection.fullIdentifier </td>
          <td>(</td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>className</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get a full class identifier </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td>(String : Class Name) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div>
<a class="anchor" id="a744948fe93749de706cd02bd9bcd677f"></a><!-- doxytag: member="st4tic::reflect::St4ticReflection::getFieldObject" ref="a744948fe93749de706cd02bd9bcd677f" args="(Object classInstance, String fieldName)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static Object st4tic.reflect.St4ticReflection.getFieldObject </td>
          <td>(</td>
          <td class="paramtype">Object&nbsp;</td>
          <td class="paramname"> <em>classInstance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>fieldName</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return a field object from spicified class name for statics </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>classInstance</em>&nbsp;</td><td>(Object : Class Object) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fieldName</em>&nbsp;</td><td>(String : Field Name) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div>
<a class="anchor" id="ac58795ac9fc30706c58791d6f17412de"></a><!-- doxytag: member="st4tic::reflect::St4ticReflection::invokeStaticSubroutine" ref="ac58795ac9fc30706c58791d6f17412de" args="(Object classInstance, String methodName, St4ticValue...args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static Object st4tic.reflect.St4ticReflection.invokeStaticSubroutine </td>
          <td>(</td>
          <td class="paramtype">Object&nbsp;</td>
          <td class="paramname"> <em>classInstance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>methodName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">St4ticValue...&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>For invoking a static subroutines and return value if is not void </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>classInstance</em>&nbsp;</td><td>(Object : Class Object) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>methodName</em>&nbsp;</td><td>(String : Method Name) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>(St4ticValue[] : Method Arguments) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div>
<a class="anchor" id="ac3e7e6640731a5f0e27ea53d7d0fb379"></a><!-- doxytag: member="st4tic::reflect::St4ticReflection::makeObject" ref="ac3e7e6640731a5f0e27ea53d7d0fb379" args="(String className)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static Class st4tic.reflect.St4ticReflection.makeObject </td>
          <td>(</td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>className</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>making an object from string name </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>className</em>&nbsp;</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div>
<a class="anchor" id="aabac76815db6b918429468154e1f43fa"></a><!-- doxytag: member="st4tic::reflect::St4ticReflection::pushPackage" ref="aabac76815db6b918429468154e1f43fa" args="(String packageName)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void st4tic.reflect.St4ticReflection.pushPackage </td>
          <td>(</td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>packageName</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>F:/Java/St4tic/st4tic/src/st4tic/reflect/<a class="el" href="_st4tic_reflection_8java.html">St4ticReflection.java</a></li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Variables</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Dec 27 10:50:24 2009 for St4tic by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Technical Lead
Morocco Morocco
Adrabi!, Just another Ghost in the Shell =)

Comments and Discussions