Click here to Skip to main content
15,886,731 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 486.6K   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.TokenMgrError 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="classst4tic_1_1_token_mgr_error.html">TokenMgrError</a>
  </div>
</div>
<div class="contents">
<h1>st4tic.TokenMgrError Class Reference</h1><!-- doxytag: class="st4tic::TokenMgrError" -->
<p><a href="classst4tic_1_1_token_mgr_error-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#abe04a60f48044261f92259e5c3051a86">getMessage</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#a1ff623d604b04182596cb323e53eeb9e">TokenMgrError</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#a60e4fdf5fa14fe5fc68f8626892f9b4f">TokenMgrError</a> (String message, int reason)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#a44d954a31d35ccf91447f1e0518551b8">TokenMgrError</a> (boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason)</td></tr>
<tr><td colspan="2"><h2>Static Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static final String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#a3afc35f446925faa0b91ffb213041461">addEscapes</a> (String str)</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_1_token_mgr_error.html#a375af8219189a0ac38afc1318ed57326">LexicalError</a> (boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar)</td></tr>
<tr><td colspan="2"><h2>Package Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#adefd941908c52f8b78f54b63ca98324a">errorCode</a></td></tr>
<tr><td colspan="2"><h2>Static Package Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static final int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#a5008bd8dfcd353cc0b011fbbdf40e18c">LEXICAL_ERROR</a> = 0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static final int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#a758acf2d9cbbbd057fe059f804c96fd9">STATIC_LEXER_ERROR</a> = 1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static final int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#a4319c6619aa13e9527028343af426086">INVALID_LEXICAL_STATE</a> = 2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static final int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classst4tic_1_1_token_mgr_error.html#a4b416bf660f1e9fc5ec38d0127723a6a">LOOP_DETECTED</a> = 3</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p><a class="el" href="classst4tic_1_1_token.html">Token</a> Manager Error. </p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a1ff623d604b04182596cb323e53eeb9e"></a><!-- doxytag: member="st4tic::TokenMgrError::TokenMgrError" ref="a1ff623d604b04182596cb323e53eeb9e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">st4tic.TokenMgrError.TokenMgrError </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>No arg constructor. </p>

