问题标签 [lemon]
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.
parser-generator - 用一个小小的 Lemon 语法解决解析冲突
我正在尝试学习Lemon 解析器生成器的基础知识,但我很快就卡住了。
这是一个小语法:
它导致1个解析冲突:
然而,如果我将最后一条规则重写如下:
然后它不会引起冲突。但我认为这不是正确的方法。
如果有人能解释什么是正确的方法以及为什么,我将不胜感激。
c - Lemon 接受 lempar.c 并在文件末尾输出垃圾
我正在使用LEMON Parser Generator,由于某种原因,它在输出文件的末尾输出了一堆垃圾,而不是用%%
生成的代码替换 lempar.c 中的 s。我直接从 sqlite 源复制了 lemon.c 和 lempar.c。这是我的语法文件:
这是它只是附加到lempar文件副本末尾的垃圾
parsing - Lemon Parser:这条规则不能减少
我正在尝试编写一个语法来解析模板语言,比如jinja2(或您选择的树枝),但我无法成功解析switch-case
语句。
让我展示所需的语法:
这里 endcase 只是作为中断。
我的语法文件的工作部分:
这只是我语法的一部分,我已经为for
, if
, while
, do
,loop
等工作过语法。
但我不知道:
{% case expr %} statement_list(T)
没有{% endcase %}
{% default %} statement_list(T)
例如我尝试使用:
对于#1但没有运气,得到
这条规则不能减少。
#2 也一样
坦率地说,我理解问题的根源 - 缺少大小写/默认绑定,但实际上我不知道如何解决这个问题。
任何帮助将不胜感激!
bison - 如何禁止令牌之间的空格?
在 bash 中,分配中不能有空格=
。
bashyylex()
只是将整个事物x=10
作为ASSIGNMENT_WORD
令牌返回。然后进行处理。
http://git.savannah.gnu.org/cgit/bash.git/tree/parse.y#n723
但是它是否更好地处理解析器而不是词法分析器的分配(作为我看到的关于在解析器中处理它的分配的大多数示例)?
如何设计语法以禁用周围的空格=
?谢谢。
parsing - 柠檬解析器 REPL
我正在尝试基于LanguageKit构建一个 Smalltalk REPL ,它使用柠檬语法。目前解析器只支持解析完整的类定义,不支持解析方法语法之外的语句。
例如,这被解析:
但是,如果我尝试仅解析语句,它将失败:
以下不接受多个语句(例如Transcript show: 'hello'. Transcript show: 'world'.
):
这里是最小的语法:
完整的语法可以在这里找到:smalltalk.y。我一直在阅读其他语法并搜索stackoverflow,但没有看到例如这个语法的区别,也不明白为什么这不起作用。
xcode - 柠檬解析器作为 Xcode 构建规则
在集成为“使用脚本的 Yacc 源文件”的 Xcode 中使用柠檬解析器时,柠檬生成的警告不会显示在 Xcode 警告部分。
r - 带有 grid_arrange_shared_legend 的列表中的多面板 ggplot
我试图通过允许用户选择要绘制的面板数量来使ggplot
具有共享图例的多面板更加灵活。ShinyApp
目前,我的代码一次写出面板对象 1 。
我不完全理解为什么我找不到一种方法来告诉grid_arrange_shared_legend
他们接受一个地块列表(列表对象),而不是一个接一个地写出来。它抛出这个错误:
UseMethod(“ggplot_build”)中的错误:没有适用于“ggplot_build”的方法应用于“NULL”类的对象
使用列表,列表中有多少个地块并不重要,我会根据列表的长度计算 ncol 或 nrow ......
parsing - 如何从柠檬中获取生成的 AST?
如何从柠檬中获取 AST(抽象语法树)的根节点?我尝试使用%extra_argument { Node *rootNode }
和使用以下代码来返回根节点对象。
但是根节点主解析函数中的根节点保持为空。
这是主要的解析功能。
任何人都可以帮忙吗?提前致谢。
c++ - 如何修复柠檬中的“错误:调用'YYMINORTYPE'的隐式删除的默认构造函数”?
当我编译我的柠檬语法时。我收到以下错误。
任何人都可以帮忙吗?提前致谢。