2016-03-30 18 views
0

Daha sonra soracağım bir soru için bir MCVE oluşturmaya çalışıyorum, ancak kullanmaya çalıştığım IDE ile ilgili bir sorunla karşılaşıyorum, ideone.İdeone kullanarak PLY lexer yapılamıyor

aşağıdaki linke kod benim yerel Python 2.7 yorumlayıcı çalıştırırsanız, mükemmel çalışıyor

:

http://ideone.com/DpALEU

Ancak ideone, ben olsun hataları şunlardır:

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 

Ancak, kurallarımı geçerli bir şekilde tanımlıyorum. Örneğin,

Bu hataya ne neden olur?

Şimdiden çok teşekkürler.

+0

İç içe tek tırnaklardan şüphelenirim. –

+0

Bu durum bence 'r' \ # (\ w +) \ s + (. +) ''(' T_DIRECTIVE') içinde hiçbir '' 'karakter içermediği için. –

cevap

1

Muhtemelen ideone, tüm docstrings'i kaldıran -OO en iyileştirme ayarını kullanır. Sonuç olarak, tarayıcıyı oluşturmak istediğinde lex modülü belge dizelerini bulamıyor. Çözümleyicide benzer bir sorunla karşılaşılır. İşte

çirkin geçici çözüm: http://ideone.com/H5rxXK

PLY manual tarafından önerilen bir temiz geçici çözüm (bir sonraki bölüme bakınız var - 8. Python'un Mod Optimize kullanma - bağlantı sonrası; "düzeltmek" bağlantısını şu anda PLY kılavuzunda bir HTML hatası nedeniyle çalışmıyor). Ne yazık ki, ideone'nin dosya sistemi sanallaştırmasının sonucu olan a different error üretir.

+0

Çok teşekkür ederim. –

İlgili konular