问题标签 [ply]
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.
random - 使用 PLY 生成的随机语法查询
我已经使用 PLY 创建了一个语法,我想生成一些遵循这个语法的随机查询。有没有办法做到这一点?仅针对上下文无关语法,我在这件事上找不到任何东西。
提前致谢。
python - Python Lex-Yacc(PLY):无法识别行开头或字符串开头
我对PLY很陌生,而且比 Python 的初学者还要多。我正在尝试使用PLY-3.4和 python 2.7 来学习它。请看下面的代码。我正在尝试创建一个令牌 QTAG,它是一个由零个更多空格组成的字符串,后跟“Q”或“q”,然后是“。” 和一个正整数和一个或多个空格。例如 VALID QTAG 是
无效的是
这是我的代码:
我得到的输出如下:
请注意,只有第一个和第三个有效输入被正确标记。我无法弄清楚为什么我的其他有效输入没有被正确标记。在 t_QTAG 的文档字符串中:
- 替换
'^'
为'\A'
无效。 - 我尝试删除
'^'
. 然后所有有效输入都被标记化,但是第二个无效输入也被标记化。
提前感谢任何帮助!
谢谢
PS:我加入了 google-group ply-hack 并尝试在那里发帖,但我无法直接在论坛或通过电子邮件发帖。我不确定该组是否已处于活动状态。Beazley 教授也没有回应。有任何想法吗?
python - PLY 安装不正确
我正在尝试python setup.py install
按照教程中使用 git bash 的方式安装 PLY,但结果不一样。
python setup.py install
输出:
我什至不能使用 PLY,如https://github.com/dabeaz/ply所示
我得到错误command not found
。
python - “语法错误:无法构建词法分析器”?
这是我的代码:
当我运行它时,我得到一个错误:
我认为问题出在这里:
但我无法修复它。
有没有人有任何建议我该如何解决?
谢谢您的帮助!
python - PLY lex yacc:错误处理
我正在使用 PLY 解析文件。当我在线路上出现错误时,我必须向用户打印一条消息。
类似的消息Error at the line 4
。
但它不起作用。我有错误
还有另一种更合适的方法吗?
python - ply.lex 是否解析一次相同的令牌?
我正在阅读一个词法解析文档,以便我可以解析一些参数,并且我完全按照文档创建了一个解析器。这是整个代码:
我只是创建了一个示例参数列表,我得到了这个输出:
第一个和第二个示例参数被正确解析,但第三个不是。第三个示例参数是 EXPRESSION+LESS+NUMBER,而它必须是 EXPRESSION+MORE+NUMBER+AND+EXPRESSION+LESS+NUMBER。所以我认为可能存在这些问题之一:
ply.lex 只解析一个标记:在上面的代码中,ply.lex 无法解析两个单独的表达式,它返回最新的标记作为其类型。"[kare]>400&&[kare]" 是 EXPRESSION,因为它以第二个 [kare] 的最新 EXPRESSION 令牌结尾,而 800 是 NUMBER,因为它是最新的 NUMBER 令牌。
!!!或者 !!!
t_EXPRESSION 变量中有一个错误:我将此变量定义为“[.*]”以获取这两个括号 ([]) 中的所有字符。第三个示例参数的第一个标记是“[kare]>400&&[kare]”,因为它只是以这些括号开始和结束,并且在其中包含 .*(每个字符),但我认为解释器会在第一个 ( ]) 字符由于是第一个。
所以我找不到解决方法,但在这里问。
总的来说,这就是我正在努力解决的问题
我明白了
但我期待的东西更像
python - How to tokenize a string in C++ (like ply.lex in Python)?
How do I easily tokenize a document or string using C++?
I'm familiar with ply.lex
module in Python but I couldn't find anything for C++. Is there a C++ library which can make use of lex
and yacc
? Or is there another better library or way of doing this easily?
python - ply 中的特殊情况词法分析器规则
有没有办法对 ply lexer 规则进行特殊处理?
我想将运算符定义为列出的字符的任意组合,但有自己的特殊情况。例如:=
=>
ply - PLY 中的令牌匹配顺序
我有一个用 PLY 编写的解析器,它具有以下标记定义
我正在尝试解析以下字符串
这是我的语法
我在令牌处收到语法错误created_on
,可能是因为它被匹配为 aCOMMAND
而不是STRING
有没有办法让 PLY 进行尽可能大的匹配?
python - 当我们在 ply.lex 中混合函数和字符串类型标记定义时,优先顺序是什么?
如果我使用上述令牌规范,ply.lex
那么哪个令牌将获得更高的偏好?我知道在函数的情况下,首先定义的函数具有更高的优先级,而在字符串的情况下,较长的正则表达式具有更高的优先级。
当我有多种代both string and function type
币规格时怎么办?元组中的顺序tokens = ()
会影响偏好顺序吗?