lex を試す。トークン定義を忘れると?
t_CHAR をコメントアウト
#!/usr/bin/env python import ply.lex as lex tokens = ( 'CHAR', 'PLUS', ) #t_CHAR = r'\w+' t_PLUS = r'\+' t_ignore = ' \t' def t_error(t): print "Illegal character '%s'" % t.value[0] t.lexer.skip(1) lex.lex() lex.input("a + b + abc") while 1: tok = lex.token() if not tok: break # No more input print tok
で、
Illegal character 'a' LexToken(PLUS,'+',1,2) Illegal character 'b' LexToken(PLUS,'+',1,6) Illegal character 'a' Illegal character 'b' Illegal character 'c'
定義忘れているぞ、こりゃ!みたいなメッセージは出ないのか?