Borneq

SpokolLexer - changing Ident, underline

Dec 22nd, 2012
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. lexer grammar SpokolLexer;
  2.  
  3. WS  :  (' '|'\r'|'\t'|'\n') {channel=HIDDEN;}
  4.     ;
  5.  
  6. COMMENT : '{' (~'}')* '}' {channel=HIDDEN;}
  7.         ;
  8.  
  9. STRING_LITERAL
  10.     :  '\'' ( EscapeSequence | ~('\\'|'\'') )* '\''
  11.     ;
  12.  
  13. EscapeSequence
  14.     :   '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
  15.     ;
  16.  
  17. COMMA: ',' ;
  18. PARENTHESIS_OPEN: '(' ;
  19. PARENTHESIS_CLOSE: ')' ;
  20. SEMICOLON: ';' ;
  21. PLUS: '+' ;
  22. MINUS: '-' ;
  23. EQUAL: '=' ;
  24. MULTIPLY: '*' ;
  25. DIVIDE: '/' ;
  26. NOT_EQUAL: '!=' ;
  27. LESS_EQUAL: '<=' ;
  28. LESS: '<' ;
  29. GREATER_EQUAL: '>=' ;
  30. GREATER: '>' ;
  31. ASSIGN: ':=' ;
  32. COLON: ':';
  33. CONST_INT: ('0'..'9')+ ;
  34. FLOATING_POINT_LITERAL:
  35.         ('0'..'9')+ '.' ('0'..'9')+ ('e'|'E') ('+'|'-')? ('0'..'9')+
  36.     |   ('0'..'9')+ ('e'|'E') ('+'|'-')? ('0'..'9')+
  37.     |   ('0'..'9')+ '.' ('0'..'9')+
  38.     ;
  39. AND: 'AND' ;
  40. OR: 'OR' ;
  41. NOT: 'not' ;
  42. STRING: 'string' ;
  43. INT: 'int' ;
  44. BOOL: 'bool' ;
  45. REAL: 'real' ;
  46. PROGRAM: 'program' ;
  47. PROCEDURE: 'procedure' ;
  48. BEGIN: 'begin' ;
  49. END: 'end' ;
  50. DO: 'do' ;
  51. ENDWHILE: 'endwhile' ;
  52. BREAK: 'break' ;
  53. IF: 'if' ;
  54. ELSE: 'else' ;
  55. ENDIF: 'endif' ;
  56. PRINT: 'print' ;
  57. READ: 'read' ;
  58. THEN: 'then' ;
  59. VAR: 'var' ;
  60. WHILE: 'while' ;
  61. IDENT: ('A'..'Z'|'a'..'z'|'_')('A'..'Z'|'a'..'z'|'_'|'0'..'9')* ;
Advertisement
Add Comment
Please, Sign In to add comment