Guest User

Untitled

a guest
Jun 22nd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. from rply import LexerGenerator
  2.  
  3.  
  4. class Lexer():
  5. def __init__(self):
  6. self.lexer = LexerGenerator()
  7.  
  8. def _add_tokens(self):
  9. # Print
  10. self.lexer.add('PRINT', r'print')
  11. # Parenthesis
  12. self.lexer.add('OPEN_PAREN', r'\(')
  13. self.lexer.add('CLOSE_PAREN', r'\)')
  14. # Semi Colon
  15. self.lexer.add('SEMI_COLON', r'\;')
  16. # Operators
  17. self.lexer.add('SUM', r'\+')
  18. self.lexer.add('SUB', r'\-')
  19. # Number
  20. self.lexer.add('NUMBER', r'\d+')
  21. # Ignore spaces
  22. self.lexer.ignore('\s+')
  23.  
  24. def get_lexer(self):
  25. self._add_tokens()
  26. return self.lexer.build()
Add Comment
Please, Sign In to add comment