grammar相关内容

XText语法变量定义/引用

[any type]Realisation语法规则初始化应该是一个值或对预定义变量的引用。 对于Integer,它看起来与您从Java中知道的类似: public int i = 3; 为什么以下语法引发异常? Integer returns ecore::ELong: (Plus|Minus)? INT; IntegerRealisation: {Integer} In ..
发布时间:2022-08-15 22:24:57 Java开发

AntlrWorks&;and;语言语法错误

处理一个游戏项目,该项目涉及一种脚本语言,我希望将其解释为可以直接执行的虚拟机代码。我已经将语法包括在下面。所有的词法分析器规则都正确地显示在语法图中,但是当我点击任何解析器规则的主体时,对于给定的解析器规则X,我得到“无法显示规则X”,因为没有找到起始状态。 我真的不确定为什么ANTLR会抱怨没有开始状态。语法应该明确地从代码行开始,它不会被任何其他解析器规则引用。此外,右上角的框为绿色, ..
发布时间:2022-08-12 16:40:31 其他开发

为什么019不是一个JavaScript语法错误?或者为什么是019&>020

如果我在JavaScript控制台(在Chrome和Firefox中都进行了测试)中键入019 > 020,则会得到答案true。 这是因为020被解释为OctalIntegerLiteral(等于16),而019显然被解释为DecimalLiteral(并且等于19)。由于19大于16,019 > 020为true。 令我困惑的是,为什么019首先被解释为DecimalLiteral。是 ..
发布时间:2022-07-20 11:51:16 前端开发

如何生成满足某个语法的所有可能的表达式

我的应用程序有一个语法,其中包含以下表达式: (FIND, SEARCH, Lookup) [a, the, an, for] ITEM [in, at] (NEST, SHELF, DESK) 圆括号中的项目“()”-必填,方括号中的项目是可选的,不带括号的单词是必填项。 对我来说,简单的表达方式是: 在办公桌上查找物品 在桌子中查找项目 在Nest中查找项目 搜索货 ..
发布时间:2022-05-14 13:54:46 Python

Epsilon(ε)乘积与LR(0)文法和LL(1)文法

