所以我正在用python解析一种编程语言,使用Lark解析器,那么我该如何实现呢?我有以下百灵鸟语法:
?bool: TRUE -> true
| FALSE -> false
?condition: expr "==" bool -> bool_comparison
| expr "==" expr -> expr_comparison
?statement: "print" "(" expr ")" ";" -> print_statement
| "input" "(" expr ")" ";" -> input_statement
?if : "if" condition "{" statement "}" -> if_statement
上面是我的.lark
文件,这是我的转换器代码
def if_statement(self, condition, eval_expr):
if condition:
eval_expr
我知道这不起任何作用,但我想不出一种方法来计算和比较if语句,如果我解析如下内容,我将一无所获:
if 5 == 5 { print("HI"); }
>>> None
我们将感谢您的帮助,谢谢!我的完整代码在github上:https://github.com/AbooMinister25/ToyLang
目前没有回答
相关问题 更多 >
编程相关推荐