如何在 Xamarin 中使用 ANTLR4
本文关键字:ANTLR4 Xamarin | 更新日期: 2023-09-27 18:30:25
我正在尝试安装 ANTLR4 以处理 Xamarin 项目。现在,当我尝试在项目中包含解析器和词法分析器文件时,我收到编译错误(无法识别的接口)。
这是我安装应用程序的方式。
- 安装 Java(版本 1.6 或更高版本)
- 下载:
$ cd /usr/local/lib $ curl -O http://www.antlr.org/download/antlr-4.5-complete.jar
- 将
antlr-4.5-complete.jar
添加到CLASSPATH
:$ export CLASSPATH=".:/usr/local/lib/antlr-4.5-complete.jar:$CLASSPATH"
- 为 ANTLR 工具创建别名:
$ alias antlr4='java -Xmx500M -cp "/usr/local/lib/antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
这是一个简单的语法来测试
// Define a grammar called Hello
grammar Hello;
options
{
language = CSharp;
}
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
从终端运行命令antlr4 Hello.g4
会生成 C# 的词法分析器/解析器文件。当我现在尝试将这些文件复制到我的 Xamarin 项目中时,系统要求我解析几个无法识别的符号。
我应该安装什么 ANTLR 软件包?我尝试了 4.3.0 版本,但这显然没有定义IVocabulary
接口(据我所知,没有其他编译错误)。从描述中可以看出,此版本的包是使用 Visual Studio 2010 或更高版本构建的。与 Xamarin 一起使用的正确版本的 ANTLR/包是什么?
我能够通过安装此版本的软件包来构建东西。从那里,我将.jar文件复制到 /usr/local/lib
中,并将antlr4
命令添加到我的.bash_profile中:
-
export CLASSPATH=".:/usr/local/lib/antlr4-csharp-4.5-SNAPSHOT-complete.jar:$CLASSPATH"
-
alias antlr4='java -jar /usr/local/lib/antlr4-csharp-4.5-SNAPSHOT-complete.jar'
还有一件事。应从语法文件中删除目标语言选项,以便使用命令行参数。您现在应该能够使用以下内容生成.cs文件:antlr4 Hello.g4 -Dlanguage=CSharp_v4_0
.