作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 pypeg 匹配 $f
, $c
, ..., $d
形式的类型,所以我尝试将其放入 Enum
中,如下所示:
class StatementType(Keyword):
grammar = Enum( K("$f"), K("$c"),
K("$v"), K("$e"),
K("$a"), K("$p"),
K("$d"))
然而,这失败了:
>>> k = parse("$d", StatementType)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/site-packages/pypeg2/__init__.py", line 667, in parse
t, r = parser.parse(text, thing)
File "/usr/local/lib/python3.6/site-packages/pypeg2/__init__.py", line 794, in parse
raise r
File "<string>", line 1
$d
^
SyntaxError: expecting StatementType
我还尝试用 \$x
替换 $x
来转义 $
字符。我还尝试在 r"\$x"
之前添加,希望它将其视为正则表达式对象。这些组合似乎都不起作用并给出相同的错误消息。如何让它与我给出的示例相匹配?
最佳答案
default regex for Keywords是 \w+
。您可以通过设置 Keyword.regex
类变量来更改它:
class StatementType(Keyword):
grammar = Enum( K("$f"), K("$c"),
K("$v"), K("$e"),
K("$a"), K("$p"),
K("$d"))
Keyword.regex = re.compile(r"\$\w") # e.g. $a, $2, $_
k = parse("$d", StatementType)
关于python - 在枚举(pypeg)中使用美元符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659136/
class A(List): grammar = [(Symbol, ':', Symbol), Symbol] compose(parse('a', A)) 这会在解析正常时引发compos
我有以下文件: orange apple orange apple apple lime banana 每种水果都有一个与之匹配的类: class Banana: grammar = ....
我想使用 pypeg 匹配 $f, $c, ..., $d 形式的类型,所以我尝试将其放入 Enum 中,如下所示: class StatementType(Keyword): grammar
我处于需要解析旧格式的情况。我想做的是编写一个解析器来识别格式并将其转换为更易于使用的对象。 我设法解析了输入,问题是当我想将它转换回字符串时。总结一下:当我将 parse() 的结果作为参数传递给我
我是一名优秀的程序员,十分优秀!