问题标签 [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.
python - VBA 的上下文无关语法
我正在尝试为学校作业扫描和解析 VBA(应用程序的 Visual Basic)代码。
我正在使用 Python PLY lex 和 yacc 模块。现在我只是想让变量声明和赋值作为概念证明。我的初步语法理解变量声明或赋值。只要我在其中放置一个换行符 (\n) 并添加另一个语句,它就什么都不懂。即:在 gist 中的代码中,如果您从第 92 行的字符串中删除“a = 3”,它将正常工作,并在标识符列表中插入一个标识符。
我在扫描仪中处理换行符,所以我认为我的语法定义有问题,但无法弄清楚。
语法基本上是这样的:
请注意,IDENTIFIER、ASSIGN、BOOLEAN、DOUBLE、INT DIM、AS 和 TYPE 都是在 lex 模块中定义的标记。
我用以下代码创建了一个要点:https ://gist.github.com/clsk/22c386695dd1ddb7ca75
python - 为什么 PLY 对待正则表达式的方式与 Python/re 不同?
一些背景:
我正在编写一个解析器来使用标记语言从站点检索信息。作为 wikitools 的标准库,......对我不起作用,因为我需要更具体,并且根据我的需要调整它们会在我和问题之间增加一层复杂性。Python +“简单”正则表达式让我难以以透明的方式识别标记语言中不同“令牌”之间的依赖关系 - 所以显然我需要在这个旅程结束时到达 PLY。
现在看来,与 Python 相比,PLY 通过正则表达式识别令牌的方式与 Python 不同——但我在上面找不到任何东西。如果我不了解 PLY 如何确定其词法分析器中的标记,我不想继续前进(否则我将无法控制我所依赖的逻辑并且将在稍后阶段失败)。
开始了:
结果是:
最后一行令人惊讶 -如果它与“搜索”相媲美(如果它与“匹配”相媲美,则没有任何东西),我本以为第一行和最后一行-
会丢失。--- 123456 ---
显然,这很重要,因为--
无法区分(---
或),即无法区分标题、编号等。===
===
那么为什么 PLY 对于标准 Python/regex 的行为不同呢?(以及如何?-在文档中或在stackoverflow中找不到东西)。
我想这更多的是我对 PLY 的理解,因为该工具已经存在了很长一段时间,即我猜这种行为是有意的。我能找到的唯一相关信息涉及不同的群体,但没有解释识别正则表达式本身的不同行为。我在 ply-hack 中也一无所获。
我是否忽略了一些愚蠢的简单事情?
出于比较目的,标准 Python / 正则表达式:
给出:
(不出所料,第一个是“搜索”的结果,第二个是“匹配”的结果)
我的设置:我正在使用 spyder - 这是开始时的终端显示:
感谢您的时间和帮助。
ply - PLY 文件中一个面的 5 个值?
我刚刚被介绍给 .ply 文件,我不明白它们是如何工作的。顶点列表中每个顶点只有 3 个值:x,y,z。但是每张脸都有 5 个值,我不知道这 5 个值是什么意思。我只需要一点解释。谢谢!
python - Ply Custom Syntax Errors
I'm creating a parser using PLY in Python. Everything's going well so far but the problem is, I don't know how to use a custom p_error for each statement. I currently have a p_error: statement at the bottom of the parser file that prints "Syntax error" for every kind of error in the program. But how could I make it say Syntax error when it's a syntax error and some other kind of error when it's not a syntax error?
python - 如何使用 PLY 处理一个令牌的多个规则
我正在使用 jison 文件并使用 python PLY 的 lex 模块将其转换为解析器生成器。
我注意到在这个 jison 文件中,某些令牌有多个与之关联的规则。例如,对于 token CONTENT
,文件指定了以下三个规则:
COMMENT
在另一种情况下,令牌有多个规则:
当它们适用于不同的州时,区分规则似乎很容易,但是当它们适用于同一个州时呢?
如何使用 ply.lex 将此 jison 转换为 python 规则?
编辑
如果有帮助,这个 jison 文件是 handlebars.js 源代码的一部分。见:https ://github.com/wycats/handlebars.js/blob/master/src/handlebars.l
python - Python 中具有语义动作的基于特征的语法?
我想解释一种受控语言,即解析它并采取行动。对于解析语言,我非常欣赏NLTK 基于特征的语法的简单性和强大功能。但我不知道如何将语义动作附加到基于 NLTK 特征的语法的产生中。
另一方面,我使用PLY (Python Lex Yacc) 来解释一种(相对简单的)受控语言,它允许我使用 Lex 和 Yacc 提供的状态、语义动作以及所有花里胡哨(自从80 年代)。但是这些语法不是基于特征的。
有什么方法可以将这两个世界结合起来吗?将动作附加到 NLTK 语法,或将功能附加到 PLY 语法?
python - 词法分析
我正在用 Python 学习词法分析器。我正在使用 Ply 库对某些字符串进行词法分析。我已经为一些 C++ 语言语法实现了以下词法分析器。
但是,我面临着一种奇怪的行为。当我在其他函数定义的末尾定义COMMENT时,代码可以正常工作。 states function definitions
如果我在其他定义之前定义COMMENT state functions
,则只要//
输入字符串中的 sectoin 开始,就会出现错误。
这背后的原因是什么?
问候
parsing - ply 的语法,评论部分重要吗?
我正在开发一个名为 的编译器medly
,我正在使用 ply,这是一个类似于 的工具lex & yacc
,但我在语法上遇到了一些问题。
这是词法分析器:
这是解析器:
我的问题是:
关于解析器定义的评论部分是否重要?
regex - Regular expressions in yacc's code with PLY
I am writing regular expressions with PLY but it seems it doesn't behave like yacc.
I've written this:
to express the fact that a TYPE can only take those values: Discrete, or Continuous.
I have the followed errors:
Could somebody tell me what's wrong with my code? Must I definethose king of expressions as tokens?
Thanks to you