unit dpglib.TokenLexer; lexer TTokenLexer; options { k = 2; testLiterals = false; } // ---------------------------------------------------------------------------- // Simple tokens // ---------------------------------------------------------------------------- LPAREN : '('; RPAREN : ')'; ASSIGN : '='; STRING : '"' (~'"')* '"'; // ---------------------------------------------------------------------------- // DIGIT // ---------------------------------------------------------------------------- protected DIGIT : '0'..'9' ; // ---------------------------------------------------------------------------- // XDIGIT // ---------------------------------------------------------------------------- protected XDIGIT : '0'..'9' | 'a'..'f' | 'A'..'F' ; // ---------------------------------------------------------------------------- // ID // ---------------------------------------------------------------------------- ID : ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')* ; // ---------------------------------------------------------------------------- // INT // ---------------------------------------------------------------------------- INT : (DIGIT)+ ; // ---------------------------------------------------------------------------- // WS // ---------------------------------------------------------------------------- WS : ( ' ' | '\t' | '\r' '\n' { newLine; } | '\r' { newLine; } | '\n' { newLine; } ) { _ttype := TT_SKIP; } ; // ---------------------------------------------------------------------------- // SLCOMMENT // ---------------------------------------------------------------------------- SLCOMMENT : "//" ( ~( '\r' | '\n'))* ( options { generateAmbigWarnings = false; } : '\r' '\n' { newLine; } | '\r' { newLine; } | '\n' { newLine; } ) { _ttype := TT_SKIP; } ; // ---------------------------------------------------------------------------- // MLCOMMENT // ---------------------------------------------------------------------------- MLCOMMENT : "(*" ( options { greedy = false; generateAmbigWarnings= false; } : '\r' '\n' { newLine; } | '\r' { newLine; } | '\n' { newLine; } | ~('\r' | '\n') )* "*)" { _ttype := TT_SKIP; } ;