簡體   English   中英

在枚舉中使用美元符號(pypeg)?

[英]Using a dollar sign in enum (pypeg)?

我想使用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"前加上希望它將它視為正則表達式對象。 這些組合似乎都不起作用並給出相同的錯誤消息。 如何讓它與我給出的例子相符?

關鍵字默認正則表達式為 \\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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM