Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ANTLR和Android_Android_Antlr - Fatal编程技术网

ANTLR和Android

ANTLR和Android,android,antlr,Android,Antlr,有关于如何在Android上使用ANTLR的指南吗?我已经找到了一些Android的ANTLR移植,但它看起来没有任何教程或手册。你知道在哪里可以找到一些吗?(是的,我一直在谷歌上搜索…) Thx我不确定“使用ANTLR”对您意味着什么。以下是它对我的意义: 我假设您将创建一个语法,生成parser/lexer Java类,编译它们,在Android应用程序中部署它们,然后让它们解析应用程序发送到AST中的任何内容 如果你想知道如何做到这一点,没有比ANTLR文档或从亚马逊购买的书更好的地方了。

有关于如何在Android上使用ANTLR的指南吗?我已经找到了一些Android的ANTLR移植,但它看起来没有任何教程或手册。你知道在哪里可以找到一些吗?(是的,我一直在谷歌上搜索…)

Thx

我不确定“使用ANTLR”对您意味着什么。以下是它对我的意义:

我假设您将创建一个语法,生成parser/lexer Java类,编译它们,在Android应用程序中部署它们,然后让它们解析应用程序发送到AST中的任何内容


如果你想知道如何做到这一点,没有比ANTLR文档或从亚马逊购买的书更好的地方了。

在阅读了下面的自述之后:

AntlrJavaRuntime-Earlence Fernandes,CRePE项目,阿姆斯特丹 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

运行时作为外部库提供,应用程序可以链接到该库。 它提供了必要的机制来执行ANTLR工具生成的Lexer/Parser代码。 该模型是离线的,即解析器/词法分析器是在台式计算机上通过手机生成的。 生成的文件被传输到一个Android项目,该项目随后使用该库

建筑
~~~~~~~~

  • 选择适当的目标
  • 使AntlJavaRuntime
  • 验证AntlrJavaRuntime.xml是否放置在/system/etc/permissions中,AntlrJavaRuntime.jar是否放置在/system/framework中
  • 在此之后,您可以运行正常make
  • 在我看来,唯一的区别是,当您想要在Android设备(或模拟器)上运行解析器时,您必须在Android项目/应用程序中包含AntlrJavaRuntime

    因此,编写语法、从所述语法生成解析器和词法分析器与在“普通”机器上相同。下面是前面的问答,展示了如何编写简单的表达式解析器:

    编辑
    另请参见此问答:

    有一个Android Studio(实际上是IntelliJ)插件,名为“ANTLR v4语法插件”

    为我工作

    简而言之,只需将语法(一个.g4文件)复制到您的项目中,右键单击它>配置ANTLR

    从那里,您可以选择生成Java或Kotlin文件,一旦在依赖项中添加了运行时,这些文件将编译并运行:

    implementation 'org.antlr:antlr4-runtime:4.7'
    

    谢谢,我肯定会去亚马逊书柜看看,我正在寻找解决方案,如何在Android上移植或使用ANTLR。我的观点是,你将在Android上离线使用ANTLR。您将把它为您创建的Java.class文件打包到您的应用程序中。当你进入Android时,它只是Java类。正如你所说的包含AntlrJavaRuntime,它是否意味着整个\Java\org\antlr\runtime的目的地,它有几十个Java文件?是的,所有编译的
    。Java
    源文件都需要成为你的Android应用程序/项目的一部分。好的,我发现了一些预先准备好的antlr-runtime-3.1.3,希望它能有所帮助。谢谢你的回答