Python:创建语法和实现操作符

2024-09-21 03:25:23 发布

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

我试着描述语法和运算符。你知道吗

我使用下一个代码

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>

Tags: importjsonparsernumberstringvalue运算符common

热门问题