java -cp C:\Tools\Libraries\antlr4-csharp-complete.jar org.antlr.v4.Tool Hello.g4 を実行すると、次のファイルが取得されます。
HelloBaseListener.cs
Hello.tokens
HelloListener.cs
HelloParser.cs
HelloLexer.tokens
HelloLexer.java
私の質問は最後のファイルについてです。なぜ .cs ではなく .java なのですか? 私はantlr4-csharp-4.0.1-SNAPSHOT-complete.jarを使用しています
文法は次のとおりです。
grammar Hello; // Define a grammar called Hello
options
{
language=CSharp_v4_0;
}
r : 'hello' ID ; // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines, \r (Windows)
こんにちはサム!Visual Studio Express しか持っていないので、拡張機能をインストールできません。これは私が使用しているコードですが、まだ HelloLexer.java を生成しています。
AntlrClassGenerationTaskInternal a = new AntlrClassGenerationTaskInternal();
List<String> files = new List<string>();
files.Add(@"C:\Tools\Grammars\Hello.g4");
a.JavaVendor = "JavaSoft";
a.ToolPath = @"C:\Tools\Libraries\antlr4-csharp-complete.jar";
a.JavaInstallation = "Java Development Kit";
a.SourceCodeFiles = files;
a.OutputPath = @"C:\Tools\Grammars\CSharp\";
a.Execute();
ちなみにビジュアルスタジオは Antlr4ClassGenerationTask.IsFatalException(ex) を見つけられなかったので文句を言っていた
これについてあなたの助けに感謝します。
よろしく、オマール。