我试着描述语法和运算符。你知道吗
我使用下一个代码
from lark import Lark
json_parser = Lark(r""" ?start: value
?value: dict
| array
| operator
| string
| SIGNED_NUMBER -> number
| "true" -> true
| "false" -> false
| "null" -> null
statement : "если" condition "то" result
condition : string operator string
result : string
array : "[" [value ("," value)*] "]"
dict : "{" [pair ("," pair)*] "}"
pair : string ":" value
!operator : "<" | ">" | "=" | ">=" | "<=" | "!="
string : ESCAPED_STRING
%import common.ESCAPED_STRING
%import common.SIGNED_NUMBER
%import common.WS
%ignore WS """, start='value')
text = '{"key": ["item0", "item1", 3.14, "!="]}'
json_parser.parse(text).pretty()
但它又回来了
'dict\n pair\n string\t"key"\n array\n string\t"item0"\n string\t"item1"\n number\t3.14\n string\t"!="\n'
但我如何实现它并区分字符串和运算符呢?
如果使用声明而不使用"
运算符,则会出现错误
GrammarError: Unexpected input '< | >' at line 17 column 36 in <string>
目前没有回答
相关问题 更多 >
编程相关推荐