繁体   English   中英

解析器如何变得优美,甚至可以在编译错误时继续工作?

[英]How are parsers made graceful and continue working even on compile errors?

我只需要为一些不同的计算机语言构建一些解析器即可。 我曾考虑过使用ANTLR,但我真正想要的是自己进行探索,因为我不喜欢生成代码的想法(是的,我知道这很愚蠢)。

问题是如何在AST中处理和表示编译错误(缺少标识符,特定规则的错误令牌等)。

从编译器课程中我知道的是,解析器通常会尝试丢弃标记或尝试找到下一个匹配的代码元素(例如缺少“;”,然后取下一个表达式的“;”)。

但是,这在AST中是如何表达的。 是否存在某些格式错误的表达式对象/类型? 我有点不解。

我不想只是拒绝某个输入而是处理它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM