如何在Xamarin中使用ANTLR4

时间:2016-01-15 05:06:50

标签: c# xamarin antlr

我正在尝试安装ANTLR4以使用Xamarin项目。现在,当我尝试在项目中包含解析器和词法分析器文件时,我收到编译错误(无法识别的界面)。

以下是我安装应用程序的方法。

  1. 安装Java(1.6或更高版本)
  2. 下载: $ cd /usr/local/lib $ curl -O http://www.antlr.org/download/antlr-4.5-complete.jar
  3. antlr-4.5-complete.jar添加到CLASSPATH $ export CLASSPATH=".:/usr/local/lib/antlr-4.5-complete.jar:$CLASSPATH"
  4. 为ANTLR工具创建别名: $ alias antlr4='java -Xmx500M -cp "/usr/local/lib/antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
  5. 这是一个用

    进行测试的简单语法
    // 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 /包的正确版本是什么?

1 个答案:

答案 0 :(得分:1)

我可以通过安装this version of the package来构建内容。从那里,我将.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'

还有一件事。应从语法文件中删除目标语言选项,以支持使用命令行参数。您现在应该能够使用:antlr4 Hello.g4 -Dlanguage=CSharp_v4_0生成.cs文件。