ANTLR-generated file resulting from grammar pix.g
Diagnostic output

Terence Parr, MageLang Institute
with John Lilley, Empathy Software
ANTLR Version 2.7.7 (20090306); 1989-2005

*** Header Action.
This action will appear at the top of all generated files.
	
	// gets inserted after generated namespace specifications in the
	// header file. But outside the generated class.
	
*** End of Header Action


*** Lexer Preamble Action.
This action will appear before the declaration of your lexer class:
	
*** End of Lexer Preamble Action

*** Your lexer class is called 'PIXCfgLexer' and is a subclass of 'CharScanner'.

*** User-defined lexer  class members:
These are the member declarations that you defined for your class:
	
*** End of user-defined lexer class members

*** String literals used in the parser
The following string literals were used in the parser.
An actual code generator would arrange to place these literals
into a table in the generated lexer, so that actions in the
generated lexer could match token text against the literals.
String literals used in the lexer are not listed here, as they
are incorporated into the mainstream lexer processing.
*** End of string literals used by the parser

*** 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.

The grammar analyzer has determined that the synthesized
nextToken rule is non-deterministic (i.e., it has ambiguities)
This means that there is some overlap of the character
lookahead for two or more of your lexer rules.
Start of an alternative block.
	The lookahead set for this block is:
		k==1: {
			'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
			'\u0008', '\t', '\n', '\u000b', '\u000c', '\r', 
			'\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', 
			'\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', 
			'\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f', 
			' ', '!', '"', '#', '$', '%', 
			'&', '\'', '(', ')', '*', '+', 
			',', '-', '.', '/', '0', '1', 
			'2', '3', '4', '5', '6', '7', 
			'8', '9', ':', ';', '<', '=', 
			'>', '?', '@', 'A', 'B', 'C', 
			'D', 'E', 'F', 'G', 'H', 'I', 
			'J', 'K', 'L', 'M', 'N', 'O', 
			'P', 'Q', 'R', 'S', 'T', 'U', 
			'V', 'W', 'X', 'Y', 'Z', '[', 
			']', '^', '_', 'a', 'b', 'c', 
			'd', 'e', 'f', 'g', 'h', 'i', 
			'j', 'k', 'l', 'm', 'n', 'o', 
			'p', 'q', 'r', 's', 't', 'u', 
			'v', 'w', 'x', 'y', 'z', '{', 
			'|', '}', '~', '\u007f', '\u0080', '\u0081', 
			'\u0082', '\u0083', '\u0084', '\u0085', '\u0086', '\u0087', 
			'\u0088', '\u0089', '\u008a', '\u008b', '\u008c', '\u008d', 
			'\u008e', '\u008f', '\u0090', '\u0091', '\u0092', '\u0093', 
			'\u0094', '\u0095', '\u0096', '\u0097', '\u0098', '\u0099', 
			'\u009a', '\u009b', '\u009c', '\u009d', '\u009e', '\u009f', 
			'\u00a0', '\u00a1', '\u00a2', '\u00a3', '\u00a4', '\u00a5', 
			'\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', '\u00ab', 
			'\u00ac', '\u00ad', '\u00ae', '\u00af', '\u00b0', '\u00b1', 
			'\u00b2', '\u00b3', '\u00b4', '\u00b5', '\u00b6', '\u00b7', 
			'\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', '\u00bd', 
			'\u00be', '\u00bf', '\u00c0', '\u00c1', '\u00c2', '\u00c3', 
			'\u00c4', '\u00c5', '\u00c6', '\u00c7', '\u00c8', '\u00c9', 
			'\u00ca', '\u00cb', '\u00cc', '\u00cd', '\u00ce', '\u00cf', 
			'\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', '\u00d5', 
			'\u00d6', '\u00d7', '\u00d8', '\u00d9', '\u00da', '\u00db', 
			'\u00dc', '\u00dd', '\u00de', '\u00df', '\u00e0', '\u00e1', 
			'\u00e2', '\u00e3', '\u00e4', '\u00e5', '\u00e6', '\u00e7', 
			'\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec', '\u00ed', 
			'\u00ee', '\u00ef', '\u00f0', '\u00f1', '\u00f2', '\u00f3', 
			'\u00f4', '\u00f5', '\u00f6', '\u00f7', '\u00f8', '\u00f9', 
			'\u00fa', '\u00fb', '\u00fc', '\u00fd', '\u00fe', '\u00ff'
		 }
		k==2: {
			'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
			'\u0008', '\t', '\n', '\u000b', '\u000c', '\r', 
			'\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', 
			'\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', 
			'\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f', 
			' ', '!', '"', '#', '$', '%', 
			'&', '\'', '(', ')', '*', '+', 
			',', '-', '.', '/', '0', '1', 
			'2', '3', '4', '5', '6', '7', 
			'8', '9', ':', ';', '<', '=', 
			'>', '?', '@', 'A', 'B', 'C', 
			'D', 'E', 'F', 'G', 'H', 'I', 
			'J', 'K', 'L', 'M', 'N', 'O', 
			'P', 'Q', 'R', 'S', 'T', 'U', 
			'V', 'W', 'X', 'Y', 'Z', '[', 
			'\\', ']', '^', '_', '`', 'a', 
			'b', 'c', 'd', 'e', 'f', 'g', 
			'h', 'i', 'j', 'k', 'l', 'm', 
			'n', 'o', 'p', 'q', 'r', 's', 
			't', 'u', 'v', 'w', 'x', 'y', 
			'z', '{', '|', '}', '~', '\u007f', 
			'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0085', 
			'\u0086', '\u0087', '\u0088', '\u0089', '\u008a', '\u008b', 
			'\u008c', '\u008d', '\u008e', '\u008f', '\u0090', '\u0091', 
			'\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', 
			'\u0098', '\u0099', '\u009a', '\u009b', '\u009c', '\u009d', 
			'\u009e', '\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', 
			'\u00a4', '\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', 
			'\u00aa', '\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', 
			'\u00b0', '\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', 
			'\u00b6', '\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', 
			'\u00bc', '\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', 
			'\u00c2', '\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', 
			'\u00c8', '\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', 
			'\u00ce', '\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', 
			'\u00d4', '\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', 
			'\u00da', '\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', 
			'\u00e0', '\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', 
			'\u00e6', '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', 
			'\u00ec', '\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', 
			'\u00f2', '\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', 
			'\u00f8', '\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', 
			'\u00fe', '\u00ff'
		 }
		k==3: {
			'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
			'\u0008', '\t', '\n', '\u000b', '\u000c', '\r', 
			'\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', 
			'\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', 
			'\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f', 
			' ', '!', '"', '#', '$', '%', 
			'&', '\'', '(', ')', '*', '+', 
			',', '-', '.', '/', '0', '1', 
			'2', '3', '4', '5', '6', '7', 
			'8', '9', ':', ';', '<', '=', 
			'>', '?', '@', 'A', 'B', 'C', 
			'D', 'E', 'F', 'G', 'H', 'I', 
			'J', 'K', 'L', 'M', 'N', 'O', 
			'P', 'Q', 'R', 'S', 'T', 'U', 
			'V', 'W', 'X', 'Y', 'Z', '[', 
			'\\', ']', '^', '_', '`', 'a', 
			'b', 'c', 'd', 'e', 'f', 'g', 
			'h', 'i', 'j', 'k', 'l', 'm', 
			'n', 'o', 'p', 'q', 'r', 's', 
			't', 'u', 'v', 'w', 'x', 'y', 
			'z', '{', '|', '}', '~', '\u007f', 
			'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0085', 
			'\u0086', '\u0087', '\u0088', '\u0089', '\u008a', '\u008b', 
			'\u008c', '\u008d', '\u008e', '\u008f', '\u0090', '\u0091', 
			'\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', 
			'\u0098', '\u0099', '\u009a', '\u009b', '\u009c', '\u009d', 
			'\u009e', '\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', 
			'\u00a4', '\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', 
			'\u00aa', '\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', 
			'\u00b0', '\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', 
			'\u00b6', '\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', 
			'\u00bc', '\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', 
			'\u00c2', '\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', 
			'\u00c8', '\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', 
			'\u00ce', '\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', 
			'\u00d4', '\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', 
			'\u00da', '\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', 
			'\u00e0', '\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', 
			'\u00e6', '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', 
			'\u00ec', '\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', 
			'\u00f2', '\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', 
			'\u00f8', '\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', 
			'\u00fe', '\u00ff'
		 }
	This block has multiple alternatives:
		
		Alternate(1) will be taken IF:
		The lookahead set: 
			k==1: {'!' }
			k==2: {
				'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
				'\u0008', '\t', '\n', '\u000b', '\u000c', '\r', 
				'\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', 
				'\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', 
				'\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f', 
				' ', '!', '"', '#', '$', '%', 
				'&', '\'', '(', ')', '*', '+', 
				',', '-', '.', '/', '0', '1', 
				'2', '3', '4', '5', '6', '7', 
				'8', '9', ':', ';', '<', '=', 
				'>', '?', '@', 'A', 'B', 'C', 
				'D', 'E', 'F', 'G', 'H', 'I', 
				'J', 'K', 'L', 'M', 'N', 'O', 
				'P', 'Q', 'R', 'S', 'T', 'U', 
				'V', 'W', 'X', 'Y', 'Z', '[', 
				'\\', ']', '^', '_', '`', 'a', 
				'b', 'c', 'd', 'e', 'f', 'g', 
				'h', 'i', 'j', 'k', 'l', 'm', 
				'n', 'o', 'p', 'q', 'r', 's', 
				't', 'u', 'v', 'w', 'x', 'y', 
				'z', '{', '|', '}', '~', '\u007f', 
				'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0085', 
				'\u0086', '\u0087', '\u0088', '\u0089', '\u008a', '\u008b', 
				'\u008c', '\u008d', '\u008e', '\u008f', '\u0090', '\u0091', 
				'\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', 
				'\u0098', '\u0099', '\u009a', '\u009b', '\u009c', '\u009d', 
				'\u009e', '\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', 
				'\u00a4', '\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', 
				'\u00aa', '\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', 
				'\u00b0', '\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', 
				'\u00b6', '\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', 
				'\u00bc', '\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', 
				'\u00c2', '\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', 
				'\u00c8', '\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', 
				'\u00ce', '\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', 
				'\u00d4', '\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', 
				'\u00da', '\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', 
				'\u00e0', '\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', 
				'\u00e6', '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', 
				'\u00ec', '\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', 
				'\u00f2', '\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', 
				'\u00f8', '\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', 
				'\u00fe', '\u00ff'
			 }
		is matched.
		Rule Reference: mLINE_COMMENT
		
		Otherwise, Alternate(2) will be taken IF:
		The lookahead set: 
			{ '\n', '\r' }
		is matched.
		Rule Reference: mNEWLINE
		
		Otherwise, Alternate(3) will be taken IF:
		The lookahead set: 
			k==1: {':' }
			k==2: {
				'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
				'\u0008', '\t', '\n', '\u000b', '\u000c', '\r', 
				'\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', 
				'\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', 
				'\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f', 
				' ', '!', '"', '#', '$', '%', 
				'&', '\'', '(', ')', '*', '+', 
				',', '-', '.', '/', '0', '1', 
				'2', '3', '4', '5', '6', '7', 
				'8', '9', ':', ';', '<', '=', 
				'>', '?', '@', 'A', 'B', 'C', 
				'D', 'E', 'F', 'G', 'H', 'I', 
				'J', 'K', 'L', 'M', 'N', 'O', 
				'P', 'Q', 'R', 'S', 'T', 'U', 
				'V', 'W', 'X', 'Y', 'Z', '[', 
				'\\', ']', '^', '_', '`', 'a', 
				'b', 'c', 'd', 'e', 'f', 'g', 
				'h', 'i', 'j', 'k', 'l', 'm', 
				'n', 'o', 'p', 'q', 'r', 's', 
				't', 'u', 'v', 'w', 'x', 'y', 
				'z', '{', '|', '}', '~', '\u007f', 
				'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0085', 
				'\u0086', '\u0087', '\u0088', '\u0089', '\u008a', '\u008b', 
				'\u008c', '\u008d', '\u008e', '\u008f', '\u0090', '\u0091', 
				'\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', 
				'\u0098', '\u0099', '\u009a', '\u009b', '\u009c', '\u009d', 
				'\u009e', '\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', 
				'\u00a4', '\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', 
				'\u00aa', '\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', 
				'\u00b0', '\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', 
				'\u00b6', '\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', 
				'\u00bc', '\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', 
				'\u00c2', '\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', 
				'\u00c8', '\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', 
				'\u00ce', '\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', 
				'\u00d4', '\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', 
				'\u00da', '\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', 
				'\u00e0', '\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', 
				'\u00e6', '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', 
				'\u00ec', '\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', 
				'\u00f2', '\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', 
				'\u00f8', '\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', 
				'\u00fe', '\u00ff'
			 }
		is matched.
		Rule Reference: mCOLON_COMMENT
		
		Otherwise, Alternate(4) will be taken IF:
		The lookahead set: 
			k==1: {':' }
			k==2: { }
		is matched.
		Rule Reference: mCOLON
		
		Otherwise, Alternate(5) will be taken IF:
		The lookahead set: 
			{ 
				'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
				'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
				'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
				'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
				'\u001c', '\u001d', '\u001e', '\u001f', ' ', '\u007f', 
				'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0085', 
				'\u0086', '\u0087', '\u0088', '\u0089', '\u008a', '\u008b', 
				'\u008c', '\u008d', '\u008e', '\u008f', '\u0090', '\u0091', 
				'\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', 
				'\u0098', '\u0099', '\u009a', '\u009b', '\u009c', '\u009d', 
				'\u009e', '\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', 
				'\u00a4', '\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', 
				'\u00aa', '\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', 
				'\u00b0', '\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', 
				'\u00b6', '\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', 
				'\u00bc', '\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', 
				'\u00c2', '\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', 
				'\u00c8', '\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', 
				'\u00ce', '\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', 
				'\u00d4', '\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', 
				'\u00da', '\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', 
				'\u00e0', '\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', 
				'\u00e6', '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', 
				'\u00ec', '\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', 
				'\u00f2', '\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', 
				'\u00f8', '\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', 
				'\u00fe', '\u00ff'
			 }
		is matched.
		Rule Reference: mWhitespace
		
		Otherwise, Alternate(6) will be taken IF:
		The lookahead set: 
			k==1: {
				'0', '1', '2', '3', '4', 
				'5', '6', '7', '8', '9', 'a', 
				'b', 'c', 'd', 'e', 'f'
			 }
			k==2: {
				'.', '0', '1', '2', '3', 
				'4', '5', '6', '7', '8', '9', 
				':', 'a', 'b', 'c', 'd', 'e', 
				'f'
			 }
			k==3: {
				'.', '0', '1', '2', '3', 
				'4', '5', '6', '7', '8', '9', 
				':', 'a', 'b', 'c', 'd', 'e', 
				'f'
			 }
		is matched.
		Rule Reference: mNUMBER
		
		Otherwise, Alternate(7) will be taken IF:
		The lookahead set: 
			{ '.' }
		is matched.
		Rule Reference: mDOT
		
		Otherwise, Alternate(8) will be taken IF:
		The lookahead set: 
			k==1: {
				'$', 'A', 'B', 'C', 'D', 
				'E', 'F', 'G', 'H', 'I', 'J', 
				'K', 'L', 'M', 'N', 'O', 'P', 
				'Q', 'R', 'S', 'T', 'U', 'V', 
				'W', 'X', 'Y', 'Z', 'a', 'b', 
				'c', 'd', 'e', 'f', 'g', 'h', 
				'i', 'j', 'k', 'l', 'm', 'n', 
				'o', 'p', 'q', 'r', 's', 't', 
				'u', 'v', 'w', 'x', 'y', 'z'
			 }
			k==2: {
				'!', '"', '#', '$', '%', 
				'&', '\'', '(', ')', '*', '+', 
				',', '-', '.', '/', '0', '1', 
				'2', '3', '4', '5', '6', '7', 
				'8', '9', ':', ';', '<', '=', 
				'>', '?', '@', 'A', 'B', 'C', 
				'D', 'E', 'F', 'G', 'H', 'I', 
				'J', 'K', 'L', 'M', 'N', 'O', 
				'P', 'Q', 'R', 'S', 'T', 'U', 
				'V', 'W', 'X', 'Y', 'Z', '\\', 
				'^', '_', '`', 'a', 'b', 'c', 
				'd', 'e', 'f', 'g', 'h', 'i', 
				'j', 'k', 'l', 'm', 'n', 'o', 
				'p', 'q', 'r', 's', 't', 'u', 
				'v', 'w', 'x', 'y', 'z'
			 }
			k==3: {
				'!', '"', '#', '$', '%', 
				'&', '\'', '(', ')', '*', '+', 
				',', '-', '.', '/', '0', '1', 
				'2', '3', '4', '5', '6', '7', 
				'8', '9', ':', ';', '<', '=', 
				'>', '?', '@', 'A', 'B', 'C', 
				'D', 'E', 'F', 'G', 'H', 'I', 
				'J', 'K', 'L', 'M', 'N', 'O', 
				'P', 'Q', 'R', 'S', 'T', 'U', 
				'V', 'W', 'X', 'Y', 'Z', '\\', 
				'^', '_', '`', 'a', 'b', 'c', 
				'd', 'e', 'f', 'g', 'h', 'i', 
				'j', 'k', 'l', 'm', 'n', 'o', 
				'p', 'q', 'r', 's', 't', 'u', 
				'v', 'w', 'x', 'y', 'z'
			 }
		is matched.
		Rule Reference: mWORD
		
		Otherwise, Alternate(9) will be taken IF:
		The lookahead set: 
			{ '"' }
		is matched.
		Rule Reference: mSTRING
		
		Otherwise, Alternate(10) will be taken IF:
		The lookahead set: 
			{ '|' }
		is matched.
		Rule Reference: mPIPE_CHAR
		
		Otherwise, Alternate(11) will be taken IF:
		The lookahead set: 
			{ '#' }
		is matched.
		Rule Reference: mNUMBER_SIGN
		
		Otherwise, Alternate(12) will be taken IF:
		The lookahead set: 
			{ '%' }
		is matched.
		Rule Reference: mPERCENT
		
		Otherwise, Alternate(13) will be taken IF:
		The lookahead set: 
			{ '&' }
		is matched.
		Rule Reference: mAMPERSAND
		
		Otherwise, Alternate(14) will be taken IF:
		The lookahead set: 
			{ '\'' }
		is matched.
		Rule Reference: mAPOSTROPHE
		
		Otherwise, Alternate(15) will be taken IF:
		The lookahead set: 
			{ '(' }
		is matched.
		Rule Reference: mOPENING_PAREN
		
		Otherwise, Alternate(16) will be taken IF:
		The lookahead set: 
			{ ')' }
		is matched.
		Rule Reference: mCLOSING_PAREN
		
		Otherwise, Alternate(17) will be taken IF:
		The lookahead set: 
			{ '*' }
		is matched.
		Rule Reference: mSTAR
		
		Otherwise, Alternate(18) will be taken IF:
		The lookahead set: 
			{ '+' }
		is matched.
		Rule Reference: mPLUS
		
		Otherwise, Alternate(19) will be taken IF:
		The lookahead set: 
			{ ',' }
		is matched.
		Rule Reference: mCOMMA
		
		Otherwise, Alternate(20) will be taken IF:
		The lookahead set: 
			{ '-' }
		is matched.
		Rule Reference: mMINUS
		
		Otherwise, Alternate(21) will be taken IF:
		The lookahead set: 
			{ '/' }
		is matched.
		Rule Reference: mSLASH
		
		Otherwise, Alternate(22) will be taken IF:
		The lookahead set: 
			{ ';' }
		is matched.
		Rule Reference: mSEMICOLON
		
		Otherwise, Alternate(23) will be taken IF:
		The lookahead set: 
			{ '<' }
		is matched.
		Rule Reference: mLESS_THAN
		
		Otherwise, Alternate(24) will be taken IF:
		The lookahead set: 
			{ '=' }
		is matched.
		Rule Reference: mEQUALS
		
		Otherwise, Alternate(25) will be taken IF:
		The lookahead set: 
			{ '>' }
		is matched.
		Rule Reference: mGREATER_THAN
		
		Otherwise, Alternate(26) will be taken IF:
		The lookahead set: 
			{ '?' }
		is matched.
		Rule Reference: mQUESTION
		
		Otherwise, Alternate(27) will be taken IF:
		The lookahead set: 
			{ '@' }
		is matched.
		Rule Reference: mCOMMERCIAL_AT
		
		Otherwise, Alternate(28) will be taken IF:
		The lookahead set: 
			{ '[' }
		is matched.
		Rule Reference: mOPENING_SQUARE
		
		Otherwise, Alternate(29) will be taken IF:
		The lookahead set: 
			{ ']' }
		is matched.
		Rule Reference: mCLOSING_SQUARE
		
		Otherwise, Alternate(30) will be taken IF:
		The lookahead set: 
			{ '^' }
		is matched.
		Rule Reference: mCARET
		
		Otherwise, Alternate(31) will be taken IF:
		The lookahead set: 
			{ '_' }
		is matched.
		Rule Reference: mUNDERLINE
		
		Otherwise, Alternate(32) will be taken IF:
		The lookahead set: 
			{ '{' }
		is matched.
		Rule Reference: mOPENING_BRACE
		
		Otherwise, Alternate(33) will be taken IF:
		The lookahead set: 
			{ '}' }
		is matched.
		Rule Reference: mCLOSING_BRACE
		
		Otherwise, Alternate(34) will be taken IF:
		The lookahead set: 
			{ '~' }
		is matched.
		Rule Reference: mTILDE
		
		Otherwise, Alternate(35) will be taken IF:
		The lookahead set: 
			k==1: {'!' }
			k==2: { }
		is matched.
		Rule Reference: mEXLAMATION
		
		OTHERWISE, a NoViableAlt exception will be thrown
		
	End of alternatives
