Visual Studio에서 antlr을 사용하는 방법을 배우기 시작했으며 기본적인 예제가 작동하지 않습니다! 여기 ANTLR C# 예외 발생 없음
은 내가 사용하고있어 문법입니다 : 여기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을 얻지 못하는 이유를 완전히 혼동하고 있습니까?
아무도 도와 줄 수 있습니까?
덕분에, 아미르
I는 C# v3의 목표와 경험이없는 (또는 VS, 그 문제에 대한!),하지만 비주얼 스튜디오는 아마 STDERR에 당신이보고 있지 탭에 보내는 무엇입니까 인쇄 무엇입니까? ANTLRWorks를 사용하면 디버거를 통해 문법을 실행할 때 오류가 발생합니다. –