Guest User

SpokolLexer

a guest
Dec 18th, 2012
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  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