sbt和antlr,有简单的例子吗?

2024-01-07

有没有人有如何设置 sbt 来构建 ANTLR 文件(到 scala)然后编译生成的代码的示例。

我的文件布局

 src/main/scala/Test.scala     // scala test rig
 src/main/scala/Test.g         // antlr grammar

 build/antlr/TestParser.scala  // antlr output files
 build/antlr/TestLexer.scala

我的 sbt 应该包含什么?我知道有一个插件可以引入 ANTLR 的规则,但我没能让它工作。 (还是这个世界的新手)


我编写了一个 sbt 插件来从提供的 antlr 语法文件生成解析器和词法分析器代码。你可以在我的github页面下载代码http://github.com/stefri/sbt-antlr http://github.com/stefri/sbt-antlr。它也列在 sbt 插件列表中https://github.com/harrah/xsbt/wiki/sbt-0.10-plugins-list https://github.com/harrah/xsbt/wiki/sbt-0.10-plugins-list。最新的快照使用 ANTLR 3.3,可通过我的 sbt 0.11.x 系列的 github maven 存储库获取。如果您需要另一个 ANTLR 版本,很容易更改和重建,我仍在研究配置选项。

使用方法非常简单,只需将插件和我的maven存储库包含在./project/plugins/build.sbt

resolvers += "stefri" at "http://stefri.github.com/repo/snapshots"

addSbtPlugin("com.github.stefri" % "sbt-antlr" % "0.2-SNAPSHOT")

然后将 ANTLR3 语法文件放入src/main/antlr3。他们会 包含在您的下一个版本中。

确保您还包括插件设置sbtantlr.SbtAntlrPlugin.antlrSettings在您的项目设置中,例如,如果您使用简单配置方法,请添加以下行

seq(sbtantlr.SbtAntlrPlugin.antlrSettings: _*)

to your build.sbt文件。笔记,sbt-antlr只要您的语法文件没有更改,就只生成一次源代码 重新生成java源文件。

