嗨,我是 Jison 的新手,正在尝试学习它。我在 http://techtonik.github.io/jison/try/上尝试在线 jison 解析器计算器代码。它对表达式工作正常
5*PI^2.
但是当我在换行符上添加新表达式时,解析器不会采用换行符并尝试解析另一个表达式,就好像它在同一行上一样。
Input :
5*PI^2
23+56
解析器将其视为:
5*PI^223+56
这失败了,因此我想知道如何解析 jison parsor 中的换行符。
这里的问题是 Jison 解析器需要单个表达式来解析,并且它试图评估整个文本是否作为一个整体有效。 在这种情况下,您提供给它的是两个单独的表达式,它们不能一起正确计算,这就是它失败的原因。 例如,如果您评估
5*PI^2
+
23+56
那么它就没有问题了。 这是因为 Jison 正在尝试解析它给出的整个值,并且它允许您将复杂的表达式分解为多行。
但是,如果您愿意,这并不能阻止您单独评估行。 与其将字段中的整个文本传递给 parse 函数,不如使用 JavaScript 的字符串拆分方法(在换行符 '' 上拆分)将文本拆分为数组,然后循环遍历并将内容的每一行分别传递给解析函数。