在很多地方(例如在这个答案中here),我已经看到,LR(0)文法不能包含ε乘积。 我也在Wikipedia中看到过这样的语句:无ε的LL(1)文法也是SLR(1)。 现在我面临的问题是,我无法推理出这些陈述背后的逻辑。 我知道LR(0)文法通过空栈接受DPDA接受的语言,即它们接受的语言必须具有前缀属性。[然而,如果我们假定结束标记,则可以处理该前缀属性,并且在给定任何语言的情况下 ..
发布时间:2022-05-14 13:48:24 其他开发

如何用正式的BNF来描述这一事件日志?

我有一个非常简单的事件日志格式,只是在BNF(对于gocc)中描述它有困难。 以下是我的简单事件日志格式: timestamp nested-event-A Running timestamp Start of nested-event-B timestamp Start unested-event-C timestamp End unested-event-C timestamp S ..
发布时间:2022-05-14 13:40:27 其他开发

使用Ffltter的PetiteParser创建FHIRPath

我想寻求一些使用mini tparser的指导(我正在更新这个问题)。我正尝试在DART中重新创建一个名为FHIRPath的基于json的语法。我对这样的语法还不熟悉,所以我花了一些时间来理解我想要它做什么(或者我认为我想要它做什么)。我已经设法让它解析json路径和一般函数,它看起来如下所示: class FhirPathGrammar extends GrammarDefinition ..
发布时间:2022-05-14 13:32:09 其他开发

代币和规则的真正区别是什么?

我被Raku的内置语法吸引住了,我想我可以玩玩它,写一个简单的电子邮件地址解析器,唯一的问题是:我无法让它工作。 我尝试了无数次迭代,才找到了真正有效的东西,我很难理解为什么。 归根结底就是将token更改为rule。 以下是我的示例代码: grammar Email { token TOP { '@' [ '.']* ..
发布时间:2022-05-14 13:25:53 其他开发

Ll-1解析器:Follow-set真的有必要吗?

据我所知,如果输入流中有错误,跟随集会在第一个可能的时刻告诉我。对吗? 因为不然的话,我想知道你到底需要它做什么。考虑到您的解析器在堆栈的顶部有一个非终结点(在我们的类中,我们使用了一个堆栈作为LL解析器的抽象) 即 [TOP] X...[BOTTOM] 下一步将替换X,因为它位于堆栈的顶部。因此,解析器询问解析表对X使用什么派生。 + b 其中+和b都是终端。 ..

ANTLR未报告的语法歧义

谁能帮我理解ANTLR为什么不报告此语法中的歧义问题? https://github.com/NASA-SW-VnV/fret/blob/master/fret-electron/support/NuSMVParser/NuSMV.g4#L61-L78 simpleExpr和ltlExpr中的规则以这样一种方式重复,即始终有两个替代路径来构建任何内容,并对其应用and、or、xor、i ..
发布时间:2022-04-12 19:08:32 其他开发

语境敏感的标记化是否需要词汇语法中的多个目标符号?

根据ECMAScript spec: 在几种情况下,词汇输入的识别 元素对句法语法上下文敏感,即 使用输入元素。这需要多个目标符号 词汇语法。 两个这样的符号是InputElementDiv和InputElementRegExp。 在ECMAScript中,/的含义取决于它出现的上下文。根据上下文的不同,/可以是除法运算符、正则表达式文字的开始或注释分隔符。词法分析器本身无法区分 ..

'@' 符号在 Javascript、Coffeescript 或 Jquery 中是否有特殊含义?

我有一些看起来像的代码 self = @ 然后它使用 @someMethodName 或 self.someMethodName @有什么特殊含义吗? 解决方案 @ 不是 javascript 标识符的有效字符.标识符只能包含 $、_、数字和字母. 在咖啡脚本中,@ 表示 这个. CoffeeScript 有一些与 this 关键字相关的不错的功能.首先,Coffee ..
发布时间:2022-01-24 10:28:13 前端开发

Xtext:具有重要/语义空白的语言语法

如何使用 Xtext 解析带有语义空白的语言?我正在尝试为 CoffeeScript 编写语法,但找不到任何好的文档. 解决方案 AFAIK,你不能. 在解析类 Python 语言的情况下,您需要词法分析器发出 INDENT 和 DEDENT 标记.为此,您需要在词法分析器规则(Xtext 的 terminal 规则)中支持语义谓词,该规则将首先检查输入中下一个字符的当前位置是否等于 ..
发布时间:2022-01-24 10:23:07 Java开发

ARM Unified Assembler Language 语法和解析器?

ARM 架构参考手册 A4.2 中描述的 ARM 统一汇编语言是否有公开可用的语法或解析器 本文档使用 ARM 统一汇编语言 (UAL).这种汇编语言语法为所有 ARM 和 Thumb 指令提供了一种规范形式. UAL 描述了每条指令的助记符和操作数的语法. 我只是对解析助记符的代码和每条指令的操作数感兴趣.例如,如何为这些行定义语法? ADC{S}{}{} { ..
发布时间:2022-01-17 14:03:02 其他开发

LR、SLR 和 LALR 解析器有什么区别?

LR、SLR 和 LALR 解析器之间的实际区别是什么?我知道 SLR 和 LALR 是 LR 解析器的类型,但就它们的解析表而言,它们的实际区别是什么? 以及如何显示一个语法是 LR、SLR 还是 LALR?对于 LL 语法,我们只需要证明解析表的任何单元格都不应包含多个产生式规则.LALR、SLR 和 LR 是否有类似的规则? 例如,我们如何证明语法 S -->啊 |醋酸乙酯 | ..
发布时间:2022-01-17 08:42:40 其他开发

创建一个单独的“布尔表达式";动态语言规则

我正在 Bison 中为一种简单的动态类型语言创建语法.我有一个“通用"expression 规则,它有点类似于 C 中右值的概念;表达式出现在赋值的右侧,它们也可以作为参数发送给函数等.规则的一个大大简化的版本如下: 常量表达式: TOK_INTEGER_CONSTANT|TOK_FLOAT_CONSTANT|字符串字面量;表达: 常量表达式|标识符|布尔表达式|booleanExpressi ..

如何从形式语法生成句子?

从语法生成句子的常用方法是什么? 我想要一种与解析器相反的算法.也就是说,给定一个正式的上下文无关语法(比如 LL),我想生成一个符合该语法的任意句子.我在这里使用 sentence 来表示任何有效的文本主体,因此它实际上可以是一个完整的程序(即使它没有任何意义——只要它在语法上是正确的). 语法示例: 程序:新队?进口 : ("进口" NE ..

如何判断一种语言是否为 LL(1) LR(0) SLR(1)

有没有一种简单的方法可以判断一个语法是 LL(1)、LR(0)、SLR(1)... 只看语法而不做任何复杂的分析? 例如:要确定 BNF 语法是否为 LL(1),您必须计算 First 和 Follow 集 - 在某些情况下这可能很耗时. 有人知道如何更快地做到这一点吗?任何帮助将不胜感激! 解决方案 首先,有点迂腐.您无法通过检查语法来确定 语言 是否为 LL(1),您只能对 ..
发布时间:2022-01-17 08:32:17 其他开发

在 Prolog 中解析多位数字

我有以下简单的表达式解析器: expr(+(T,E))-->term(T),"+",expr(E).expr(T)-->term(T).术语(*(F,T))--> 因子(F),“*",术语(T).项(F)-->因子(F).因子(N)-->nat(N).因子(E)-->“(",expr(E),“)".nat(0)-->“0".nat(1)-->“1".nat(2)-->“2".nat(3)-->“ ..
发布时间:2022-01-12 10:29:56 其他开发