2012-08-04 73 views
0

我正在编写一个Python编译器,它的目标是将mythryl翻译成neko。解析:为什么我定义的规则不匹配?

事情解析时,这样的代码:

fun not 1 => 0; 
    not 0 => 1; 
end; 

这个例子是:https://github.com/narke/my2neko/blob/master/test_cases/ex1.my

解析器不匹配它适用于保留字“乐趣”的规则,由FUN_T代表当然规则存在,最后的一个:

def p_declaration(p): 
'''declaration : MY_T vb 
    | dot_exp ARROW pattern 
    | FIELD_T MY_T fields 
    | RECURSIVE_T MY_T rvb 
    | FUN_T fun_decls 

解析器是:https://github.com/narke/my2neko/blob/master/my2neko.py

我得到的错误是这样的:

State : 0 
Illegal character 'f' 
Illegal character 'u' 
Illegal character 'n' 
Illegal character 'i' 
Illegal character 'n' 
Stack : . LexToken(LOWERCASE_ID,'c',1,6) 
Action : Shift and goto state 80 

重现它:./my2neko.py test_cases/ex4.my f.neko

能否请你指出我什么,我错过了什么? 在此先感谢。

下面是该项目:https://github.com/narke/my2neko

回答