2022.06.25
PLY(Python Lex Yacc) in gem5
http://www.dabeaz.com/ply/ply.html
PLY relies on reflection (introspection) to build its lexers and parsers.
Here is the basic ideas:
(Lex)Token:
- 
tokens list tokens
- 
specification of tokens: regex in python re mode t_prefixed variable or function
(Yacc)Parser
- 
grammaer rule: function with docstring contains grammaer specification, e.g. def p_expression_plus(p): 'expression : expression PLUS term' # ^ ^ ^ ^ # p[0] p[1] p[2] p[3] p[0] = p[1] + p[3]