我对 lark 很陌生,正在尝试创建一个简单的解析器,但我对一个看似简单的问题感到厌烦,为什么在第 2 行 col 1 int "i" 10" 处没有为 'i' 定义终端?这是我的语法:
start: set_str
| set_int
COMMENT: ";" /[^\n]/*
set_str: "str " STRING " " STRING
set_int: "int " STRING " " NUMBER
%import common.ESCAPED_STRING -> STRING
%import common.SIGNED_NUMBER -> NUMBER
%ignore COMMENT
%ignore " "
%ignore "\n"
和文本输入:
int "i" 10 ; this is a comment
str "s" "test"
我是新手,不知道为什么这不起作用,任何提示都可以使用
此外,还有一个较小的第二个问题是有没有办法摆脱“i”和“s”周围的引号,因为当我删除它们时,它们不再成为转义字符串。