- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
PetitParser 中的规则是分布式的吗?
有以下规则:
integerLiteral --> hexIntegerLiteral / octalIntegerLiteral / decimalIntegerLiteral
hexIntegerLiteral --> hexNumeral , (integerTypeSuffix optional)
octalIntegerLiteral --> octalNumeral , (integerTypeSuffix optional)
decimalIntegerLiteral --> decimalNumeral , (integerTypeSuffix optional)
integerLiteral --> (hexIntegerLiteral / octalIntegerLiteral / decimalIntegerLiteral) , (integerTypeSuffix optional)
hexIntegerLiteral --> hexNumeral
octalIntegerLiteral --> octalNumeral
decimalIntegerLiteral --> decimalNumeral
0777L
不再解析。它应该匹配
octalNumeral , (integerTypeSuffix optional)
或在新版本
octalIntegerLiteral , (integerTypeSuffix optional)
但这并没有发生。
最佳答案
是的,PetitParser 中的有序选择是分布式的。在您的示例中,缺少一些上下文,所以我不知道为什么它对您不起作用。
PetitParser 优化器会自动执行您建议的更改。重写规则(以稍微更一般的形式)定义为:
PPOptimizer>>#postfixChoice
<optimize>
| before prefix body1 body2 postfix after |
before := PPListPattern any.
prefix := PPPattern any.
body1 := PPListPattern any.
body2 := PPListPattern any.
postfix := PPPattern any.
after := PPListPattern any.
rewriter
replace: before / (prefix , body1) / (prefix , body2) / after
with: before / (prefix , (body1 / body2)) / after.
rewriter
replace: before / (body1 , postfix) / (body2 , postfix) / after
with: before / ((body1 / body2) , postfix) / after
关于pharo - PetitParser 不是分布式的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526239/
PetitParser 中的规则是分布式的吗? 有以下规则: integerLiteral --> hexIntegerLiteral / octalIntegerLiteral / decimalI
我想要一个只识别 0 到 32767 之间的数字的解析规则。我尝试了类似的方法: integerConstant ^ (#digit asParser min: 1 max: 5) flatten
我定义了一个规则: def("invokation", char('@').word().plus().flatten()); 对于“@who”,它将匹配并得到 @who结果。 怎么问才回who没有
据我所知,PetitParser 使用同名的生产方法初始化每个实例变量。应该怎么做,例如添加自定义实例变量并在 initialize 方法中对其进行初始化? 最佳答案 您可以覆盖子类中的类端方法#ig
我想使用 PetitParser 解析编程语言中的标识符。 要求之一是标识符的名称不是关键字(例如 null ),因此 null将不是有效的标识符。 对于这种情况,我能想到的最小解析器是: ident
有一个内置whitespace()解析器在 PetitParserDart ,它检查字符: (9 <= value && value <= 13) || (value == 32) || (value
在 http://pharobooks.gforge.inria.fr/PharoByExampleTwo-Eng/latest/ ,定义了一个ExpressionGrammar。然而,它是右关联的
我正在尝试实现 BNF for EPD在 Pharo/PetitParser 中。 digit18 := $1 asParser / $2 asParser / $3 asParser / $4 as
我正在尝试用 PetitParser 制作一个基本的数学解析器,并且我无法使用非对称二元运算符(如减法或除法)获得正确的顺序。 我有这个小例子,它只能解析(非负)整数和 - 二元运算符,并发出一个带有
petitparser是用 dart 编写的解析器生成器用于例如在 Flutter . 根据 this page , petitparser允许使用 ref0 来引用当前的解析类。 在使用语法定义部分
是否有像 plus() 这样具有上限的解析器,可以对 Item <- [a-zA-Z0-9]{1,5} 这样的表达式进行建模? 对于像Item <- [a-zA-Z0-9]{3,5}这样的东西也类似。
在 PetitParser2 中,如何匹配一组封闭的标记,例如月份名称?例如。 (伪代码)[:单词 | MonthNames anySatisfy: [ :mn | mn beginsWith: wo
我有一个编程语言语法,我想在 PPCompositeParser 的几个子类中展开(例如,一个类将处理指令,另一个类将处理表达式,另一个类将处理程序结构)。我想这样做是为了避免获得一个包含数十个实例变
我正在考虑在我的项目中使用 petitparser for Dart ( https://pub.dartlang.org/packages/petitparser )。我想用它来处理存储为字符串的
这是我试图在 PetitParser 中实现的(简化的)EBNF 部分: variable :: component / identifier component :: indexed / field
我想解析 'This,is,an,example,text' 就像在 findTokens 中一样 'This,is,an,example,text' findTokens: $, an Ordere
据我所知,PetitParser是一个解析器,我们可以定义语法和 Action 来解析一些文本。 我已经成功地使用它内置的 JSON 解析器来解析一些 JSON 字符串,但我想做更多。我想编写一个 J
我是一名优秀的程序员,十分优秀!