leex测试进度:用通配符"."解决错误字符

看来结论还是下得太早。死循环的原因是没有拦截无法匹配的字符。
使用以下规则作为末规则后,问题解决。
. : {error, {"unknown", TokenChars}}

与ANTLR相比,ANTLR不会死机,错误信息很详细,调试图形化,比较方便。
而Erlang的优点是可以把词法分析(leex, .xrl)和语法分析(yecc,  .yrl)分别调试,
各有千秋啊。

而在调试过程中,Erlang的命令行方式可以调试单独的函数(当然要EXPORT)这一优点
又更加突出。如果换了C的lex,也会挺麻烦。

你可能感兴趣的:(C++,c,erlang,C#)