End of alternative block.
*** End of nextToken lexer rule.

*** User-defined Lexer rules:
	
	*** Lexer Rule: mLINE_COMMENT
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '!' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '!' }
			is matched.
			Match string literal "!"
			Start ZERO-OR-MORE (...)+ block:
				Start of an alternative block.
					The lookahead set for this block is:
						{ 
							'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
							'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
							'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
							'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
							'\u001c', '\u001d', '\u001e', '\u001f', ' ', '!', 
							'"', '#', '$', '%', '&', '\'', 
							'(', ')', '*', '+', ',', '-', 
							'.', '/', '0', '1', '2', '3', 
							'4', '5', '6', '7', '8', '9', 
							':', ';', '<', '=', '>', '?', 
							'@', 'A', 'B', 'C', 'D', 'E', 
							'F', 'G', 'H', 'I', 'J', 'K', 
							'L', 'M', 'N', 'O', 'P', 'Q', 
							'R', 'S', 'T', 'U', 'V', 'W', 
							'X', 'Y', 'Z', '[', '\\', ']', 
							'^', '_', '`', 'a', 'b', 'c', 
							'd', 'e', 'f', 'g', 'h', 'i', 
							'j', 'k', 'l', 'm', 'n', 'o', 
							'p', 'q', 'r', 's', 't', 'u', 
							'v', 'w', 'x', 'y', 'z', '{', 
							'|', '}', '~', '\u007f', '\u0080', '\u0081', 
							'\u0082', '\u0083', '\u0084', '\u0085', '\u0086', '\u0087', 
							'\u0088', '\u0089', '\u008a', '\u008b', '\u008c', '\u008d', 
							'\u008e', '\u008f', '\u0090', '\u0091', '\u0092', '\u0093', 
							'\u0094', '\u0095', '\u0096', '\u0097', '\u0098', '\u0099', 
							'\u009a', '\u009b', '\u009c', '\u009d', '\u009e', '\u009f', 
							'\u00a0', '\u00a1', '\u00a2', '\u00a3', '\u00a4', '\u00a5', 
							'\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', '\u00ab', 
							'\u00ac', '\u00ad', '\u00ae', '\u00af', '\u00b0', '\u00b1', 
							'\u00b2', '\u00b3', '\u00b4', '\u00b5', '\u00b6', '\u00b7', 
							'\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', '\u00bd', 
							'\u00be', '\u00bf', '\u00c0', '\u00c1', '\u00c2', '\u00c3', 
							'\u00c4', '\u00c5', '\u00c6', '\u00c7', '\u00c8', '\u00c9', 
							'\u00ca', '\u00cb', '\u00cc', '\u00cd', '\u00ce', '\u00cf', 
							'\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', '\u00d5', 
							'\u00d6', '\u00d7', '\u00d8', '\u00d9', '\u00da', '\u00db', 
							'\u00dc', '\u00dd', '\u00de', '\u00df', '\u00e0', '\u00e1', 
							'\u00e2', '\u00e3', '\u00e4', '\u00e5', '\u00e6', '\u00e7', 
							'\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec', '\u00ed', 
							'\u00ee', '\u00ef', '\u00f0', '\u00f1', '\u00f2', '\u00f3', 
							'\u00f4', '\u00f5', '\u00f6', '\u00f7', '\u00f8', '\u00f9', 
							'\u00fa', '\u00fb', '\u00fc', '\u00fd', '\u00fe', '\u00ff'
						 }
					This block has a single alternative
					
					Alternate(1) will be taken IF:
					The lookahead set: 
						{ 
							'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
							'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
							'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
							'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
							'\u001c', '\u001d', '\u001e', '\u001f', ' ', '!', 
							'"', '#', '$', '%', '&', '\'', 
							'(', ')', '*', '+', ',', '-', 
							'.', '/', '0', '1', '2', '3', 
							'4', '5', '6', '7', '8', '9', 
							':', ';', '<', '=', '>', '?', 
							'@', 'A', 'B', 'C', 'D', 'E', 
							'F', 'G', 'H', 'I', 'J', 'K', 
							'L', 'M', 'N', 'O', 'P', 'Q', 
							'R', 'S', 'T', 'U', 'V', 'W', 
							'X', 'Y', 'Z', '[', '\\', ']', 
							'^', '_', '`', 'a', 'b', 'c', 
							'd', 'e', 'f', 'g', 'h', 'i', 
							'j', 'k', 'l', 'm', 'n', 'o', 
							'p', 'q', 'r', 's', 't', 'u', 
							'v', 'w', 'x', 'y', 'z', '{', 
							'|', '}', '~', '\u007f', '\u0080', '\u0081', 
							'\u0082', '\u0083', '\u0084', '\u0085', '\u0086', '\u0087', 
							'\u0088', '\u0089', '\u008a', '\u008b', '\u008c', '\u008d', 
							'\u008e', '\u008f', '\u0090', '\u0091', '\u0092', '\u0093', 
							'\u0094', '\u0095', '\u0096', '\u0097', '\u0098', '\u0099', 
							'\u009a', '\u009b', '\u009c', '\u009d', '\u009e', '\u009f', 
							'\u00a0', '\u00a1', '\u00a2', '\u00a3', '\u00a4', '\u00a5', 
							'\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', '\u00ab', 
							'\u00ac', '\u00ad', '\u00ae', '\u00af', '\u00b0', '\u00b1', 
							'\u00b2', '\u00b3', '\u00b4', '\u00b5', '\u00b6', '\u00b7', 
							'\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', '\u00bd', 
							'\u00be', '\u00bf', '\u00c0', '\u00c1', '\u00c2', '\u00c3', 
							'\u00c4', '\u00c5', '\u00c6', '\u00c7', '\u00c8', '\u00c9', 
							'\u00ca', '\u00cb', '\u00cc', '\u00cd', '\u00ce', '\u00cf', 
							'\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', '\u00d5', 
							'\u00d6', '\u00d7', '\u00d8', '\u00d9', '\u00da', '\u00db', 
							'\u00dc', '\u00dd', '\u00de', '\u00df', '\u00e0', '\u00e1', 
							'\u00e2', '\u00e3', '\u00e4', '\u00e5', '\u00e6', '\u00e7', 
							'\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec', '\u00ed', 
							'\u00ee', '\u00ef', '\u00f0', '\u00f1', '\u00f2', '\u00f3', 
							'\u00f4', '\u00f5', '\u00f6', '\u00f7', '\u00f8', '\u00f9', 
							'\u00fa', '\u00fb', '\u00fc', '\u00fd', '\u00fe', '\u00ff'
						 }
					is matched.
					Start of alternative block.
						Start of an alternative block.
							The lookahead set for this block is:
								{ 
									'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
									'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
									'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
									'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
									'\u001c', '\u001d', '\u001e', '\u001f', ' ', '!', 
									'"', '#', '$', '%', '&', '\'', 
									'(', ')', '*', '+', ',', '-', 
									'.', '/', '0', '1', '2', '3', 
									'4', '5', '6', '7', '8', '9', 
									':', ';', '<', '=', '>', '?', 
									'@', 'A', 'B', 'C', 'D', 'E', 
									'F', 'G', 'H', 'I', 'J', 'K', 
									'L', 'M', 'N', 'O', 'P', 'Q', 
									'R', 'S', 'T', 'U', 'V', 'W', 
									'X', 'Y', 'Z', '[', '\\', ']', 
									'^', '_', '`', 'a', 'b', 'c', 
									'd', 'e', 'f', 'g', 'h', 'i', 
									'j', 'k', 'l', 'm', 'n', 'o', 
									'p', 'q', 'r', 's', 't', 'u', 
									'v', 'w', 'x', 'y', 'z', '{', 
									'|', '}', '~', '\u007f', '\u0080', '\u0081', 
									'\u0082', '\u0083', '\u0084', '\u0085', '\u0086', '\u0087', 
									'\u0088', '\u0089', '\u008a', '\u008b', '\u008c', '\u008d', 
									'\u008e', '\u008f', '\u0090', '\u0091', '\u0092', '\u0093', 
									'\u0094', '\u0095', '\u0096', '\u0097', '\u0098', '\u0099', 
									'\u009a', '\u009b', '\u009c', '\u009d', '\u009e', '\u009f', 
									'\u00a0', '\u00a1', '\u00a2', '\u00a3', '\u00a4', '\u00a5', 
									'\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', '\u00ab', 
									'\u00ac', '\u00ad', '\u00ae', '\u00af', '\u00b0', '\u00b1', 
									'\u00b2', '\u00b3', '\u00b4', '\u00b5', '\u00b6', '\u00b7', 
									'\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', '\u00bd', 
									'\u00be', '\u00bf', '\u00c0', '\u00c1', '\u00c2', '\u00c3', 
									'\u00c4', '\u00c5', '\u00c6', '\u00c7', '\u00c8', '\u00c9', 
									'\u00ca', '\u00cb', '\u00cc', '\u00cd', '\u00ce', '\u00cf', 
									'\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', '\u00d5', 
									'\u00d6', '\u00d7', '\u00d8', '\u00d9', '\u00da', '\u00db', 
									'\u00dc', '\u00dd', '\u00de', '\u00df', '\u00e0', '\u00e1', 
									'\u00e2', '\u00e3', '\u00e4', '\u00e5', '\u00e6', '\u00e7', 
									'\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec', '\u00ed', 
									'\u00ee', '\u00ef', '\u00f0', '\u00f1', '\u00f2', '\u00f3', 
									'\u00f4', '\u00f5', '\u00f6', '\u00f7', '\u00f8', '\u00f9', 
									'\u00fa', '\u00fb', '\u00fc', '\u00fd', '\u00fe', '\u00ff'
								 }
							This block has multiple alternatives:
								
								Alternate(1) will be taken IF:
								The lookahead set: 
									{ '\r' }
								is matched.
								Match character '\r'
								
								Otherwise, Alternate(2) will be taken IF:
								The lookahead set: 
									{ '\n' }
								is matched.
								Match character '\n'
								
								OTHERWISE, a NoViableAlt exception will be thrown
								
							End of alternatives
						End of alternative block.
					
					OTHERWISE, a NoViableAlt exception will be thrown
					
				End of alternative block.
			End ZERO-OR-MORE block.
			Rule Reference: mNEWLINE
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mLINE_COMMENT
	
	*** Lexer Rule: mNEWLINE
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '\n', '\r' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '\n', '\r' }
			is matched.
			Start of alternative block.
				Start of an alternative block.
					The lookahead set for this block is:
						k==1: {'\n', '\r' }
						k==2: {'\n' }
					This block has multiple alternatives:
						
						Alternate(1) will be taken IF:
						The lookahead set: 
							k==1: {'\r' }
							k==2: {'\n' }
						is matched.
						Match string literal "\r\n"
						
						Otherwise, Alternate(2) will be taken IF:
						The lookahead set: 
							k==1: {'\r' }
							k==2: { }
						is matched.
						Match character '\r'
						
						Otherwise, Alternate(3) will be taken IF:
						The lookahead set: 
							{ '\n' }
						is matched.
						Match character '\n'
						
						OTHERWISE, a NoViableAlt exception will be thrown
						
					End of alternatives
				End of alternative block.
			ACTION: newline();
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mNEWLINE
	
	*** Lexer Rule: mCOLON_COMMENT
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ ':' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ ':' }
			is matched.
			Rule Reference: mCOLON
			Start ZERO-OR-MORE (...)+ block:
				Start of an alternative block.
					The lookahead set for this block is:
						{ 
							'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
							'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
							'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
							'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
							'\u001c', '\u001d', '\u001e', '\u001f', ' ', '!', 
							'"', '#', '$', '%', '&', '\'', 
							'(', ')', '*', '+', ',', '-', 
							'.', '/', '0', '1', '2', '3', 
							'4', '5', '6', '7', '8', '9', 
							':', ';', '<', '=', '>', '?', 
							'@', 'A', 'B', 'C', 'D', 'E', 
							'F', 'G', 'H', 'I', 'J', 'K', 
							'L', 'M', 'N', 'O', 'P', 'Q', 
							'R', 'S', 'T', 'U', 'V', 'W', 
							'X', 'Y', 'Z', '[', '\\', ']', 
							'^', '_', '`', 'a', 'b', 'c', 
							'd', 'e', 'f', 'g', 'h', 'i', 
							'j', 'k', 'l', 'm', 'n', 'o', 
							'p', 'q', 'r', 's', 't', 'u', 
							'v', 'w', 'x', 'y', 'z', '{', 
							'|', '}', '~', '\u007f', '\u0080', '\u0081', 
							'\u0082', '\u0083', '\u0084', '\u0085', '\u0086', '\u0087', 
							'\u0088', '\u0089', '\u008a', '\u008b', '\u008c', '\u008d', 
							'\u008e', '\u008f', '\u0090', '\u0091', '\u0092', '\u0093', 
							'\u0094', '\u0095', '\u0096', '\u0097', '\u0098', '\u0099', 
							'\u009a', '\u009b', '\u009c', '\u009d', '\u009e', '\u009f', 
							'\u00a0', '\u00a1', '\u00a2', '\u00a3', '\u00a4', '\u00a5', 
							'\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', '\u00ab', 
							'\u00ac', '\u00ad', '\u00ae', '\u00af', '\u00b0', '\u00b1', 
							'\u00b2', '\u00b3', '\u00b4', '\u00b5', '\u00b6', '\u00b7', 
							'\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', '\u00bd', 
							'\u00be', '\u00bf', '\u00c0', '\u00c1', '\u00c2', '\u00c3', 
							'\u00c4', '\u00c5', '\u00c6', '\u00c7', '\u00c8', '\u00c9', 
							'\u00ca', '\u00cb', '\u00cc', '\u00cd', '\u00ce', '\u00cf', 
							'\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', '\u00d5', 
							'\u00d6', '\u00d7', '\u00d8', '\u00d9', '\u00da', '\u00db', 
							'\u00dc', '\u00dd', '\u00de', '\u00df', '\u00e0', '\u00e1', 
							'\u00e2', '\u00e3', '\u00e4', '\u00e5', '\u00e6', '\u00e7', 
							'\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec', '\u00ed', 
							'\u00ee', '\u00ef', '\u00f0', '\u00f1', '\u00f2', '\u00f3', 
							'\u00f4', '\u00f5', '\u00f6', '\u00f7', '\u00f8', '\u00f9', 
							'\u00fa', '\u00fb', '\u00fc', '\u00fd', '\u00fe', '\u00ff'
						 }
					This block has a single alternative
					
					Alternate(1) will be taken IF:
					The lookahead set: 
						{ 
							'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
							'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
							'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
							'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
							'\u001c', '\u001d', '\u001e', '\u001f', ' ', '!', 
							'"', '#', '$', '%', '&', '\'', 
							'(', ')', '*', '+', ',', '-', 
							'.', '/', '0', '1', '2', '3', 
							'4', '5', '6', '7', '8', '9', 
							':', ';', '<', '=', '>', '?', 
							'@', 'A', 'B', 'C', 'D', 'E', 
							'F', 'G', 'H', 'I', 'J', 'K', 
							'L', 'M', 'N', 'O', 'P', 'Q', 
							'R', 'S', 'T', 'U', 'V', 'W', 
							'X', 'Y', 'Z', '[', '\\', ']', 
							'^', '_', '`', 'a', 'b', 'c', 
							'd', 'e', 'f', 'g', 'h', 'i', 
							'j', 'k', 'l', 'm', 'n', 'o', 
							'p', 'q', 'r', 's', 't', 'u', 
							'v', 'w', 'x', 'y', 'z', '{', 
							'|', '}', '~', '\u007f', '\u0080', '\u0081', 
							'\u0082', '\u0083', '\u0084', '\u0085', '\u0086', '\u0087', 
							'\u0088', '\u0089', '\u008a', '\u008b', '\u008c', '\u008d', 
							'\u008e', '\u008f', '\u0090', '\u0091', '\u0092', '\u0093', 
							'\u0094', '\u0095', '\u0096', '\u0097', '\u0098', '\u0099', 
							'\u009a', '\u009b', '\u009c', '\u009d', '\u009e', '\u009f', 
							'\u00a0', '\u00a1', '\u00a2', '\u00a3', '\u00a4', '\u00a5', 
							'\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', '\u00ab', 
							'\u00ac', '\u00ad', '\u00ae', '\u00af', '\u00b0', '\u00b1', 
							'\u00b2', '\u00b3', '\u00b4', '\u00b5', '\u00b6', '\u00b7', 
							'\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', '\u00bd', 
							'\u00be', '\u00bf', '\u00c0', '\u00c1', '\u00c2', '\u00c3', 
							'\u00c4', '\u00c5', '\u00c6', '\u00c7', '\u00c8', '\u00c9', 
							'\u00ca', '\u00cb', '\u00cc', '\u00cd', '\u00ce', '\u00cf', 
							'\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', '\u00d5', 
							'\u00d6', '\u00d7', '\u00d8', '\u00d9', '\u00da', '\u00db', 
							'\u00dc', '\u00dd', '\u00de', '\u00df', '\u00e0', '\u00e1', 
							'\u00e2', '\u00e3', '\u00e4', '\u00e5', '\u00e6', '\u00e7', 
							'\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec', '\u00ed', 
							'\u00ee', '\u00ef', '\u00f0', '\u00f1', '\u00f2', '\u00f3', 
							'\u00f4', '\u00f5', '\u00f6', '\u00f7', '\u00f8', '\u00f9', 
							'\u00fa', '\u00fb', '\u00fc', '\u00fd', '\u00fe', '\u00ff'
						 }
					is matched.
					Start of alternative block.
						Start of an alternative block.
							The lookahead set for this block is:
								{ 
									'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
									'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
									'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
									'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
									'\u001c', '\u001d', '\u001e', '\u001f', ' ', '!', 
									'"', '#', '$', '%', '&', '\'', 
									'(', ')', '*', '+', ',', '-', 
									'.', '/', '0', '1', '2', '3', 
									'4', '5', '6', '7', '8', '9', 
									':', ';', '<', '=', '>', '?', 
									'@', 'A', 'B', 'C', 'D', 'E', 
									'F', 'G', 'H', 'I', 'J', 'K', 
									'L', 'M', 'N', 'O', 'P', 'Q', 
									'R', 'S', 'T', 'U', 'V', 'W', 
									'X', 'Y', 'Z', '[', '\\', ']', 
									'^', '_', '`', 'a', 'b', 'c', 
									'd', 'e', 'f', 'g', 'h', 'i', 
									'j', 'k', 'l', 'm', 'n', 'o', 
									'p', 'q', 'r', 's', 't', 'u', 
									'v', 'w', 'x', 'y', 'z', '{', 
									'|', '}', '~', '\u007f', '\u0080', '\u0081', 
									'\u0082', '\u0083', '\u0084', '\u0085', '\u0086', '\u0087', 
									'\u0088', '\u0089', '\u008a', '\u008b', '\u008c', '\u008d', 
									'\u008e', '\u008f', '\u0090', '\u0091', '\u0092', '\u0093', 
									'\u0094', '\u0095', '\u0096', '\u0097', '\u0098', '\u0099', 
									'\u009a', '\u009b', '\u009c', '\u009d', '\u009e', '\u009f', 
									'\u00a0', '\u00a1', '\u00a2', '\u00a3', '\u00a4', '\u00a5', 
									'\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', '\u00ab', 
									'\u00ac', '\u00ad', '\u00ae', '\u00af', '\u00b0', '\u00b1', 
									'\u00b2', '\u00b3', '\u00b4', '\u00b5', '\u00b6', '\u00b7', 
									'\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', '\u00bd', 
									'\u00be', '\u00bf', '\u00c0', '\u00c1', '\u00c2', '\u00c3', 
									'\u00c4', '\u00c5', '\u00c6', '\u00c7', '\u00c8', '\u00c9', 
									'\u00ca', '\u00cb', '\u00cc', '\u00cd', '\u00ce', '\u00cf', 
									'\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', '\u00d5', 
									'\u00d6', '\u00d7', '\u00d8', '\u00d9', '\u00da', '\u00db', 
									'\u00dc', '\u00dd', '\u00de', '\u00df', '\u00e0', '\u00e1', 
									'\u00e2', '\u00e3', '\u00e4', '\u00e5', '\u00e6', '\u00e7', 
									'\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec', '\u00ed', 
									'\u00ee', '\u00ef', '\u00f0', '\u00f1', '\u00f2', '\u00f3', 
									'\u00f4', '\u00f5', '\u00f6', '\u00f7', '\u00f8', '\u00f9', 
									'\u00fa', '\u00fb', '\u00fc', '\u00fd', '\u00fe', '\u00ff'
								 }
							This block has multiple alternatives:
								
								Alternate(1) will be taken IF:
								The lookahead set: 
									{ '\r' }
								is matched.
								Match character '\r'
								
								Otherwise, Alternate(2) will be taken IF:
								The lookahead set: 
									{ '\n' }
								is matched.
								Match character '\n'
								
								OTHERWISE, a NoViableAlt exception will be thrown
								
							End of alternatives
						End of alternative block.
					
					OTHERWISE, a NoViableAlt exception will be thrown
					
				End of alternative block.
			End ZERO-OR-MORE block.
			Rule Reference: mNEWLINE
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mCOLON_COMMENT
	
	*** Lexer Rule: mCOLON
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ ':' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ ':' }
			is matched.
			Match character ':'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mCOLON
	
	*** Lexer Rule: mWhitespace
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ 
					'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
					'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
					'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
					'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
					'\u001c', '\u001d', '\u001e', '\u001f', ' ', '\u007f', 
					'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0085', 
					'\u0086', '\u0087', '\u0088', '\u0089', '\u008a', '\u008b', 
					'\u008c', '\u008d', '\u008e', '\u008f', '\u0090', '\u0091', 
					'\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', 
					'\u0098', '\u0099', '\u009a', '\u009b', '\u009c', '\u009d', 
					'\u009e', '\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', 
					'\u00a4', '\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', 
					'\u00aa', '\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', 
					'\u00b0', '\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', 
					'\u00b6', '\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', 
					'\u00bc', '\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', 
					'\u00c2', '\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', 
					'\u00c8', '\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', 
					'\u00ce', '\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', 
					'\u00d4', '\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', 
					'\u00da', '\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', 
					'\u00e0', '\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', 
					'\u00e6', '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', 
					'\u00ec', '\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', 
					'\u00f2', '\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', 
					'\u00f8', '\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', 
					'\u00fe', '\u00ff'
				 }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ 
					'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
					'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
					'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
					'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
					'\u001c', '\u001d', '\u001e', '\u001f', ' ', '\u007f', 
					'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0085', 
					'\u0086', '\u0087', '\u0088', '\u0089', '\u008a', '\u008b', 
					'\u008c', '\u008d', '\u008e', '\u008f', '\u0090', '\u0091', 
					'\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', 
					'\u0098', '\u0099', '\u009a', '\u009b', '\u009c', '\u009d', 
					'\u009e', '\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', 
					'\u00a4', '\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', 
					'\u00aa', '\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', 
					'\u00b0', '\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', 
					'\u00b6', '\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', 
					'\u00bc', '\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', 
					'\u00c2', '\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', 
					'\u00c8', '\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', 
					'\u00ce', '\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', 
					'\u00d4', '\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', 
					'\u00da', '\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', 
					'\u00e0', '\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', 
					'\u00e6', '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', 
					'\u00ec', '\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', 
					'\u00f2', '\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', 
					'\u00f8', '\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', 
					'\u00fe', '\u00ff'
				 }
			is matched.
			Start of alternative block.
				Start of an alternative block.
					The lookahead set for this block is:
						{ 
							'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
							'\u0008', '\t', '\u000b', '\u000c', '\u000e', '\u000f', 
							'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', 
							'\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', 
							'\u001c', '\u001d', '\u001e', '\u001f', ' ', '\u007f', 
							'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0085', 
							'\u0086', '\u0087', '\u0088', '\u0089', '\u008a', '\u008b', 
							'\u008c', '\u008d', '\u008e', '\u008f', '\u0090', '\u0091', 
							'\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', 
							'\u0098', '\u0099', '\u009a', '\u009b', '\u009c', '\u009d', 
							'\u009e', '\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', 
							'\u00a4', '\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', 
							'\u00aa', '\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', 
							'\u00b0', '\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', 
							'\u00b6', '\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', 
							'\u00bc', '\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', 
							'\u00c2', '\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', 
							'\u00c8', '\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', 
							'\u00ce', '\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', 
							'\u00d4', '\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', 
							'\u00da', '\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', 
							'\u00e0', '\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', 
							'\u00e6', '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', 
							'\u00ec', '\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', 
							'\u00f2', '\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', 
							'\u00f8', '\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', 
							'\u00fe', '\u00ff'
						 }
					This block has multiple alternatives:
						
						Alternate(1) will be taken IF:
						The lookahead set: 
							{ 
								'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
								'\u0008'
							 }
						is matched.
						Match character range: '\003'..'\010'
						
						Otherwise, Alternate(2) will be taken IF:
						The lookahead set: 
							{ '\t' }
						is matched.
						Match character '\t'
						
						Otherwise, Alternate(3) will be taken IF:
						The lookahead set: 
							{ '\u000b' }
						is matched.
						Match character '\013'
						
						Otherwise, Alternate(4) will be taken IF:
						The lookahead set: 
							{ '\u000c' }
						is matched.
						Match character '\f'
						
						Otherwise, Alternate(5) will be taken IF:
						The lookahead set: 
							{ 
								'\u000e', '\u000f', '\u0010', '\u0011', '\u0012', 
								'\u0013', '\u0014', '\u0015', '\u0016', '\u0017', '\u0018', 
								'\u0019', '\u001a', '\u001b', '\u001c', '\u001d', '\u001e', 
								'\u001f'
							 }
						is matched.
						Match character range: '\016'..'\037'
						
						Otherwise, Alternate(6) will be taken IF:
						The lookahead set: 
							{ 
								'\u007f', '\u0080', '\u0081', '\u0082', '\u0083', 
								'\u0084', '\u0085', '\u0086', '\u0087', '\u0088', '\u0089', 
								'\u008a', '\u008b', '\u008c', '\u008d', '\u008e', '\u008f', 
								'\u0090', '\u0091', '\u0092', '\u0093', '\u0094', '\u0095', 
								'\u0096', '\u0097', '\u0098', '\u0099', '\u009a', '\u009b', 
								'\u009c', '\u009d', '\u009e', '\u009f', '\u00a0', '\u00a1', 
								'\u00a2', '\u00a3', '\u00a4', '\u00a5', '\u00a6', '\u00a7', 
								'\u00a8', '\u00a9', '\u00aa', '\u00ab', '\u00ac', '\u00ad', 
								'\u00ae', '\u00af', '\u00b0', '\u00b1', '\u00b2', '\u00b3', 
								'\u00b4', '\u00b5', '\u00b6', '\u00b7', '\u00b8', '\u00b9', 
								'\u00ba', '\u00bb', '\u00bc', '\u00bd', '\u00be', '\u00bf', 
								'\u00c0', '\u00c1', '\u00c2', '\u00c3', '\u00c4', '\u00c5', 
								'\u00c6', '\u00c7', '\u00c8', '\u00c9', '\u00ca', '\u00cb', 
								'\u00cc', '\u00cd', '\u00ce', '\u00cf', '\u00d0', '\u00d1', 
								'\u00d2', '\u00d3', '\u00d4', '\u00d5', '\u00d6', '\u00d7', 
								'\u00d8', '\u00d9', '\u00da', '\u00db', '\u00dc', '\u00dd', 
								'\u00de', '\u00df', '\u00e0', '\u00e1', '\u00e2', '\u00e3', 
								'\u00e4', '\u00e5', '\u00e6', '\u00e7', '\u00e8', '\u00e9', 
								'\u00ea', '\u00eb', '\u00ec', '\u00ed', '\u00ee', '\u00ef', 
								'\u00f0', '\u00f1', '\u00f2', '\u00f3', '\u00f4', '\u00f5', 
								'\u00f6', '\u00f7', '\u00f8', '\u00f9', '\u00fa', '\u00fb', 
								'\u00fc', '\u00fd', '\u00fe', '\u00ff'
							 }
						is matched.
						Match character range: '\177'..'\377'
						
						Otherwise, Alternate(7) will be taken IF:
						The lookahead set: 
							{ ' ' }
						is matched.
						Match character ' '
						
						OTHERWISE, a NoViableAlt exception will be thrown
						
					End of alternatives
				End of alternative block.
			ACTION: _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mWhitespace
	
	*** Lexer Rule: mINT_CONST
		Access: protected
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{  }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				MATCHES ALL
			is matched.
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mINT_CONST
	
	*** Lexer Rule: mHEX_CONST
		Access: protected
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{  }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				MATCHES ALL
			is matched.
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mHEX_CONST
	
	*** Lexer Rule: mNEG_INT_CONST
		Access: protected
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{  }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				MATCHES ALL
			is matched.
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mNEG_INT_CONST
	
	*** Lexer Rule: mDIGIT
		Access: protected
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ 
					'0', '1', '2', '3', '4', 
					'5', '6', '7', '8', '9'
				 }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ 
					'0', '1', '2', '3', '4', 
					'5', '6', '7', '8', '9'
				 }
			is matched.
			Match character range: '0'..'9'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mDIGIT
	
	*** Lexer Rule: mHEXDIGIT
		Access: protected
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ 
					'a', 'b', 'c', 'd', 'e', 
					'f'
				 }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ 
					'a', 'b', 'c', 'd', 'e', 
					'f'
				 }
			is matched.
			Match character range: 'a'..'f'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mHEXDIGIT
	
	*** Lexer Rule: mNUMBER
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ 
					'0', '1', '2', '3', '4', 
					'5', '6', '7', '8', '9', 'a', 
					'b', 'c', 'd', 'e', 'f'
				 }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ 
					'0', '1', '2', '3', '4', 
					'5', '6', '7', '8', '9', 'a', 
					'b', 'c', 'd', 'e', 'f'
				 }
			is matched.
			Start of alternative block.
				Warning: This alternative block is non-deterministic
				Start of an alternative block.
					The lookahead set for this block is:
						k==1: {
							'0', '1', '2', '3', '4', 
							'5', '6', '7', '8', '9', 'a', 
							'b', 'c', 'd', 'e', 'f'
						 }
						k==2: {
							'.', '0', '1', '2', '3', 
							'4', '5', '6', '7', '8', '9', 
							':', 'a', 'b', 'c', 'd', 'e', 
							'f'
						 }
						k==3: {
							'.', '0', '1', '2', '3', 
							'4', '5', '6', '7', '8', '9', 
							':', 'a', 'b', 'c', 'd', 'e', 
							'f'
						 }
					This block has multiple alternatives:
						
						Alternate(1) will be taken IF:
						The lookahead set: 
							k==1: {
								'0', '1', '2', '3', '4', 
								'5', '6', '7', '8', '9'
							 }
							k==2: {
								'.', '0', '1', '2', '3', 
								'4', '5', '6', '7', '8', '9'
							 }
							k==3: {
								'.', '0', '1', '2', '3', 
								'4', '5', '6', '7', '8', '9'
							 }
						is matched, AND the syntactic predicate:
							Start of alternative block.
								Start of an alternative block.
									The lookahead set for this block is:
										{ 
											'0', '1', '2', '3', '4', 
											'5', '6', '7', '8', '9'
										 }
									This block has a single alternative
									
									Alternate(1) will be taken IF:
									The lookahead set: 
										{ 
											'0', '1', '2', '3', '4', 
											'5', '6', '7', '8', '9'
										 }
									is matched.
									Rule Reference: mDIGIT
									
									OTHERWISE, a NoViableAlt exception will be thrown
									
								End of alternative block.
						is matched.
						Start of alternative block.
							Warning: This alternative block is non-deterministic
							Start of an alternative block.
								The lookahead set for this block is:
									k==1: {
										'0', '1', '2', '3', '4', 
										'5', '6', '7', '8', '9'
									 }
									k==2: {
										'.', '0', '1', '2', '3', 
										'4', '5', '6', '7', '8', '9'
									 }
									k==3: {
										'.', '0', '1', '2', '3', 
										'4', '5', '6', '7', '8', '9'
									 }
								This block has multiple alternatives:
									
									Alternate(1) will be taken IF:
									The lookahead set: 
										k==1: {
											'0', '1', '2', '3', '4', 
											'5', '6', '7', '8', '9'
										 }
										k==2: {
											'.', '0', '1', '2', '3', 
											'4', '5', '6', '7', '8', '9'
										 }
										k==3: {
											'.', '0', '1', '2', '3', 
											'4', '5', '6', '7', '8', '9'
										 }
									is matched, AND the syntactic predicate:
										Start of alternative block.
											Start of an alternative block.
												The lookahead set for this block is:
													{ 
														'0', '1', '2', '3', '4', 
														'5', '6', '7', '8', '9'
													 }
												This block has a single alternative
												
												Alternate(1) will be taken IF:
												The lookahead set: 
													{ 
														'0', '1', '2', '3', '4', 
														'5', '6', '7', '8', '9'
													 }
												is matched.
												Start ONE-OR-MORE (...)+ block:
													Start of an alternative block.
														The lookahead set for this block is:
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														This block has a single alternative
														
														Alternate(1) will be taken IF:
														The lookahead set: 
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														is matched.
														Rule Reference: mDIGIT
														
														OTHERWISE, a NoViableAlt exception will be thrown
														
													End of alternative block.
												End ONE-OR-MORE block.
												Rule Reference: mDOT
												Start ONE-OR-MORE (...)+ block:
													Start of an alternative block.
														The lookahead set for this block is:
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														This block has a single alternative
														
														Alternate(1) will be taken IF:
														The lookahead set: 
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														is matched.
														Rule Reference: mDIGIT
														
														OTHERWISE, a NoViableAlt exception will be thrown
														
													End of alternative block.
												End ONE-OR-MORE block.
												Rule Reference: mDOT
												Start ONE-OR-MORE (...)+ block:
													Start of an alternative block.
														The lookahead set for this block is:
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														This block has a single alternative
														
														Alternate(1) will be taken IF:
														The lookahead set: 
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														is matched.
														Rule Reference: mDIGIT
														
														OTHERWISE, a NoViableAlt exception will be thrown
														
													End of alternative block.
												End ONE-OR-MORE block.
												
												OTHERWISE, a NoViableAlt exception will be thrown
												
											End of alternative block.
									is matched.
									Start of alternative block.
										Start of an alternative block.
											The lookahead set for this block is:
												{ 
													'0', '1', '2', '3', '4', 
													'5', '6', '7', '8', '9'
												 }
											This block has a single alternative
											
											Alternate(1) will be taken IF:
											The lookahead set: 
												{ 
													'0', '1', '2', '3', '4', 
													'5', '6', '7', '8', '9'
												 }
											is matched.
											Start ONE-OR-MORE (...)+ block:
												Start of an alternative block.
													The lookahead set for this block is:
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													This block has a single alternative
													
													Alternate(1) will be taken IF:
													The lookahead set: 
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													is matched.
													Rule Reference: mDIGIT
													
													OTHERWISE, a NoViableAlt exception will be thrown
													
												End of alternative block.
											End ONE-OR-MORE block.
											Rule Reference: mDOT
											Start ONE-OR-MORE (...)+ block:
												Start of an alternative block.
													The lookahead set for this block is:
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													This block has a single alternative
													
													Alternate(1) will be taken IF:
													The lookahead set: 
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													is matched.
													Rule Reference: mDIGIT
													
													OTHERWISE, a NoViableAlt exception will be thrown
													
												End of alternative block.
											End ONE-OR-MORE block.
											Rule Reference: mDOT
											Start ONE-OR-MORE (...)+ block:
												Start of an alternative block.
													The lookahead set for this block is:
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													This block has a single alternative
													
													Alternate(1) will be taken IF:
													The lookahead set: 
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													is matched.
													Rule Reference: mDIGIT
													
													OTHERWISE, a NoViableAlt exception will be thrown
													
												End of alternative block.
											End ONE-OR-MORE block.
											Rule Reference: mDOT
											Start ONE-OR-MORE (...)+ block:
												Start of an alternative block.
													The lookahead set for this block is:
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													This block has a single alternative
													
													Alternate(1) will be taken IF:
													The lookahead set: 
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													is matched.
													Rule Reference: mDIGIT
													
													OTHERWISE, a NoViableAlt exception will be thrown
													
												End of alternative block.
											End ONE-OR-MORE block.
											
											OTHERWISE, a NoViableAlt exception will be thrown
											
										End of alternative block.
									ACTION: _ttype = IPV4;
									
									Otherwise, Alternate(2) will be taken IF:
									The lookahead set: 
										k==1: {
											'0', '1', '2', '3', '4', 
											'5', '6', '7', '8', '9'
										 }
										k==2: {
											'.', '0', '1', '2', '3', 
											'4', '5', '6', '7', '8', '9'
										 }
										k==3: {
											'.', '0', '1', '2', '3', 
											'4', '5', '6', '7', '8', '9'
										 }
									is matched, AND the syntactic predicate:
										Start of alternative block.
											Start of an alternative block.
												The lookahead set for this block is:
													{ 
														'0', '1', '2', '3', '4', 
														'5', '6', '7', '8', '9'
													 }
												This block has a single alternative
												
												Alternate(1) will be taken IF:
												The lookahead set: 
													{ 
														'0', '1', '2', '3', '4', 
														'5', '6', '7', '8', '9'
													 }
												is matched.
												Start ONE-OR-MORE (...)+ block:
													Start of an alternative block.
														The lookahead set for this block is:
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														This block has a single alternative
														
														Alternate(1) will be taken IF:
														The lookahead set: 
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														is matched.
														Rule Reference: mDIGIT
														
														OTHERWISE, a NoViableAlt exception will be thrown
														
													End of alternative block.
												End ONE-OR-MORE block.
												Rule Reference: mDOT
												Start ONE-OR-MORE (...)+ block:
													Start of an alternative block.
														The lookahead set for this block is:
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														This block has a single alternative
														
														Alternate(1) will be taken IF:
														The lookahead set: 
															{ 
																'0', '1', '2', '3', '4', 
																'5', '6', '7', '8', '9'
															 }
														is matched.
														Rule Reference: mDIGIT
														
														OTHERWISE, a NoViableAlt exception will be thrown
														
													End of alternative block.
												End ONE-OR-MORE block.
												
												OTHERWISE, a NoViableAlt exception will be thrown
												
											End of alternative block.
									is matched.
									Start of alternative block.
										Start of an alternative block.
											The lookahead set for this block is:
												{ 
													'0', '1', '2', '3', '4', 
													'5', '6', '7', '8', '9'
												 }
											This block has a single alternative
											
											Alternate(1) will be taken IF:
											The lookahead set: 
												{ 
													'0', '1', '2', '3', '4', 
													'5', '6', '7', '8', '9'
												 }
											is matched.
											Start ONE-OR-MORE (...)+ block:
												Start of an alternative block.
													The lookahead set for this block is:
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													This block has a single alternative
													
													Alternate(1) will be taken IF:
													The lookahead set: 
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													is matched.
													Rule Reference: mDIGIT
													
													OTHERWISE, a NoViableAlt exception will be thrown
													
												End of alternative block.
											End ONE-OR-MORE block.
											Rule Reference: mDOT
											Start ONE-OR-MORE (...)+ block:
												Start of an alternative block.
													The lookahead set for this block is:
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													This block has a single alternative
													
													Alternate(1) will be taken IF:
													The lookahead set: 
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													is matched.
													Rule Reference: mDIGIT
													
													OTHERWISE, a NoViableAlt exception will be thrown
													
												End of alternative block.
											End ONE-OR-MORE block.
											
											OTHERWISE, a NoViableAlt exception will be thrown
											
										End of alternative block.
									
									Otherwise, Alternate(3) will be taken IF:
									The lookahead set: 
										k==1: {
											'0', '1', '2', '3', '4', 
											'5', '6', '7', '8', '9'
										 }
										k==2: {
											'0', '1', '2', '3', '4', 
											'5', '6', '7', '8', '9'
										 }
										k==3: {
											'0', '1', '2', '3', '4', 
											'5', '6', '7', '8', '9'
										 }
									is matched.
									Start ONE-OR-MORE (...)+ block:
										Start of an alternative block.
											The lookahead set for this block is:
												{ 
													'0', '1', '2', '3', '4', 
													'5', '6', '7', '8', '9'
												 }
											This block has a single alternative
											
											Alternate(1) will be taken IF:
											The lookahead set: 
												{ 
													'0', '1', '2', '3', '4', 
													'5', '6', '7', '8', '9'
												 }
											is matched.
											Rule Reference: mDIGIT
											
											OTHERWISE, a NoViableAlt exception will be thrown
											
										End of alternative block.
									End ONE-OR-MORE block.
									ACTION: _ttype = INT_CONST;
									
									OTHERWISE, a NoViableAlt exception will be thrown
									
								End of alternatives
							End of alternative block.
						
						Otherwise, Alternate(2) will be taken IF:
						The lookahead set: 
							k==1: {
								'0', '1', '2', '3', '4', 
								'5', '6', '7', '8', '9', 'a', 
								'b', 'c', 'd', 'e', 'f'
							 }
							k==2: {
								'0', '1', '2', '3', '4', 
								'5', '6', '7', '8', '9', ':', 
								'a', 'b', 'c', 'd', 'e', 'f'
							 }
							k==3: {
								'0', '1', '2', '3', '4', 
								'5', '6', '7', '8', '9', ':', 
								'a', 'b', 'c', 'd', 'e', 'f'
							 }
						is matched, AND the syntactic predicate:
							Start of alternative block.
								Start of an alternative block.
									The lookahead set for this block is:
										{ 
											'0', '1', '2', '3', '4', 
											'5', '6', '7', '8', '9', 'a', 
											'b', 'c', 'd', 'e', 'f'
										 }
									This block has a single alternative
									
									Alternate(1) will be taken IF:
									The lookahead set: 
										{ 
											'0', '1', '2', '3', '4', 
											'5', '6', '7', '8', '9', 'a', 
											'b', 'c', 'd', 'e', 'f'
										 }
									is matched.
									Start ONE-OR-MORE (...)+ block:
										Start of an alternative block.
											The lookahead set for this block is:
												{ 
													'0', '1', '2', '3', '4', 
													'5', '6', '7', '8', '9', 'a', 
													'b', 'c', 'd', 'e', 'f'
												 }
											This block has multiple alternatives:
												
												Alternate(1) will be taken IF:
												The lookahead set: 
													{ 
														'a', 'b', 'c', 'd', 'e', 
														'f'
													 }
												is matched.
												Match character range: 'a'..'f'
												
												Otherwise, Alternate(2) will be taken IF:
												The lookahead set: 
													{ 
														'0', '1', '2', '3', '4', 
														'5', '6', '7', '8', '9'
													 }
												is matched.
												Match character range: '0'..'9'
												
												OTHERWISE, a NoViableAlt exception will be thrown
												
											End of alternatives
										End of alternative block.
									End ONE-OR-MORE block.
									Rule Reference: mCOLON
									
									OTHERWISE, a NoViableAlt exception will be thrown
									
								End of alternative block.
						is matched.
						Start of alternative block.
							Start of an alternative block.
								The lookahead set for this block is:
									{ 
										'0', '1', '2', '3', '4', 
										'5', '6', '7', '8', '9', 'a', 
										'b', 'c', 'd', 'e', 'f'
									 }
								This block has a single alternative
								
								Alternate(1) will be taken IF:
								The lookahead set: 
									{ 
										'0', '1', '2', '3', '4', 
										'5', '6', '7', '8', '9', 'a', 
										'b', 'c', 'd', 'e', 'f'
									 }
								is matched.
								Start of alternative block.
									Start of an alternative block.
										The lookahead set for this block is:
											{ 
												'0', '1', '2', '3', '4', 
												'5', '6', '7', '8', '9', 'a', 
												'b', 'c', 'd', 'e', 'f'
											 }
										This block has a single alternative
										
										Alternate(1) will be taken IF:
										The lookahead set: 
											{ 
												'0', '1', '2', '3', '4', 
												'5', '6', '7', '8', '9', 'a', 
												'b', 'c', 'd', 'e', 'f'
											 }
										is matched.
										Start ONE-OR-MORE (...)+ block:
											Start of an alternative block.
												The lookahead set for this block is:
													{ 
														'0', '1', '2', '3', '4', 
														'5', '6', '7', '8', '9', 'a', 
														'b', 'c', 'd', 'e', 'f'
													 }
												This block has multiple alternatives:
													
													Alternate(1) will be taken IF:
													The lookahead set: 
														{ 
															'a', 'b', 'c', 'd', 'e', 
															'f'
														 }
													is matched.
													Match character range: 'a'..'f'
													
													Otherwise, Alternate(2) will be taken IF:
													The lookahead set: 
														{ 
															'0', '1', '2', '3', '4', 
															'5', '6', '7', '8', '9'
														 }
													is matched.
													Match character range: '0'..'9'
													
													OTHERWISE, a NoViableAlt exception will be thrown
													
												End of alternatives
											End of alternative block.
										End ONE-OR-MORE block.
										Rule Reference: mCOLON
										
										OTHERWISE, a NoViableAlt exception will be thrown
										
									End of alternative block.
								ACTION: _ttype = IPV6;
								
								OTHERWISE, a NoViableAlt exception will be thrown
								
							End of alternative block.
						
						OTHERWISE, a NoViableAlt exception will be thrown
						
					End of alternatives
				End of alternative block.
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mNUMBER
	
	*** Lexer Rule: mDOT
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '.' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '.' }
			is matched.
			Match character '.'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mDOT
	
	*** Lexer Rule: mWORD
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ 
					'$', 'A', 'B', 'C', 'D', 
					'E', 'F', 'G', 'H', 'I', 'J', 
					'K', 'L', 'M', 'N', 'O', 'P', 
					'Q', 'R', 'S', 'T', 'U', 'V', 
					'W', 'X', 'Y', 'Z', 'a', 'b', 
					'c', 'd', 'e', 'f', 'g', 'h', 
					'i', 'j', 'k', 'l', 'm', 'n', 
					'o', 'p', 'q', 'r', 's', 't', 
					'u', 'v', 'w', 'x', 'y', 'z'
				 }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ 
					'$', 'A', 'B', 'C', 'D', 
					'E', 'F', 'G', 'H', 'I', 'J', 
					'K', 'L', 'M', 'N', 'O', 'P', 
					'Q', 'R', 'S', 'T', 'U', 'V', 
					'W', 'X', 'Y', 'Z', 'a', 'b', 
					'c', 'd', 'e', 'f', 'g', 'h', 
					'i', 'j', 'k', 'l', 'm', 'n', 
					'o', 'p', 'q', 'r', 's', 't', 
					'u', 'v', 'w', 'x', 'y', 'z'
				 }
			is matched.
			Start of alternative block.
				Start of an alternative block.
					The lookahead set for this block is:
						{ 
							'$', 'A', 'B', 'C', 'D', 
							'E', 'F', 'G', 'H', 'I', 'J', 
							'K', 'L', 'M', 'N', 'O', 'P', 
							'Q', 'R', 'S', 'T', 'U', 'V', 
							'W', 'X', 'Y', 'Z', 'a', 'b', 
							'c', 'd', 'e', 'f', 'g', 'h', 
							'i', 'j', 'k', 'l', 'm', 'n', 
							'o', 'p', 'q', 'r', 's', 't', 
							'u', 'v', 'w', 'x', 'y', 'z'
						 }
					This block has multiple alternatives:
						
						Alternate(1) will be taken IF:
						The lookahead set: 
							{ 
								'a', 'b', 'c', 'd', 'e', 
								'f', 'g', 'h', 'i', 'j', 'k', 
								'l', 'm', 'n', 'o', 'p', 'q', 
								'r', 's', 't', 'u', 'v', 'w', 
								'x', 'y', 'z'
							 }
						is matched.
						Match character range: 'a'..'z'
						
						Otherwise, Alternate(2) will be taken IF:
						The lookahead set: 
							{ 
								'A', 'B', 'C', 'D', 'E', 
								'F', 'G', 'H', 'I', 'J', 'K', 
								'L', 'M', 'N', 'O', 'P', 'Q', 
								'R', 'S', 'T', 'U', 'V', 'W', 
								'X', 'Y', 'Z'
							 }
						is matched.
						Match character range: 'A'..'Z'
						
						Otherwise, Alternate(3) will be taken IF:
						The lookahead set: 
							{ '$' }
						is matched.
						Match character '$'
						
						OTHERWISE, a NoViableAlt exception will be thrown
						
					End of alternatives
				End of alternative block.
			Start ZERO-OR-MORE (...)+ block:
				Start of an alternative block.
					The lookahead set for this block is:
						{ 
							'!', '"', '#', '$', '%', 
							'&', '\'', '(', ')', '*', '+', 
							',', '-', '.', '/', '0', '1', 
							'2', '3', '4', '5', '6', '7', 
							'8', '9', ':', ';', '<', '=', 
							'>', '?', '@', 'A', 'B', 'C', 
							'D', 'E', 'F', 'G', 'H', 'I', 
							'J', 'K', 'L', 'M', 'N', 'O', 
							'P', 'Q', 'R', 'S', 'T', 'U', 
							'V', 'W', 'X', 'Y', 'Z', '\\', 
							'^', '_', '`', 'a', 'b', 'c', 
							'd', 'e', 'f', 'g', 'h', 'i', 
							'j', 'k', 'l', 'm', 'n', 'o', 
							'p', 'q', 'r', 's', 't', 'u', 
							'v', 'w', 'x', 'y', 'z'
						 }
					This block has multiple alternatives:
						
						Alternate(1) will be taken IF:
						The lookahead set: 
							{ 
								'!', '"', '#', '$', '%', 
								'&', '\'', '(', ')', '*', '+', 
								',', '-', '.', '/'
							 }
						is matched.
						Match character range: '!'..'/'
						
						Otherwise, Alternate(2) will be taken IF:
						The lookahead set: 
							{ 
								'0', '1', '2', '3', '4', 
								'5', '6', '7', '8', '9'
							 }
						is matched.
						Match character range: '0'..'9'
						
						Otherwise, Alternate(3) will be taken IF:
						The lookahead set: 
							{ ':' }
						is matched.
						Match character ':'
						
						Otherwise, Alternate(4) will be taken IF:
						The lookahead set: 
							{ ';' }
						is matched.
						Match character ';'
						
						Otherwise, Alternate(5) will be taken IF:
						The lookahead set: 
							{ '<' }
						is matched.
						Match character '<'
						
						Otherwise, Alternate(6) will be taken IF:
						The lookahead set: 
							{ '=' }
						is matched.
						Match character '='
						
						Otherwise, Alternate(7) will be taken IF:
						The lookahead set: 
							{ '>' }
						is matched.
						Match character '>'
						
						Otherwise, Alternate(8) will be taken IF:
						The lookahead set: 
							{ '?' }
						is matched.
						Match character '?'
						
						Otherwise, Alternate(9) will be taken IF:
						The lookahead set: 
							{ '@' }
						is matched.
						Match character '@'
						
						Otherwise, Alternate(10) will be taken IF:
						The lookahead set: 
							{ 
								'A', 'B', 'C', 'D', 'E', 
								'F', 'G', 'H', 'I', 'J', 'K', 
								'L', 'M', 'N', 'O', 'P', 'Q', 
								'R', 'S', 'T', 'U', 'V', 'W', 
								'X', 'Y', 'Z'
							 }
						is matched.
						Match character range: 'A'..'Z'
						
						Otherwise, Alternate(11) will be taken IF:
						The lookahead set: 
							{ '\\' }
						is matched.
						Match character '\\'
						
						Otherwise, Alternate(12) will be taken IF:
						The lookahead set: 
							{ '^' }
						is matched.
						Match character '^'
						
						Otherwise, Alternate(13) will be taken IF:
						The lookahead set: 
							{ '_' }
						is matched.
						Match character '_'
						
						Otherwise, Alternate(14) will be taken IF:
						The lookahead set: 
							{ '`' }
						is matched.
						Match character '`'
						
						Otherwise, Alternate(15) will be taken IF:
						The lookahead set: 
							{ 
								'a', 'b', 'c', 'd', 'e', 
								'f', 'g', 'h', 'i', 'j', 'k', 
								'l', 'm', 'n', 'o', 'p', 'q', 
								'r', 's', 't', 'u', 'v', 'w', 
								'x', 'y', 'z'
							 }
						is matched.
						Match character range: 'a'..'z'
						
						OTHERWISE, a NoViableAlt exception will be thrown
						
					End of alternatives
				End of alternative block.
			End ZERO-OR-MORE block.
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mWORD
	
	*** Lexer Rule: mSTRING
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '"' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '"' }
			is matched.
			Match character '"'
			Start ZERO-OR-MORE (...)+ block:
				Start of an alternative block.
					The lookahead set for this block is:
						{ 
							'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
							'\u0008', '\t', '\n', '\u000b', '\u000c', '\r', 
							'\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', 
							'\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', 
							'\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f', 
							' ', '!', '#', '$', '%', '&', 
							'\'', '(', ')', '*', '+', ',', 
							'-', '.', '/', '0', '1', '2', 
							'3', '4', '5', '6', '7', '8', 
							'9', ':', ';', '<', '=', '>', 
							'?', '@', 'A', 'B', 'C', 'D', 
							'E', 'F', 'G', 'H', 'I', 'J', 
							'K', 'L', 'M', 'N', 'O', 'P', 
							'Q', 'R', 'S', 'T', 'U', 'V', 
							'W', 'X', 'Y', 'Z', '[', '\\', 
							']', '^', '_', '`', 'a', 'b', 
							'c', 'd', 'e', 'f', 'g', 'h', 
							'i', 'j', 'k', 'l', 'm', 'n', 
							'o', 'p', 'q', 'r', 's', 't', 
							'u', 'v', 'w', 'x', 'y', 'z', 
							'{', '|', '}', '~', '\u007f', '\u0080', 
							'\u0081', '\u0082', '\u0083', '\u0084', '\u0085', '\u0086', 
							'\u0087', '\u0088', '\u0089', '\u008a', '\u008b', '\u008c', 
							'\u008d', '\u008e', '\u008f', '\u0090', '\u0091', '\u0092', 
							'\u0093', '\u0094', '\u0095', '\u0096', '\u0097', '\u0098', 
							'\u0099', '\u009a', '\u009b', '\u009c', '\u009d', '\u009e', 
							'\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', '\u00a4', 
							'\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', 
							'\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', '\u00b0', 
							'\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', '\u00b6', 
							'\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', 
							'\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', '\u00c2', 
							'\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', '\u00c8', 
							'\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', '\u00ce', 
							'\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', 
							'\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', '\u00da', 
							'\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', '\u00e0', 
							'\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', '\u00e6', 
							'\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec', 
							'\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', '\u00f2', 
							'\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', '\u00f8', 
							'\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', '\u00fe', 
							'\u00ff'
						 }
					This block has a single alternative
					
					Alternate(1) will be taken IF:
					The lookahead set: 
						{ 
							'\u0003', '\u0004', '\u0005', '\u0006', '\u0007', 
							'\u0008', '\t', '\n', '\u000b', '\u000c', '\r', 
							'\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', 
							'\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', 
							'\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f', 
							' ', '!', '#', '$', '%', '&', 
							'\'', '(', ')', '*', '+', ',', 
							'-', '.', '/', '0', '1', '2', 
							'3', '4', '5', '6', '7', '8', 
							'9', ':', ';', '<', '=', '>', 
							'?', '@', 'A', 'B', 'C', 'D', 
							'E', 'F', 'G', 'H', 'I', 'J', 
							'K', 'L', 'M', 'N', 'O', 'P', 
							'Q', 'R', 'S', 'T', 'U', 'V', 
							'W', 'X', 'Y', 'Z', '[', '\\', 
							']', '^', '_', '`', 'a', 'b', 
							'c', 'd', 'e', 'f', 'g', 'h', 
							'i', 'j', 'k', 'l', 'm', 'n', 
							'o', 'p', 'q', 'r', 's', 't', 
							'u', 'v', 'w', 'x', 'y', 'z', 
							'{', '|', '}', '~', '\u007f', '\u0080', 
							'\u0081', '\u0082', '\u0083', '\u0084', '\u0085', '\u0086', 
							'\u0087', '\u0088', '\u0089', '\u008a', '\u008b', '\u008c', 
							'\u008d', '\u008e', '\u008f', '\u0090', '\u0091', '\u0092', 
							'\u0093', '\u0094', '\u0095', '\u0096', '\u0097', '\u0098', 
							'\u0099', '\u009a', '\u009b', '\u009c', '\u009d', '\u009e', 
							'\u009f', '\u00a0', '\u00a1', '\u00a2', '\u00a3', '\u00a4', 
							'\u00a5', '\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', 
							'\u00ab', '\u00ac', '\u00ad', '\u00ae', '\u00af', '\u00b0', 
							'\u00b1', '\u00b2', '\u00b3', '\u00b4', '\u00b5', '\u00b6', 
							'\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', 
							'\u00bd', '\u00be', '\u00bf', '\u00c0', '\u00c1', '\u00c2', 
							'\u00c3', '\u00c4', '\u00c5', '\u00c6', '\u00c7', '\u00c8', 
							'\u00c9', '\u00ca', '\u00cb', '\u00cc', '\u00cd', '\u00ce', 
							'\u00cf', '\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', 
							'\u00d5', '\u00d6', '\u00d7', '\u00d8', '\u00d9', '\u00da', 
							'\u00db', '\u00dc', '\u00dd', '\u00de', '\u00df', '\u00e0', 
							'\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', '\u00e6', 
							'\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec', 
							'\u00ed', '\u00ee', '\u00ef', '\u00f0', '\u00f1', '\u00f2', 
							'\u00f3', '\u00f4', '\u00f5', '\u00f6', '\u00f7', '\u00f8', 
							'\u00f9', '\u00fa', '\u00fb', '\u00fc', '\u00fd', '\u00fe', 
							'\u00ff'
						 }
					is matched.
					Match character NOT '"'
					
					OTHERWISE, a NoViableAlt exception will be thrown
					
				End of alternative block.
			End ZERO-OR-MORE block.
			Match character '"'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mSTRING
	
	*** Lexer Rule: mPIPE_CHAR
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '|' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '|' }
			is matched.
			Match character '|'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mPIPE_CHAR
	
	*** Lexer Rule: mNUMBER_SIGN
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '#' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '#' }
			is matched.
			Match character '#'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mNUMBER_SIGN
	
	*** Lexer Rule: mPERCENT
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '%' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '%' }
			is matched.
			Match character '%'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mPERCENT
	
	*** Lexer Rule: mAMPERSAND
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '&' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '&' }
			is matched.
			Match character '&'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mAMPERSAND
	
	*** Lexer Rule: mAPOSTROPHE
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '\'' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '\'' }
			is matched.
			Match character '\''
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mAPOSTROPHE
	
	*** Lexer Rule: mOPENING_PAREN
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '(' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '(' }
			is matched.
			Match character '('
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mOPENING_PAREN
	
	*** Lexer Rule: mCLOSING_PAREN
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ ')' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ ')' }
			is matched.
			Match character ')'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mCLOSING_PAREN
	
	*** Lexer Rule: mSTAR
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '*' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '*' }
			is matched.
			Match character '*'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mSTAR
	
	*** Lexer Rule: mPLUS
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '+' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '+' }
			is matched.
			Match character '+'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mPLUS
	
	*** Lexer Rule: mCOMMA
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ ',' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ ',' }
			is matched.
			Match character ','
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mCOMMA
	
	*** Lexer Rule: mMINUS
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '-' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '-' }
			is matched.
			Match character '-'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mMINUS
	
	*** Lexer Rule: mSLASH
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '/' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '/' }
			is matched.
			Match character '/'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mSLASH
	
	*** Lexer Rule: mSEMICOLON
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ ';' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ ';' }
			is matched.
			Match character ';'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mSEMICOLON
	
	*** Lexer Rule: mLESS_THAN
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '<' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '<' }
			is matched.
			Match character '<'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mLESS_THAN
	
	*** Lexer Rule: mEQUALS
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '=' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '=' }
			is matched.
			Match character '='
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mEQUALS
	
	*** Lexer Rule: mGREATER_THAN
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '>' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '>' }
			is matched.
			Match character '>'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mGREATER_THAN
	
	*** Lexer Rule: mQUESTION
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '?' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '?' }
			is matched.
			Match character '?'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mQUESTION
	
	*** Lexer Rule: mCOMMERCIAL_AT
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '@' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '@' }
			is matched.
			Match character '@'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mCOMMERCIAL_AT
	
	*** Lexer Rule: mOPENING_SQUARE
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '[' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '[' }
			is matched.
			Match character '['
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mOPENING_SQUARE
	
	*** Lexer Rule: mCLOSING_SQUARE
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ ']' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ ']' }
			is matched.
			Match character ']'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mCLOSING_SQUARE
	
	*** Lexer Rule: mCARET
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '^' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '^' }
			is matched.
			Match character '^'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mCARET
	
	*** Lexer Rule: mUNDERLINE
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '_' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '_' }
			is matched.
			Match character '_'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mUNDERLINE
	
	*** Lexer Rule: mOPENING_BRACE
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '{' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '{' }
			is matched.
			Match character '{'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mOPENING_BRACE
	
	*** Lexer Rule: mCLOSING_BRACE
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '}' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '}' }
			is matched.
			Match character '}'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mCLOSING_BRACE
	
	*** Lexer Rule: mTILDE
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '~' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '~' }
			is matched.
			Match character '~'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mTILDE
	
	*** Lexer Rule: mEXLAMATION
		Access: public
		Return value: lexical rule returns an implicit token type
		Start of an alternative block.
			The lookahead set for this block is:
				{ '!' }
			This block has a single alternative
			
			Alternate(1) will be taken IF:
			The lookahead set: 
				{ '!' }
			is matched.
			Match character '!'
			
			OTHERWISE, a NoViableAlt exception will be thrown
			
		End of alternative block.
	*** End Lexer Rule: mEXLAMATION

*** End User-defined Lexer rules:
