问题标签 [treetop]

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.

0 投票
1 回答
258 浏览

ruby - Treetop ruby​​ 解析器 - 无法解析有序选择

我已经定义了使用 Treetop 解析字符串和数字的简单语法,如下所示。

红宝石:

我希望解析器返回字符串节点,但看起来解析器无法理解输入。任何想法将不胜感激。

0 投票
1 回答
401 浏览

ruby-on-rails - 在任何来源中都找不到 treetop-1.4.9 - cap deploy:migrate

尝试从 capistrano (cap deploy:migrate) 运行迁移时遇到问题。

事实;

  • 导轨 3.0.0
  • Ruby 1.9.2 通过 rvm

树顶 gem 已安装,如果我 ssh 进入远程服务器并运行 capistrano 手动尝试的命令,它可以正常工作。

还有其他人遇到这个或类似的问题吗?

0 投票
3 回答
1095 浏览

ruby-on-rails - “没有要加载的文件——treetop/runtime”运行“rake jobs:work”

当我尝试运行“rails server”或“rake jobs:work”时,我收到错误消息:“没有要加载的文件——treetop/runtime”

完整的跟踪:

macbook-pro-2:domain ryan$ rake jobs:work --trace(in /Applications/htdocs/domain) rake 中止!没有要加载的文件——treetop/runtime /opt/local/lib/ruby/gems/1.8/gems/mail-2.2.14/lib/mail.rb:68:in require' /opt/local/lib/ruby/gems/1.8/gems/mail-2.2.14/lib/mail.rb:68 /opt/local/lib/ruby/gems/1.8/gems/mail-2.2.14/lib/mail.rb:61:ineach' /opt/local/lib/ruby /gems/1.8/gems/mail-2.2.14/lib/mail.rb:61 /opt/local/lib/ruby/gems/1.8/gems/delayed_job-2.1.2/lib/delayed/performable_mailer.rb:1 :在require' /opt/local/lib/ruby/gems/1.8/gems/delayed_job-2.1.2/lib/delayed/performable_mailer.rb:1 /opt/local/lib/ruby/gems/1.8/gems/delayed_job-2.1.2/lib/delayed_job.rb:5:in需要'/opt/local/lib/ruby/gems/1.8/gems/delayed_job-2.1.2/lib/delayed_job.rb:5 /opt/local/lib/ruby/gems/1.8/gems/bundler-1.0 .7/lib/bundler/runtime.rb:64:inrequire' /opt/local/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in要求'/opt/local/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:ineach' /opt/local/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in要求' /opt/local/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:ineach' /opt/local/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in要求' /opt/local/lib/ruby/gems/1.8/gems/bundler -1.0.7/lib/bundler.rb:112:inrequire' /ApApplications/htdocs/domain/config/application.rb:7 /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:ingem_original_require' /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in require' /Applications/htdocs/domain/Rakefile:4 /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2383:inload' /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake .rb:2383:in raw_load_rakefile' /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2017:inload_rakefile' /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling' /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2016:inload_rakefile' /opt/local/lib/ruby/gems /1.8/gems/rake-0.8.7/lib/rake.rb:2000:in run' /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:instandard_exception_handling' /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998 :in run' /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31 /opt/local/bin/rake:19:inload' /opt/local/bin/rake:19

在我的 Gemfile 中,我有:“gem 'delayed_job'”

0 投票
2 回答
551 浏览

ruby - 树顶语法无限循环

我对一种新的编程语言有一些想法在我脑海中浮现,所以我想我会尝试实现它。一位朋友建议我尝试使用 Treetop(Ruby gem)来创建解析器。Treetop 的文档很少,我以前从未做过这种事情。

我的解析器表现得好像它有一个无限循环,但没有堆栈跟踪;事实证明很难追踪。有人可以向我指出入门级解析/AST 指南的方向吗?我真的需要一些列出规则、常见用法等的东西来使用 Treetop 之类的工具。我的解析器语法在GitHub 上,以防有人希望帮助我改进它。

0 投票
1 回答
617 浏览

ruby - 如何处理 Treetop 左递归

我有一个我正在尝试构建的新通用编程语言的语法文件。我试图使该语言健壮且易于使用(它深受 Ruby 等的启发),并且在此过程中我引入了一些左递归规则。

我见过一些似乎表明以下左递归规则的示例:

可以通过将其更改为非左递归:

对我来说,这看起来会有不同的问题并且仍然会失败。我是对的,还是这“行得通”?

我试图(查找和)消除的特定左递归可在此语法文件中找到。我不确定哪些规则会受到影响,但至少有一些规则被指出具有左递归。(顺便说一句,我试图通过收紧范围规则来消除他提到的特定范围问题。)

0 投票
1 回答
293 浏览

abstract-syntax-tree - 树顶语法中的空格

在指定是否允许空格时,我需要多明确?例如这些规则:

足以匹配

基本上我是否需要指定可能出现的可选空格?

0 投票
1 回答
266 浏览

ruby - 访问关联方法与 Treetop 中的节点

使用如下定义的语法,为什么我在尝试访问val由规则创建的节点的方法时总是出错key

错误信息是

语法是

测试代码是

0 投票
1 回答
417 浏览

ruby - 使用 treetop 与 stanford nlp 解析数据和 POS

我正在尝试在 Ruby 中解析事件(音乐会、电影等)数据,但无法决定使用什么工具。

我认为 stanford 解析器最初是要走的路,但后来听说了 treetop。

我在这两个方面都在苦苦挣扎,因为让 stanford 解析器在 Windows 上与 Ruby 一起工作已经花费了两天多的搜索和挣扎,并且在安装它时没有结束错误。

Treetop 安装没问题,但是文档非常有限,而且据我所知,treetop 似乎比实际内容更擅长处理语法结构,但也许我只是不完全了解 Treetop 的功能。

一件好事(我认为)是我拥有一个包含乐队和电影名称的大型数据库/语料库(?),以及我想要检索的相当有限的数据部分。

例如,一个清单是

另一个清单是

对于每个列表,我都试图获取一组相当具体的细节,例如谁/什么、日期、时间、城市、地点。

鉴于我已经有一个乐队名称数据集,并且城市名称应该很容易获得列表,所以应该“相当”容易挑选出其他细节,我只是不确定我应该使用哪个工具时间,或者是否有更好的方法来做到这一点?

有什么建议么?

0 投票
1 回答
301 浏览

ruby - 递归树梢不起作用

我正在尝试使用有点递归的 Treetop 创建一个解析器。表达式可以是数字,但也可以是表达式的加法,所以我写了这个:

那是行不通的。每当我试图解析任何东西时,我都会得到一个异常“SystemStackError:堆栈级别太深”(堆栈溢出!耶!)。任何想法为什么?用 Treetop 指定这种递归定义的正确方法是什么?

0 投票
2 回答
141 浏览

ruby - 我相信这应该是 Treetop 的一条规则

我在 Treetop 中有一对有效的规则,我的完美主义者认为应该是一个且只有一个规则,或者至少是更漂亮的规则:

我正在解析一些不时以“\x0D\x0A”结尾的表达式。是的,不是“\r\n”而是“\x0D\x0A”。在某些时候,有些东西被双重逃脱了。很长的故事。

这条规则有效,但它很丑陋,而且让我很困扰。我试过这个:

这导致

理想情况下,我想实际写一些类似的东西:

但这不起作用,当我们这样做时,我还发现每个规则不能只有一个 *:

这将匹配“”,但从不匹配\n。