私は後で質問するMCVEを作成しようとしていますが、私はideadoneを使用しようとしているオンラインIDEの問題に出くわしました。私は私の地元のPythonで2.7インタプリタを、それを実行した場合ideoneを使用してPLYレクサーを構築できません
下記のリンクのコードは完全に正常に動作します:
はしかし、ideoneに、私が得るエラーは以下のとおりです。
ERROR: prog.py:282: No regular expression defined for rule 't_DIRECTIVE'
ERROR: prog.py:286: No regular expression defined for rule 't_REFERENCE'
ERROR: prog.py:291: No regular expression defined for rule 't_UNAME'
ERROR: prog.py:296: No regular expression defined for rule 't_USTRING'
ERROR: prog.py:301: No regular expression defined for rule 't_UFLOAT'
ERROR: prog.py:307: No regular expression defined for rule 't_HEX'
ERROR: prog.py:314: No regular expression defined for rule 't_INTEGER'
ERROR: prog.py:320: No regular expression defined for rule 't_COMMENT'
ERROR: prog.py:324: No regular expression defined for rule 't_ID'
ERROR: prog.py:330: No regular expression defined for rule 't_newline'
Traceback (most recent call last):
File "prog.py", line 338, in <module>
File "/usr/lib/python2.7/dist-packages/ply/lex.py", line 901, in lex
raise SyntaxError("Can't build lexer")
SyntaxError: Can't build lexer
しかし、私はルールを正当に定義しています。例:
def t_REFERENCE(t):
r'([a-zA-Z0-9_\-]+)\s*\'([a-zA-Z0-9_\-\.]+)\''
return t
このエラーの原因は何ですか?
事前に感謝します。
ネストされた一重引用符を疑うでしょう。 –
'r '\#(\ w +)\ s +(。+)''( 't_DIRECTIVE')には' ''文字が含まれていないので、そうは思いません。 –