pegjs相关内容
我正在开发Qt的qmake项目文件解析器(开源项目)。 我在描述qmake的条件语句变体时遇到了麻烦,在文档中称为“作用域”。 EBNF(简化): ScopeStatement -> Condition ScopeBody Condition -> Identifier | TestFunctionCall | NotExpr | OrExpr | AndExpr NotExpr -
..
作为解析器的一部分,我想添加算术和布尔表达式.我想在 https://pegjs.org/online 上采用默认的 PEG.js 示例,但问题是那个解析器是递归的,你不能写两行或更多行: 例如这是有效的 JavaScript: 2 * (3 + 4)2 * (3 + 4)2 * (3 + 4)+ 10 如您所见,有 3 个表达式,行尾不会终止它们.但是对于 PEG.js,它们需要显式编
..
在PEG.js中,我有以下规则 label = l:[a-zA-Z\$\#\% ]* { return word(l); } block = "[" l:label "]" { return l; } option = "\n"* key:block value:label "\n"? {return {key : value}; } 如果解析[hello] world,则结果
..
根据regular-expressions.info的环顾四周,引擎在进行前瞻后退了一步: 让我们再看一次内部,以确保您了解 前瞻的含义.让我们应用q(?= u)i退出.这 提前查找现在是正数,其后是另一个标记.同样,q 匹配q和u匹配u.同样,前瞻的匹配必须是 丢弃,因此引擎从字符串中的i返回到u.这 前瞻成功,因此引擎继续执行i.但是我不能 匹配你因此,此匹配尝试失败.其余所有尝试均失败
..
我刚开始玩PEG.js,语法有问题(调试时大大简化了): start = presingle single / preplural plural presingle = "a" / "b" preplural = "b" / "c" single = "d" / "e" plural = "dd" / "ee" 我正在使用 https://
..
我正在尝试匹配 f(some_thing) == 'something else' f(some_thing)是一个函数调用,它是一个表达式 == 是布尔运算符 “其他" 是一个字符串,它也是一个表达式 因此布尔表达式应为 expression operator expression 问题是我不知道如何在没有左递归的情况下做到这一点 这些是我的规则 expres
..
我正在尝试扩展 PEG.js 的示例语法,用于解析所有4个数学表达式我的在线BASIC口译实验的操作员: http://www.dantonag.it/basicjs/basicjs.html 但并非所有表达式都被正确解析。 这是我的PEG语法: expression = additive additive = left:multiplicative atag :
..