Grammar IDLLexer
ANTLR-generated HTML file from idl.g

Terence Parr, MageLang Institute
ANTLR Version 2.7.5 (20050403); 1989-2005


Definition of lexer IDLLexer, which is a subclass of 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.
 */
mSEMI 
|	mQUESTION 
|	mLPAREN 
|	mRPAREN 
|	mLBRACK 
|	mRBRACK 
|	mLCURLY 
|	mRCURLY 
|	mOR 
|	mXOR 
|	mAND 
|	mCOLON 
|	mCOMMA 
|	mDOT 
|	mASSIGN 
|	mNOT 
|	mLT 
|	mLSHIFT 
|	mGT 
|	mRSHIFT 
|	mDIV 
|	mPLUS 
|	mMINUS 
|	mTILDE 
|	mSTAR 
|	mMOD 
|	mSCOPEOP 
|	mUNDERLINE 
|	mWS 
|	mPREPROC_DIRECTIVE 
|	mSL_COMMENT 
|	mML_COMMENT 
|	mCHAR_LITERAL 
|	mWIDE_CHAR_LITERAL 
|	mSTRING_LITERAL 
|	mWIDE_STRING_LITERAL 
|	mHEX 
|	mINT 
|	mOCTAL 
|	mFLOAT 
|	mIDENT 
|	mESCAPED_IDENT 
mSEMI
	:	';' 
	;

mQUESTION
	:	'?' 
	;

mLPAREN
	:	'(' 
	;

mRPAREN
	:	')' 
	;

mLBRACK
	:	'[' 
	;

mRBRACK
	:	']' 
	;

mLCURLY
	:	'{' 
	;

mRCURLY
	:	'}' 
	;

mOR
	:	'|' 
	;

mXOR
	:	'^' 
	;

mAND
	:	'&' 
	;

mCOLON
	:	':' 
	;

mCOMMA
	:	',' 
	;

mDOT
	:	'.' 
	;

mASSIGN
	:	'=' 
	;

mNOT
	:	'!' 
	;

mLT
	:	'<' 
	;

mLSHIFT
	:	"<<" 
	;

mGT
	:	'>' 
	;

mRSHIFT
	:	">>" 
	;

mDIV
	:	'/' 
	;

mPLUS
	:	'+' 
	;

mMINUS
	:	'-' 
	;

mTILDE
	:	'~' 
	;

mSTAR
	:	'*' 
	;

mMOD
	:	'%' 
	;

mSCOPEOP
	:	"::" 
	;

mUNDERLINE
	:	"_" 
	;

mWS
	:	(	' ' 
		|	'\t' 
		|	'\n' 
		|	'\r' 
		) 
		
	;

mPREPROC_DIRECTIVE
	:	'#' ( ~'\n' )* '\n' 
	;

mSL_COMMENT
	:	"//" ( ~'\n' )* '\n' 
	;

mML_COMMENT
	:	"/*" 
		(	'\n' 
		|	( '*' )+ 
			(	'\n' 
			|	(	'*' 
				|	'/' 
				|	'\n' 
				) 
			) 
		|	(	'*' 
			|	'\n' 
			) 
		)* 
		"*/" 
	;

mCHAR_LITERAL
	:	'\'' 
		(	mESC 
		|	~'\'' 
		) 
		'\'' 
	;

protected mESC
	:	'\\' 
		(	'n' 
		|	't' 
		|	'v' 
		|	'b' 
		|	'r' 
		|	'f' 
		|	'a' 
		|	'\\' 
		|	'?' 
		|	'\'' 
		|	'"' 
		|	mOCTDIGIT 
			(	mOCTDIGIT 
				(	mOCTDIGIT 
				|	
				) 
			|	
			) 
			
		|	'x' mHEXDIGIT 
			(	mHEXDIGIT 
			|	
			) 
			
		|	'u' mHEXDIGIT 
			(	mHEXDIGIT 
				(	mHEXDIGIT 
					(	mHEXDIGIT 
					|	
					) 
				|	
				) 
			|	
			) 
			
		) 
	;

mWIDE_CHAR_LITERAL
	:	'L' mCHAR_LITERAL 
	;

mSTRING_LITERAL
	:	'"' 
		(	mESC 
		|	~'"' 
		)* 
		'"' 
	;

mWIDE_STRING_LITERAL
	:	'L' mSTRING_LITERAL 
	;

protected mOCTDIGIT
	:			'0'..'7' 
	;

protected mHEXDIGIT
	:	(				'0'..'9' 
		|				'a'..'f' 
		|				'A'..'F' 
		) 
	;

protected mVOCAB
	:			'\3'..'\377' 
	;

protected mDIGIT
	:			'0'..'9' 
	;

protected mNONZERODIGIT
	:			'1'..'9' 
	;

mHEX
	:	(	"0x" 
		|	"0X" 
		) 
		( mHEXDIGIT )+ 
	;

mINT
	:	mNONZERODIGIT ( mDIGIT )* 
		(	'.' ( mDIGIT )* 
			(	( (	'e' 
					|	'E' 
					) 
					(	'+' 
					|	'-' 
					|	
					) 
					( mDIGIT )+ ) 
			|	(	'd' 
				|	'D' 
				) 
				
			|	
			) 
		|	(	'e' 
			|	'E' 
			) 
			(	'+' 
			|	'-' 
			|	
			) 
			( mDIGIT )+ 
		|	(	'd' 
			|	'D' 
			) 
			
		|	
		) 
	;

mOCTAL
	:	'0' 
		(	( mDIGIT )+ 
		|	mFLOAT 
		|	(	'd' 
			|	'D' 
			) 
			
		|	
		) 
	;

mFLOAT
	:	'.' ( mDIGIT )+ 
		(	(	'e' 
			|	'E' 
			) 
			(	'+' 
			|	'-' 
			|	
			) 
			( mDIGIT )+ 
		|	(	'd' 
			|	'D' 
			) 
			
		|	
		) 
	;

mIDENT
	:	(				'a'..'z' 
		|				'A'..'Z' 
		) 
		(				'a'..'z' 
		|				'A'..'Z' 
		|	'_' 
		|				'0'..'9' 
		)* 
	;

mESCAPED_IDENT
	:	'_' 
		(				'a'..'z' 
		|				'A'..'Z' 
		) 
		(				'a'..'z' 
		|				'A'..'Z' 
		|	'_' 
		|				'0'..'9' 
		)* 
		
	;