嗨,我是Jison的新手,正在努力学习它。我在http://techtonik.github.io/jison/try/上尝试使用联机jison解析器计算器代码。它对表达式很好。
5*PI^2. 但是,当我在换行符上添加一个新表达式时,解析器将不接受换行符并尝试解析另一个表达式,就好像它在同一行上一样。
Input :
5*PI^2
23+56Parser认为它是:
5*PI^223+56这失败了,因此我想知道如何在jison中解析换行符。
发布于 2015-05-01 01:25:22
这里的问题是Jison解析器需要一个表达式来解析,并且它试图评估整个文本作为一个整体是否有效。在本例中,您给出的是两个单独的表达式,它们不能正确地一起计算,这就是它失败的原因。例如,如果你评估
5*PI^2
+
23+56那就没问题了。这是因为Jison试图解析给定的整个值,并允许您将复杂表达式拆分成多行。
但是,如果您愿意的话,这并不能阻止您单独评估行。不是将解析函数从字段中传递给整个文本,而是使用JavaScript的字符串拆分方法(在新行字符‘\n’上拆分)将文本拆分到数组中,然后循环遍历并将每一行内容分别传递给解析函数。
https://stackoverflow.com/questions/27400739
复制相似问题