是. (咳嗽).

我的理解是您可以在规则中添加代码.任意代码可以测试任意事物,所以答案是“是”.一般来说,我认为你不能用ANTLR很好地做到这一点,但这对于许多有趣的特殊情况非常实用(例如,接受除素数之外的所有数字字符串).

没有.

我想如果你坚持使用ANTLR允许的语法规范,答案就是“不”.实际上,有一些无上下文的语法可以用ANTLR“指定”它无法正确处理,大多数解析器生成器也是如此. (对于ANTLR,这包括具有间接左递归,歧义,任意前瞻等的语法.)我们甚至通过其“限制”的名称调用大多数这些解析器生成器,例如LL(1),LALR(k)等. .

哪些可以完全上下文?

一些解析器生成器可以处理完整的,无上下文的语法.我想到了Earley和CYK解析器,但它们并不是很快,所以人们往往会避免使用它们. GLR解析器可以做到这一点(我们在我们的工具中使用它,因为它真的有助于为真实语言编写语法[参见我的生物]但是有一些语法使它们很慢;你可以大多避免这些.显然GLL解析方案存在并且是同样完全没有上下文;我希望它们在某些钝语法中也有性能问题,但在实践中也很有用.

我听说过唯一可以执行各种上下文相关语法的解析器生成器是MetaS.我从来没有使用它,但它背后的理论非常令人印象深刻.声称它可以做任意上下文敏感的语法;对于任意讨厌的语法,它会遇到极高的成本,但实际上这并不是反对意见.

antlr 可以用java写吗_java – 我们可以用ANTLR定义一个非上下文语法吗?相关推荐

  1. /*按要求编写一个Java应用程序程序:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口。(3)定义一个测试类,测试飞机

    /* 按要求编写一个Java应用程序程序: (1)定义一个接口CanFly,描述会飞的方法public void fly(); (2)分别定义类飞机和鸟,实现CanFly接口. (3)定义一个测试类, ...

  2. 按要求编写一个Java应用程序程序: (1)定义一个接口CanFly,描述会飞的方法public void fly(); (2)分别定义类飞机和鸟,实现CanFly接

    代码 /*第三题:按要求编写一个Java应用程序程序:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口.(3)定义一个测 ...

  3. java写下雪_Java实现下雪场景

    1.[代码]Java实现下雪场景 import javax.swing.JFrame; /** * 首先我们来创建JFrame类,这个类我们把它称作MyStarFrame, * 包含一个主方法跟两个成 ...

  4. java写花束_Java作业 题目:16版.情人节送玫瑰花

    1.实验要求 本实验要求:以情人节送花为业务背景,体验自定义异常以及异常处理机制. 1-1. 业务说明: 1-1.1. 本实验以情人节送花为业务背景,女方提出送花需求,男方送出鲜花. 1-1.2. 当 ...

  5. java写病毒_java编写小病毒程序

    import java.io.File;//在你的桌面上创建无数个文件夹或文件,那电脑内存消耗很大了!import java.util.*;public class chuangjianwenjian ...

  6. 实验楼Java写计算器_Java版图形界面计算器

    Java 版图形界面计算器 实验说明及介绍 环境登录 无需密码自动登录,系统用户名 shiyanlou,密码 shiyanlou 环境介绍 本实验环境采用带桌面的 Ubuntu Linux 环境,实验 ...

  7. java写龟兔赛跑_Java实现龟兔赛跑

    闲极无聊,加上翻手机看到龟兔赛跑的词语,想到了可以通过java起两个线程来实现龟兔赛跑的实现. 代码实现其实很简单: 首先是乌龟类: 然后是兔子类: 最后是赛跑类: 接下里让我们看一下输出结果吧: 乌 ...

  8. java写值日表_Java知识之JVM

    类加载器 类装载器ClassLaoder负责加载class文件,class文件开头有特定的文件标识,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构,并且ClassL ...

  9. Java写析构函数_Java是否有析构函数?

    Java是否有析构函数? 我似乎无法在此找到任何文档. 如果没有,我怎么能达到同样的效果? 为了使我的问题更具体,我正在编写一个处理数据的应用程序,规范中说应该有一个"重置"按钮, ...

最新文章

  1. Spring Cloud Gateway之Predict篇
  2. python中matplotlib自定义设置图像标题使用的字体类型:获取默认的字体族及字体族中对应的字体、自定义设置图像标题使用的字体类型
  3. SAP、IFS、Maximo三产品在EAM角度的比较Lenon系列
  4. [剑指offer][JAVA]面试题第[22]题[j剑指offer][双指针][快慢指针]
  5. java8新特性(6)— 日期与时间
  6. [转载] 多线程详解java.util.concurrent
  7. Linux驱动学习2
  8. ASP.Net学习笔记008--ASP.Net揭秘之Input版自增补充说明
  9. jQuery 判断是否包含某个属性
  10. 饿了么风神系统手机版_数字技术带来平等工作机会 饿了么智能调度系统助力残障骑手少跑路多接单...
  11. 科学精神:谈登月,关键在于讨论技术如何实现
  12. FUP AMD300-27便携式拉曼食品安全分析仪 检测微痕量农兽药残留 非法添加
  13. Ubuntu连接不上网络问题的解决方法
  14. 新世达380修改服务器密码,新时达AS380利用小键盘调试说明
  15. 狗年拜年php源码,2018新年拜年贺词【2018狗年拜年贺词】
  16. 在nginx上部署vue项目(history模式)--demo实列;
  17. python 列表作业
  18. Vue学习之路第八篇:事件修饰符
  19. 个人号的微信API接口,微信机器人二次开发
  20. Android模拟器报extra space is needed in addition to APK size的错误

热门文章

  1. java url工具_UrlTool官方版|UrlTool (java Url转换工具)下载v1.1-乐游网软件下载
  2. 二分答案——进击的奶牛(洛谷 P1824)
  3. cannot find mysql.frm_mysql 问题 - Run佳的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. 参考文献格式字号字体_干货分享|同学,你的论文格式有点不太对啊!
  5. MogDB数据库高可用及负载均衡JDBC参数测试
  6. 2021 ACDU China Tour-上海站暨数据库大咖讲坛(第4期)成功举办!(附视频回放PPT下载)...
  7. 从微服务应用于技术栈,了解华为云微服务应用
  8. 【API进阶之路】因为不会创建云服务器,我被实习生摆了一道
  9. 【华为云技术分享】云图说 | 华为云MCP多云容器平台,让您轻松灾备!
  10. 利用深度学习识别滑动验证码缺口位置