[英]How are parsers made graceful and continue working even on compile errors?
我只需要为一些不同的计算机语言构建一些解析器即可。 我曾考虑过使用ANTLR,但我真正想要的是自己进行探索,因为我不喜欢生成代码的想法(是的,我知道这很愚蠢)。
问题是如何在AST中处理和表示编译错误(缺少标识符,特定规则的错误令牌等)。
从编译器课程中我知道的是,解析器通常会尝试丢弃标记或尝试找到下一个匹配的代码元素(例如缺少“;”,然后取下一个表达式的“;”)。
但是,这在AST中是如何表达的。 是否存在某些格式错误的表达式对象/类型? 我有点不解。
我不想只是拒绝某个输入而是处理它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.