0

私は、mythryl を neko に変換することを目的とした、PLY を使用したトランスコンパイラを Python で作成しています。

問題は、次のようなコードを解析するときです。

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

この例はhttps://github.com/narke/my2neko/blob/master/test_cases/ex1.myにあります。

パーサーは、FUN_T で表される予約語「fun」に適用される規則と一致しません。もちろん規則は存在します。最後の規則は次のとおりです。

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

4

1 に答える 1