生成的java文件被吐出到target/scala-2.9.1/src_managed/main/antlr3,因此请确保将该路径包含在 IDE 构建路径中。该插件仍在开发中,但它已经非常适合我的语法了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sbt和antlr,有简单的例子吗? 的相关文章

  • 如何检查字符串中是否包含某个字符?

    我想检查字符串是否包含该字符 我正在编写一个刽子手代码 例如 下面是要猜测的单词 scala 但看起来像 至用户 假设用户输入字母 a 那么它一定看起来像 a a def checkGuess if result contains user
  • Scala:如何编写将类型化为接收者的实现类型的对象返回的方法

    我知道 Scala 中不推荐使用案例类继承 但为了简单起见 我在以下示例中使用了它 scala gt case class Foo val f String def foo g String Foo this copy f g define
  • 哪些 ORM 与 Scala 配合得很好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • SBT 0.13.x 中的触发执行

    我正在使用 SBT 0 13 2 我想通过执行编译任务的方式触发我的任务 我知道我可以通过使用来实现这一点triggeredBy方法 如taskDefinition triggeredBy compile in Compile 我有一个bu
  • 新式(“内联”)宏需要 scala.meta

    我刚刚更新到 scala meta 2 0 0 M1 和最新的 scala 2 12 3 现在宏不再编译 我所做的唯一更改是将元版本从 1 8 0 更改为 2 0 0 M1 错误 新式 内联 宏需要 scala meta 有谁知道是否有快速
  • 使用原始类型模拟案例类

    考虑以下类型结构 trait HasId T def id T case class Entity id Long extends HasId Long 比方说 我们想在一些测试中模拟实体类 val entityMock mock Enti
  • 有没有办法捕获 Spark 中使用通配符读取的多个 parquet 文件的输入文件名?

    我使用 Spark 将多个 parquet 文件读取到单个 RDD 中 并使用标准通配符路径约定 换句话说 我正在做这样的事情 val myRdd spark read parquet s3 my bucket my folder parq
  • 使用 Akka 玩 2.5 - 找不到参数超时的隐式值:akka.util.Timeout

    我正在尝试使用 Play 2 5 测试 Akka 但遇到了一个似乎无法解决的编译错误 我正在关注 Play 文档中的此页面 https playframework com documentation 2 5 x ScalaAkka http
  • 如何从 SparkSQL DataFrame 中的 MapType 列获取键和值

    我的镶木地板文件中有数据 该文件有 2 个字段 object id String and alpha Map lt gt 它被读入 SparkSQL 中的数据帧 其架构如下所示 scala gt alphaDF printSchema ro
  • 通用特征的隐式转换

    我正在实现一个数据结构 并希望用户能够使用任何类型作为密钥 只要他提供一个合适的密钥类型来包装它 我有这个关键类型的特质 这个想法是进行从基类型到键类型的隐式转换 反之亦然 实际上 只使用基类型 该特征看起来像这样 trait Key T
  • 如何捕获 Oozie Spark 输出

    有没有办法捕获spark的输出然后将其输入到shell上 我们当前正在使用 scala 创建 jar 文件 并希望我们的 Spark 输出成为 shell 输入 我的想法是使用 wf actionData spark XXXX var 我只
  • Spark Scala 将列从一个数据帧复制到另一个数据帧

    我有一个原始数据框的修改版本 我在其上进行了聚类 现在我想将预测列恢复为原始 DF 索引没问题 因此匹配 我该怎么做 使用这段代码我得到一个错误 println Predicted dfWithOutput show println Ori
  • 使用spark phoenix从表中读取rdd分区号为1

    当我运行我的火花代码时 val sqlContext spark sqlContext val noact table primaryDataProcessor getTableData sqlContext zookeeper table
  • Scala 解析器组合器的运算符优先级

    我正在研究需要考虑运算符优先级的解析逻辑 我的需求并不太复杂 首先 我需要乘法和除法比加法和减法具有更高的优先级 例如 1 2 3 应视为 1 2 3 这是一个简单的例子 但你明白了 我需要将更多自定义标记添加到优先级逻辑中 我可以根据此处
  • 分析 sbt 构建

    我的 sbt 构建需要很长时间 它又大又复杂 很难知道从哪里开始清理 看起来 sbt 保留了很多关于构建结构的元数据 包括相互依赖关系 命名任务 范围界定等 有了所有这些元数据 似乎很容易跳入并测量每个不同任务 及其范围 花费的时间 在代码
  • 在 Scala 中,使用“_”和使用命名标识符有什么区别?

    为什么当我尝试使用时会出现错误 而不是使用命名标识符 scala gt res0 res25 List Int List 1 2 3 4 5 scala gt res0 map gt item toString
  • 在 IntelliJ 中运行 Spark 字数统计

    我花了几个小时浏览 You Tube 视频和教程 试图了解如何在 Scala 中运行 Spark 字数统计程序 并将其转换为 jar 文件 我现在完全糊涂了 我运行了 Hello World 并且了解了如何在 Apache spark sp
  • 为什么我们需要 scala 中的特征?

    所以 我试图制作一个 Finagle 服务器 与哨兵交谈 不重要 并偶然发现了一个案例 我需要从两个继承classes 不是特质 同时 我们称它们为class SentryHandler extends Handler and class
  • 按字符分割字符串

    scala 有一个标准的分割字符串的方法StringOps split 但它的行为有点让我惊讶 演示一下 使用快捷便利功能 def sp str String str split toList 以下表达式全部计算结果为 true sp Li
  • Spark 数据帧:根据另一列的值提取一列

    我有一个包含带有连接价目表的交易的数据框 paid currency EUR USD GBP 49 5 EUR 99 79 69 客户已支付 49 5 欧元 如 货币 列中所示 我现在想将支付的价格与价目表中的价格进行比较 因此 我需要根据

