我开始学习如何在 Visual Studio 中使用 antlr,但我无法获得一个基本的示例!
这是我正在使用的语法:
grammar T;
options {
language=CSharp3;
TokenLabelType=CommonToken;
}
@lexer::namespace {CoolTool.CoolProject.Compiler}
@parser::namespace {CoolTool.CoolProject.Compiler}
/*
* Parser Rules
*/
compileUnit
: 'a' AFTER
;
AFTER
: 'after'
;
WS
: (' '|'\r'|'\t'|'\u000C'|'\n');
这是实例化词法分析器和语法的 C# 代码
using System;
using Antlr.Runtime;
namespace CoolTool.CoolProject.Compiler
partial class TParser
{
public static void Main(String[] args)
{
TLexer lexer = new TLexer(new ANTLRStringStream("$$%$%"));
CommonTokenStream tokens = new CommonTokenStream(lexer);
TParser parser = new TParser(tokens);
parser.compileUnit();
Console.WriteLine("OK");
}
}
}
问题是,无论我将什么传递给词法分析器/解析器,我都不会收到任何错误。我很困惑为什么我没有得到“$$”的 NoViableAltException?
任何人都可以帮忙吗?
谢谢,阿米尔