<HTML>
<HEAD>
<TITLE>Grammar cgp/CGPParser.g</TITLE>
</HEAD>
<BODY>
<table border=1 cellpadding=5>
<tr>
<td>
<font size=+2>Grammar CGPLexer</font><br>
<a href=http://www.ANTLR.org>ANTLR</a>-generated HTML file from cgp/CGPParser.g
<p>
Terence Parr, <a href=http://www.magelang.com>MageLang Institute</a>
<br>ANTLR Version 2.7.0; 1989-1999
</td>
</tr>
</table>
<PRE>
	
	package cgp;
	

/** 
 * Conceptual Graph Processes lexical analyser.
 *
 * David Benn, June-October 2000
 */
class CGPLexer extends CharScanner {

/** Lexer nextToken rule:
 *  The lexer nextToken rule is synthesized from all of the user-defined
 *  lexer rules.  It logically consists of one big alternative block with
 *  each user-defined rule being an alternative.
 */
<a href=CGPLexer.html#mLPAREN>mLPAREN</a> 
|	<a href=CGPLexer.html#mRPAREN>mRPAREN</a> 
|	<a href=CGPLexer.html#mLBRACK>mLBRACK</a> 
|	<a href=CGPLexer.html#mRBRACK>mRBRACK</a> 
|	<a href=CGPLexer.html#mLBRACE>mLBRACE</a> 
|	<a href=CGPLexer.html#mRBRACE>mRBRACE</a> 
|	<a href=CGPLexer.html#mSEMI>mSEMI</a> 
|	<a href=CGPLexer.html#mCOLON>mCOLON</a> 
|	<a href=CGPLexer.html#mDOT>mDOT</a> 
|	<a href=CGPLexer.html#mCOMMA>mCOMMA</a> 
|	<a href=CGPLexer.html#mGETS>mGETS</a> 
|	<a href=CGPLexer.html#mPLUS>mPLUS</a> 
|	<a href=CGPLexer.html#mMINUS>mMINUS</a> 
|	<a href=CGPLexer.html#mMUL>mMUL</a> 
|	<a href=CGPLexer.html#mEQ>mEQ</a> 
|	<a href=CGPLexer.html#mNE>mNE</a> 
|	<a href=CGPLexer.html#mGT>mGT</a> 
|	<a href=CGPLexer.html#mLT>mLT</a> 
|	<a href=CGPLexer.html#mGE>mGE</a> 
|	<a href=CGPLexer.html#mLE>mLE</a> 
|	<a href=CGPLexer.html#mTILDE>mTILDE</a> 
|	<a href=CGPLexer.html#mIDENT>mIDENT</a> 
|	<a href=CGPLexer.html#mNUMBER>mNUMBER</a> 
|	<a href=CGPLexer.html#mSTRING>mSTRING</a> 
|	<a href=CGPLexer.html#mGRAPH_STRING>mGRAPH_STRING</a> 
|	<a href=CGPLexer.html#mWS>mWS</a> 
|	<a href=CGPLexer.html#mCOMMENT>mCOMMENT</a> 
<a name=mLPAREN>mLPAREN</a>
	:	'(' 
	;

<a name=mRPAREN>mRPAREN</a>
	:	')' 
	;

<a name=mLBRACK>mLBRACK</a>
	:	'[' 
	;

<a name=mRBRACK>mRBRACK</a>
	:	']' 
	;

<a name=mLBRACE>mLBRACE</a>
	:	'{' 
	;

<a name=mRBRACE>mRBRACE</a>
	:	'}' 
	;

<a name=mSEMI>mSEMI</a>
	:	';' 
	;

<a name=mCOLON>mCOLON</a>
	:	':' 
	;

<a name=mDOT>mDOT</a>
	:	'.' 
	;

<a name=mCOMMA>mCOMMA</a>
	:	',' 
	;

<a name=mGETS>mGETS</a>
	:	'=' 
	;

<a name=mPLUS>mPLUS</a>
	:	'+' 
	;

<a name=mMINUS>mMINUS</a>
	:	'-' 
	;

<a name=mMUL>mMUL</a>
	:	'*' 
	;

<a name=mEQ>mEQ</a>
	:	"==" 
	;

<a name=mNE>mNE</a>
	:	"!=" 
	;

<a name=mGT>mGT</a>
	:	'>' 
	;

<a name=mLT>mLT</a>
	:	'<' 
	;

<a name=mGE>mGE</a>
	:	">=" 
	;

<a name=mLE>mLE</a>
	:	"<=" 
	;

<a name=mTILDE>mTILDE</a>
	:	'~' 
	;

<a name=mIDENT>mIDENT</a>
	:	(	<a href=CGPLexer.html#mLETTER>mLETTER</a> 
		|	'_' 
		) 
		(	<a href=CGPLexer.html#mDIGIT>mDIGIT</a> 
		|	<a href=CGPLexer.html#mLETTER>mLETTER</a> 
		|	'_' 
		)* 
	;

protected <a name=mLETTER>mLETTER</a>
	:			'A'..'Z' 
	|			'a'..'z' 
	;

protected <a name=mDIGIT>mDIGIT</a>
	:			'0'..'9' 
	;

<a name=mNUMBER>mNUMBER</a>
	:	( <a href=CGPLexer.html#mDIGIT>mDIGIT</a> )+ 
		(	'.' ( <a href=CGPLexer.html#mDIGIT>mDIGIT</a> )+ 
		|	
		) 
	;

protected <a name=mMETACHAR>mMETACHAR</a>
	:	'?' 
	|	'|' 
	|	'\'' 
	|	'#' 
	|	'+' 
	|	'*' 
	|	'(' 
	|	')' 
	|	'{' 
	|	'}' 
	|	'~' 
	;

<a name=mSTRING>mSTRING</a>
	:	'"' ( ~'"' )* '"' 
	;

<a name=mGRAPH_STRING>mGRAPH_STRING</a>
	:	'`' ( ~'`' )+ '`' 
	;

<a name=mWS>mWS</a>
	:	(	( (	"\r\n" 
				|	'\r' 
				|	'\n' 
				) 
				) 
		|	' ' 
		|	'\t' 
		|	'\f' 
		) 
		
	;

<a name=mCOMMENT>mCOMMENT</a>
	:	"//" ( (	'\r' 
			|	'\n' 
			) )* 
		(	"\r\n" 
		|	'\r' 
		|	'\n' 
		) 
		
	|	'#' ( (	'\r' 
			|	'\n' 
			) )* 
		(	"\r\n" 
		|	'\r' 
		|	'\n' 
		) 
		
	|	"/*" 
		(				{ LA(2)!='/' }?
'*' 
		|	( "\r\n" ) => ( "\r\n" ) 
		|	(	'\r' 
			|	'\n' 
			) 
			
		|	(	'*' 
			|	'\r' 
			|	'\n' 
			) 
		)* 
		"*/" 
	;