随机推荐

  • 来自阻塞(具有重叠 I/O 属性)Winsock2 调用的意外 WSA_IO_PENDING

    简洁版本 使用阻塞套接字 API 调用时 我收到 WSA IO PENDING 我该如何处理 插座有重叠 I O 属性 https support microsoft com en gb help 181611 socket overlap
  • qtcreator 在“停止”时发送的信号

    我正在 Linux 上工作 当我使用 Qt 创建者 IDE 上的 停止 按钮关闭应用程序时 我意识到我的应用程序留下了守护进程 我想处理这些情况 以便应用程序以与关闭主窗口相同的方式关闭 要编写处理程序 我需要知道它对应于哪些信号 深入研究
  • 使用 rowindex 从 JTable 检索行数据

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何从 a 中检索行数据JTable
  • Jetpack Compose 应用程序无法在 AVD 上启动

    我已经使用编写了一个示例Jetpack Compose然后每当我尝试Install它在一个AVD gradle 构建Project成功 但内置应用程序未启动 关于工具和代码的一切都很好 甚至Preview shows UI好吧 如果我自己手
  • 使用ajax保存wordpress设置api选项,

    我已经和这个问题斗争了一段时间了 我有一个主题的选项页面 并注册了一个选项 我一直试图在每次用户按下保存按钮时通过ajax更新选项 这是我的代码 JS function save main options ajax main options
  • MySQL MATCH AGAINST 不起作用

    我实际上正在开发一个网站 其中有两个几乎相同的表 其中 MATCH AGAINST 在一个表上有效 但在另一个表上无效 为了找出为什么我试图将其简化为一个简单的问题 让我们制作一个简单的表格 但事实并非如此 我正在使用 phpMyAdmin
  • typeid(T) 是在运行时还是编译时评估?

    我无法在任何地方找到这个看似简单的问题的答案 以下 C 函数是否使用 RTTI 当然不必 但我想知道是否可以保证 typeid 将在编译时确定 template
  • WaitAndRetryPolicy 与 BulkheadPolicy 结合,优先重试。是否可以?

    我正在评估Polly https github com App vNext Polly 库的功能和灵活性方面 作为评估过程的一部分 我试图将WaitAndRetryPolicy与BulkheadPolicy政策 以实现弹性和节流的结合 问题
  • 使用 Jackson 解析 Java 中的 JSON 子集

    给定一个 Json 是否可以使用 Jackson 只解析出消息的一部分 假设我感兴趣的数据埋藏在深层的字段层次结构中 并且我根本不关心为每个类创建 DTO 类 给定一个非常简单的场景 我想对 Telephone 类进行建模 而不了解其之前的
  • CUDA 错误:调用 cublasCreate(handle) 时出现 CUBLAS_STATUS_ALLOC_FAILED

    当我在 Google Colab 中运行 PyTorch 深度学习模型时 出现以下错误 usr local lib python3 6 dist packages torch nn functional py in linear input
  • 如何使用 Selenium 和 Python 在信用卡号字段中输入日期?

    我正在尝试制作一个脚本来自动在 Shopify 网站上结帐 当我尝试填写要求信用卡的字段时 硒不允许我将密钥发送到该字段中 并表示该元素不可交互 我已经尝试单击它 但它仍然不允许我输入信息 有人知道该怎么办吗 driver find ele
  • Gradle 与编译器

    据我了解 Gradle 是 Android Studio 的包生成器 它在构建时整理与项目相关的资源 源代码和配置文件 但它也会编译代码吗 或者它将资源和依赖项转换为某种形式的可编译代码 然后将其发送给编译器 从我一直在做的所有阅读来看 这
  • 如何在 Xamarin Android 中使用 ActivityResultContract?

    我试图在 Xamarin 中使用 AndroidX 的 ActivityResultContract 但找不到任何相关文档或信息 我已经在本机android中实现了ActivityResultLauncher ActivityResultC
  • 强制 xml 返回某些 Web api 控制器,同时保持默认 JSON

    我们正在做一些 azure 商店集成 其资源提供程序代码要求我们使用 xml 作为返回格式化程序 然而 我们只想将 XML 与 Azure 内容一起使用 而保留默认的 JSON 格式化程序 那么 有谁知道如何强制特定控制器 方法的 Web
  • 优先队列应用程序

    优先级队列数据结构的计算机应用有哪些 我想了解使用优先级队列的计算机进程或计算机应用程序 我知道一个这样的应用程序 我们可以在打印机缓冲区中使用优先级队列 例如 假设有 3 个优先级 用户在发出打印命令之前需要指定他 她的优先级 因此 缓冲
  • SQL Server:“找不到数据库引擎启动句柄”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 尝试从以下位置安装 SQL Server Express 2016 时 here https dev mysql com download
  • Railsbrakeman命令sql注入

    从参数构造 order 方法时 如何避免 Rails 中出现刹车警告 def index methods name manager deadline assignments Assignment order sort column meth
  • 如何使用 Selenium IDE 测试 jQuery UI 滑块小部件?

    我们正在使用jQuery UI 滑块小部件 http jqueryui com demos slider 在我们的 Web 应用程序中 我们希望使用以下命令自动测试 UI硒集成开发环境 http seleniumhq org project
  • std::min 的参数顺序会更改浮点的编译器输出

    我在编译器资源管理器中摆弄 发现传递给 std min 的参数顺序更改了发出的程序集 这是 Godbolt Compiler Explorer 上的示例 https godbolt org g g g h codeEditor i font
  • sbt和antlr,有简单的例子吗?

    有没有人有如何设置 sbt 来构建 ANTLR 文件 到 scala 然后编译生成的代码的示例 我的文件布局 src main scala Test scala scala test rig src main scala Test g an