问题标签 [jison]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
118 浏览

javascript - 空块和空对象语法冲突警告

我正在尝试在Jison中实现解析器。解析器支持 JSON objects:{ a: 1 }和 blocks: if (true) { statement(); }

我的语法看起来像:

两者都有一个{}规则,block因为objectExpression我需要同时支持空对象和空块。

它可以工作,但会输出很多警告,例如:

如何修复或抑制这些警告?

0 投票
2 回答
1020 浏览

javascript - 向野牛/吉森计算器语言添加功能

我正在尝试使用一些简单的功能来扩展Jison 计算器示例。我对解析和野牛/吉森相当陌生,但这是我到目前为止所拥有的一点:

问题是函数只得到一个参数传递给它们。例如:

事实上,如果你console.log的论点pow,它似乎b甚至没有定义。为什么它在将整个表达式列表发送到函数之前不解析整个表达式列表?

0 投票
0 回答
480 浏览

javascript - Jison:获取解析的令牌而不是语法中定义的令牌

我正在尝试生成与配方成分相关的解析器。我注意到解析器处理标记的顺序似乎遵循 jison 文件中标记的行项顺序,而不是 EBNF 语法中定义的内容。

例如,解析6 tablespoons unsalted butter, cut into 1-inch pieces产生:

我希望语法在它吃掉之前看到UNIT_NAME哪个是. 这里正确的语法方法是什么?我一直在使用交互式 Jison 解析器来验证语法状态,到目前为止还没有看到任何问题。tablespoonsWORD

吉森·格拉默

要旨

我创建了一个带有一些文本字符串和一个简单的解析器来测试: https ://gist.github.com/aphexddb/ddc83d57c7f1c1b96458

0 投票
1 回答
87 浏览

javascript - 解析命令的 JISON 问题

嗨,我是新手JISON并停留在以下代码中:
用于解析命令:

我的代码如下:

如果命令如下:

但如果命令为:

错误:期待 TEXT 并得到 PROJECTCOMMAND。
如果命令中的项目名称是 project1、project2、myproject 等,也会发生同样的情况。有什么办法可以解决这个问题吗?
提前致谢

0 投票
1 回答
173 浏览

javascript - JISON 解析器中的验证

所以我生成了一个解析器,使用JISON

有什么方法可以对命令进行验证,即如果命令不满足上述任何规则,则抛出错误,即具有默认选项。
在解析器结束时是这样的:

提前致谢

0 投票
2 回答
737 浏览

javascript - JISON 中的错误处理

我使用以下方法生成了一个解析器JISON

以上工作正常如果我给出如下命令:

但是如果我输入这样的命令会给出错误:

它抛出一个错误。
同样的方式如果我给出一个命令

错误:

解决此问题的一种方法是编写所有可能的错误情况,但这将永远不会结束,因为随着命令的增加,可能的错误情况也会增加,无论如何我可以告诉解析器如果它不满足上述任何命令然后抛出一个常见的错误?

提前致谢

0 投票
0 回答
67 浏览

javascript - Jison:获取令牌名称

如何访问令牌名称"NUMBER"

我找不到任何有用的东西console.log(yy)

0 投票
1 回答
317 浏览

parsing - 在 Jison 中解析换行符

嗨,我是 Jison 的新手,正在努力学习它。我在http://techtonik.github.io/jison/try/上尝试了在线 jison 解析器计算器代码。它适用于表达

但是当我在换行符上添加一个新表达式时,解析器不会采用换行符并尝试解析另一个表达式,就好像它在同一行上一样。

解析器将其视为:

这失败了,因此我想知道如何在 jison 解析器中解析换行符。

0 投票
1 回答
395 浏览

bison - Jison 运算符优先级

我正在使用 Jison 开发一种语言,我遇到的一个问题是运算符优先级。我希望比较运算符成为第一个要评估的运算符,例如,1 + 2 < 3 - 3 * 4将变为(1+2) < (3 - (3 * 4))

我现在的规则:

任何帮助将不胜感激

0 投票
1 回答
88 浏览

javascript - 要求 Jison 忽略一些不必要的细节

我正在使用Jison编写一个解析器,它允许我解析相当复杂的表达式语言。在这种语言中,它支持如下语法:

这里的 eval_expression 非常复杂(具有嵌套 eval、逻辑表达式等功能),我不关心 eval_expression 的内容,也不想花太多精力去解析它。我只想获取上述语法中的stats_function name等其他信息。

我的问题是,在 Jison 中是否有任何方法可以让我进行一些通配符匹配以轻松匹配整个 eval_expression,而无需为 eval_expression 编写完整的词法分析器/语法规范?

注意:使用正则表达式而不是 Jison 来完成这项工作的解决方案对我不起作用,因为我也需要用other_stats_aggregation我编写整个语法/解析器的语言来解析上面的部分。

任何帮助表示赞赏。