- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我被 xtext 语法定义困住了。基本上我喜欢为一个组件定义多个参数。该组件应至少包含一个参数定义 paramA
OR paramB
OR paramC
OR (paramA
AND paramB
) OR (paramB
AND paramC
) OR (paramA
AND paramB
AND paramC
)。
总共有 6 种情况,正如您在我的语法定义中看到的:
Component:
'Define available parameters:' (
(newParamA = ParamA | newParamB = ParamB | newParamC = ParamC)
| (newParamA = ParamA & newParamB = ParamB)
| (newParamA = ParamA & newParamC = ParamC)
| (newParamB = ParamB & newParamC = ParamC)
| (newParamA = ParamA & newParamB = ParamB & newParamC = ParamC)
)
;
ParamA: ('paramA = ' paramA=Integer ';');
ParamB: ('paramB = ' paramB=Integer ';');
ParamC: ('paramC = ' paramC=Integer ';');
// Datatype
Integer returns ecore::EIntegerObject: '-'? INT;
当我减少语法以仅使用 (newParamA = ParamA | newParamB = ParamB | newParamC = ParamC)
时,这是有效的,意味着没有其他情况第一个代码片段:
Define available parameters:
paramA = 1;
...
Define available parameters:
paramB = 2;
...
Define available parameters:
paramC = 3;
但我希望能够在我的 dsl 中定义多个可用参数,例如
Define available parameters:
paramA = 1; paramB = 2;
...
Define available parameters:
paramB = 2; paramC = 3;
...
Define available parameters:
paramA = 1; paramB = 2; paramC = 3;
知道如何解决这个问题吗?希望您能帮助我,我将不胜感激!
这是我从代码片段 #1 生成语法时遇到的错误:
warning(200): ../my.packagename/src-gen/my/packagename/projectname/parser/antlr/internal/InternalMyDSL.g:722:1: Decision can match input such as "'paramC = ' '-' RULE_INT ';'" using multiple alternatives: 1, 3, 4, 5
As a result, alternative(s) 3,5,4 were disabled for that input
Semantic predicates were present but were hidden by actions.
...
4514 [main] ERROR enerator.CompositeGeneratorFragment - java.io.FileNotFoundException: ..\my.packagename.ui\src-gen\my\packagename\projectname\ui\contentassist\antlr\internal\InternalMyDSLParser.java (The system cannot find the file specified)
org.eclipse.emf.common.util.WrappedException: java.io.FileNotFoundException: ..\my.packagename.ui\src-gen\my\packagename\projectname\ui\contentassist\antlr\internal\InternalMyDSLParser.java (The system cannot find the file specified)
at org.eclipse.xtext.util.Files.readFileIntoString(Files.java:129)
at org.eclipse.xtext.generator.parser.antlr.AbstractAntlrGeneratorFragment.simplifyUnorderedGroupPredicates(AbstractAntlrGeneratorFragment.java:130)
at org.eclipse.xtext.generator.parser.antlr.AbstractAntlrGeneratorFragment.simplifyUnorderedGroupPredicatesIfRequired(AbstractAntlrGeneratorFragment.java:118)
at org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment.generate(XtextAntlrUiGeneratorFragment.java:86)
这是我尝试过的解决方法(有效),但这不是解决方案,因为语言中的关键字正在更改以避免解析器错误:
('newParamA1 = ' paramA1=Integer ';')
| ('newParamB1 = ' paramB1=Integer ';')
| ('newParamC1 = ' paramC1=Integer ';')
| (('newParamA2 = ' paramA2=Integer ';') & ('newParamB2 = ' paramB2=Integer ';'))
| (('newParamA3 = ' paramA3=Integer ';') & ('newParamC2 = ' paramC2=Integer ';'))
| (('newParamB3 = ' paramB3=Integer ';') & ('newParamC3 = ' paramC3=Integer ';'))
| (('newParamA4 = ' paramA4=Integer ';') & ('newParamB4 = ' paramB4=Integer ';') & ('newParamC4 = ' paramC4=Integer ';'))
最佳答案
我认为您真正想要的是一种验证,以确保在语义级别而不是在语法级别上给出至少一个参数。这将大大简化你的语法,例如你可以使用
(newParamA = ParamA)? & (newParamB = ParamB)? & (newParamC = ParamC)?
(括号。为清楚起见添加)
另请注意,避免关键字中出现空格通常是个好主意。您应该更喜欢 'paramA' '='
而不是 'paramA ='
。这将极大地改善词法分析器/解析器中的错误处理。
关于parsing - Xtext语法错误 "Decision can match input ... using multiple alternatives: 1, 3, 4, 5",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20831419/
我在 Mosaic Decisions 中使用数据流,并且使用 MySQL 编写器节点。我要写的结果集有一个字段 inserted-time .但我想跳过此列中的值,并希望使用为 DB 表中该列设置的
我正在使用镶嵌决策数据流功能从 Azure blob 读取文件,进行一些转换并将该数据写回 Azure。它工作正常,除了在我给出的输出文件路径中,它创建了一个文件夹,我可以看到许多文件的名称中带有一些
我正在使用 scikit“决策树”分类器 来预测迁移项目的“工作量”。我的另一部分要求是找到影响预测的特征。 我训练了模型,并得到了一个层次结构树,其中所有特征都位于不同的节点。 我以为在我提供测试记
mosaic decision提供了哪些不同类型的参数?input、calculated、sql和global variables有什么区别? 最佳答案 Mosaic有两类参数: 1。系统参数 - 这
嗨,我正在参加 Coursera 的类(class)并遇到了这个问题。我的答案是 1-(4048+3456)/8124=0.076。然而,答案是 0.067。有人可以帮我解决这个问题吗?谢谢!! 最佳
我在分析中使用了分类决策树。首先,我将整个数据分为训练和测试——60%:40%。然后我在我的训练集上使用 GridSearch 来获得得分最高的模型 (max_depth=7)。然后我绘制了交叉验证集
我在分析中使用了分类决策树。首先,我将整个数据分为训练和测试——60%:40%。然后我在我的训练集上使用 GridSearch 来获得得分最高的模型 (max_depth=7)。然后我绘制了交叉验证集
当我使用 XGBoost 拟合模型时,它通常会显示一系列消息,例如“updater_prune.cc:74: tree pruning end, 1 个 root, 6 extra nodes, 0
我需要 boost 决策树桩弱分类器。因此,对于每次迭代,我都必须根据某些权重来训练弱分类器。然后我将在每次迭代后更新权重。到目前为止我已经明白了。但对我来说不清楚的部分是“基于权重训练决策树桩弱分类
我正试图找到一个干净的解决方案来在 python 中实现一个基本的决策矩阵。我有 8 个传感器监测一个装置,根据这 8 个传感器的状态,我需要激活一些继电器。 我的决策矩阵看起来像(S 是传感器,R
我有这个简单的语法: expr: factor; factor: atom (('*' ^ | '/'^) atom)*; atom: INT | ':' expr; INT: ('0'..'
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。 在 Google Code Jam 2009 中,Round 1B ,有一个叫做决策树的问题,它
我正在尝试编写一个测验应用程序。下面是源代码。目前它的工作原理如下: 点击开始测验后,第一个问题就会出现。 用户选择了正确的选项,然后说出问题 3。 如果用户选择了错误的选项,则会转到另一个问题,例如
我正在尝试自动确定 ASCII 字符是否为空格的决策过程。这是我目前拥有的。 Require Import Ascii String. Scheme Equality for ascii. Defin
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
下午好! 我有决策树的问题。 f11<-as.factor(Z24train$f1) fit_f1 <- rpart(f11~TSU+TSL+TW+TP,data = Z24train,method=
我们正在构建一个调用 SAP Crystal Decisions 库的 Web API,以生成 PDF 报告。它在我们的 Windows 10 开发人员 PC 上运行时可以正常工作,但是当我们将其部署
我正在尝试使用两个电子表格进行“更改数据捕获”。我对生成的数据框进行了分组,但遇到了一个奇怪的问题。要求: 案例 1)一个组的大小 == 2,做某些任务 情况 2)一个组的大小 == 1 ,做某些任务
我有以下代码: x1 = np.random.randn(100) y1 = np.random.randn(100) + 3 x2 = np.random.randn(100) + 3 y2 = n
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 3 年前。 Improve
我是一名优秀的程序员,十分优秀!