我正在开发一个翻译器,将PC上的简单脚本转换为一些字节码,以便在微控制器上执行它(字节码)。
我使用lex和re2c用C ++开发了翻译器,但是我考虑切换到pyparsing。
为了将我的脚本语句翻译成几个字节码操作,我需要获取该语句的抽象语法树。
例如,这个脚本:
X = 1 - 2;
应该将其翻译为二进制等效形式:
register1 <- 1
register2 <- 2
register3 <- register1 - register2
x <- register3
我有这段 Python 代码:
integer = Combine( number )
ident = Word(alphas,alphanums)
expr = Forward()
atom = ( integer |
( lpar + expr.suppress() + rpar )
)
expr << ( atom + (addop | multop) + atom )
statement = ident + assign + expr
L = statement..parseString( line )
有没有关于在L中访问AST叶子节点的示例,或类似的内容?提前感谢。