解析Jison中的换行符

时间:2014-12-10 12:13:54

标签: parsing jison

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

5*PI^2. 

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

Input :
        5*PI^2
        23+56

Parser将其视为:

5*PI^223+56

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

1 个答案:

答案 0 :(得分:3)

这里的问题是Jison解析器需要解析单个表达式,并尝试评估整个文本是否有效。在这种情况下你给它的是两个单独的表达式,它们没有正确地一起评估,这就是它失败的原因。例如,如果您评估

5*PI^2
+
23+56

然后它没有问题。这是因为Jison正试图解析它给出的整个值,它允许你在多行上分解复杂的表达式。

但是,如果您愿意,这并不会阻止您单独评估行。不是从字段中传递整个文本的解析函数,而是使用JavaScript的字符串拆分方法(在新行字符上拆分'\ n')将文本拆分为数组,然后循环并传递内容的每一行单独解析。