</div>
</div>
<a class="anchor" id="a60e4fdf5fa14fe5fc68f8626892f9b4f"></a><!-- doxytag: member="st4tic::TokenMgrError::TokenMgrError" ref="a60e4fdf5fa14fe5fc68f8626892f9b4f" args="(String message, int reason)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">st4tic.TokenMgrError.TokenMgrError </td>
          <td>(</td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>reason</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Constructor with message and reason. </p>

</div>
</div>
<a class="anchor" id="a44d954a31d35ccf91447f1e0518551b8"></a><!-- doxytag: member="st4tic::TokenMgrError::TokenMgrError" ref="a44d954a31d35ccf91447f1e0518551b8" args="(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">st4tic.TokenMgrError.TokenMgrError </td>
          <td>(</td>
          <td class="paramtype">boolean&nbsp;</td>
          <td class="paramname"> <em>EOFSeen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>lexState</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>errorLine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>errorColumn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>errorAfter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>curChar</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>reason</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Full Constructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a3afc35f446925faa0b91ffb213041461"></a><!-- doxytag: member="st4tic::TokenMgrError::addEscapes" ref="a3afc35f446925faa0b91ffb213041461" args="(String str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static final String st4tic.TokenMgrError.addEscapes </td>
          <td>(</td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>str</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Replaces unprintable characters by their escaped (or unicode escaped) equivalents in the given string </p>

</div>
</div>
<a class="anchor" id="abe04a60f48044261f92259e5c3051a86"></a><!-- doxytag: member="st4tic::TokenMgrError::getMessage" ref="abe04a60f48044261f92259e5c3051a86" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">String st4tic.TokenMgrError.getMessage </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>You can also modify the body of this method to customize your error messages. For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not of end-users concern, so you can return something like :</p>
<p>"Internal Error : Please file a bug report .... "</p>
<p>from this method for such cases in the release version of your parser. </p>

</div>
</div>
<a class="anchor" id="a375af8219189a0ac38afc1318ed57326"></a><!-- doxytag: member="st4tic::TokenMgrError::LexicalError" ref="a375af8219189a0ac38afc1318ed57326" args="(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static String st4tic.TokenMgrError.LexicalError </td>
          <td>(</td>
          <td class="paramtype">boolean&nbsp;</td>
          <td class="paramname"> <em>EOFSeen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>lexState</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>errorLine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>errorColumn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">String&nbsp;</td>
          <td class="paramname"> <em>errorAfter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>curChar</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a detailed message for the Error when it is thrown by the token manager to indicate a lexical error. Parameters : EOFSeen : indicates if EOF caused the lexical error curLexState : lexical state in which this error occurred errorLine : line number when the error occurred errorColumn : column number when the error occurred errorAfter : prefix that was seen before this error occurred curchar : the offending character Note: You can customize the lexical error message by modifying this method. </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="adefd941908c52f8b78f54b63ca98324a"></a><!-- doxytag: member="st4tic::TokenMgrError::errorCode" ref="adefd941908c52f8b78f54b63ca98324a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classst4tic_1_1_token_mgr_error.html#adefd941908c52f8b78f54b63ca98324a">st4tic.TokenMgrError.errorCode</a><code> [package]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Indicates the reason why the exception is thrown. It will have one of the above 4 values. </p>

</div>
</div>
<a class="anchor" id="a4319c6619aa13e9527028343af426086"></a><!-- doxytag: member="st4tic::TokenMgrError::INVALID_LEXICAL_STATE" ref="a4319c6619aa13e9527028343af426086" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">final int <a class="el" href="classst4tic_1_1_token_mgr_error.html#a4319c6619aa13e9527028343af426086">st4tic.TokenMgrError.INVALID_LEXICAL_STATE</a> = 2<code> [static, package]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Tried to change to an invalid lexical state. </p>

</div>
</div>
<a class="anchor" id="a5008bd8dfcd353cc0b011fbbdf40e18c"></a><!-- doxytag: member="st4tic::TokenMgrError::LEXICAL_ERROR" ref="a5008bd8dfcd353cc0b011fbbdf40e18c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">final int <a class="el" href="classst4tic_1_1_token_mgr_error.html#a5008bd8dfcd353cc0b011fbbdf40e18c">st4tic.TokenMgrError.LEXICAL_ERROR</a> = 0<code> [static, package]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Lexical error occurred. </p>

</div>
</div>
<a class="anchor" id="a4b416bf660f1e9fc5ec38d0127723a6a"></a><!-- doxytag: member="st4tic::TokenMgrError::LOOP_DETECTED" ref="a4b416bf660f1e9fc5ec38d0127723a6a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">final int <a class="el" href="classst4tic_1_1_token_mgr_error.html#a4b416bf660f1e9fc5ec38d0127723a6a">st4tic.TokenMgrError.LOOP_DETECTED</a> = 3<code> [static, package]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Detected (and bailed out of) an infinite loop in the token manager. </p>

</div>
</div>
<a class="anchor" id="a758acf2d9cbbbd057fe059f804c96fd9"></a><!-- doxytag: member="st4tic::TokenMgrError::STATIC_LEXER_ERROR" ref="a758acf2d9cbbbd057fe059f804c96fd9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">final int <a class="el" href="classst4tic_1_1_token_mgr_error.html#a758acf2d9cbbbd057fe059f804c96fd9">st4tic.TokenMgrError.STATIC_LEXER_ERROR</a> = 1<code> [static, package]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>An attempt was made to create a second instance of a static token manager. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>F:/Java/St4tic/st4tic/src/st4tic/<a class="el" href="_token_mgr_error_8java.html">TokenMgrError.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:23 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