如何在Lark parser python中解析条件语句?

2024-09-21 03:21:43 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在用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


Tags: 代码github解析器inputifevalcondition编程语言

热门问题