使用 C# 进行 antlr 解析

本文关键字:解析 antlr 进行 使用 | 更新日期: 2023-09-27 17:56:46

我想编写一个简单的CSS解析器,它将从css文件中提取标识符。我有一个语法,我把它编译成.cs文件,现在我需要编写 Main 函数。现在我有这样的东西:

var lex = new css21Lexer(new ANTLRStringStream("}"));
var tokens = new CommonTokenStream(lex);
var parser = new css21Parser(tokens);
parser.styleSheet();

但是当我运行该程序时,没有任何反应。由于输入不正确,我希望出现某种异常。我还尝试向某些产品添加代码,但该代码未执行。如何实际使用生成的解析器?

使用 C# 进行 antlr 解析

ANTLR 的一大优点是,您可以调试生成的解析器代码,并在解析过程中进行操作。 因此,请启动调试器。

ANTLR 将跳过无法正确解析的令牌,并将其报告为错误。 报告方式取决于reportError()功能,它可能对您的目标语言没有任何作用。 也在此处设置断点以查看正在发生的情况。