问题标签 [ruby-parser]

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 投票
2 回答
128 浏览

ruby - Ruby中ifs和case语句形式之间的等价性

使用 ruby​​_parser 和 Ruby2Ruby gems,我正在编写代码来跟踪已评估的条件以及它们的结果和参数是什么。为了使这尽可能简单,我有时会稍微重写 AST。当然,只有当我确定结果的功能与原始结果完全相同时,我才能这样做。

我是否正确断言以下三个 Ruby 片段在功能上是等效的,假设三个点被一个有效的 Ruby 表达式替换?我是否忽略了任何边缘情况?

0 投票
1 回答
614 浏览

ruby - 使用 1.9 哈希语法运行 Metrical

我想在我的全新 Rails 项目中使用 Metrical,使用 Ruby 1.9 哈希语法做一些事情

我得到这个错误:

我做了一些调查,发现 ruby​​_parser gem 不支持 1.9 哈希语法(请参阅 github 问题) - 不知道哪个版本指的是我试图将 ruby​​_parser gem 更新到 2.3.1 不起作用因为 metrical 中包含的一些代码质量工具需要 ruby​​_parser 2.0 版本。

有没有办法解决这个问题(除了回滚到旧语法)?我也有点困惑,因为一些代码质量工具似乎已经过时了,检查RubyToolBox证实了这种印象。还是我在这里遗漏了一些基本的东西?

(这是我的 Gemfile.lock 供参考):

0 投票
1 回答
327 浏览

ruby - ruby_parser、AST 在 1.8.7 之前的版本和 ruby​​ 中的 S-expression 的用法?

最近我正在将在 ruby​​ 1.8.7 中使用 ParseTree 的 ror 项目转换为 ruby​​ 1.9.3

发现 ParseTree 不能与 1.9.3 一起使用,在一堆 googlers 中搜索它,仍然坚持一些代码迁移

找到了各种替代方案,如 ruby​​_parser、sourcify、parse_tree_reloaded 等...

所有这些都有其局限性,例如 sourcify 无法进行动态分析解析,即。eval 的用法。

通过所有这些,我想知道 Ruby 社区中 AST/Parsing/SExp 的最佳用法,如果我不选择 AST 路径,ruby 1.9.3 中的替代方案是什么?

一些用例指针将不胜感激。

谢谢。

0 投票
2 回答
309 浏览

ruby - 为什么读取 CSV 文件时会有尾随列?

我有一个 CSV 文件,其结构如下:

使用 Ruby 的标准 CSV 库进行解析:

我不明白为什么解析似乎会导致四列,尽管文件只包含三列。这不是解析文件的正确方法吗?

0 投票
1 回答
250 浏览

java - 在java中解析vagrant文​​件

我需要解析用 Ruby 编写的 Vagrantfile 中定义的配置,并在我的 java 代码中的其他地方使用这些设置。尝试探索 jRubyParser 但没有遇到任何定义它使用的文档。

在本地克隆了 Vagrant 存储库,但浏览代码也无济于事,因为我之前没有使用 Ruby 的经验。Vagrant 将如何读取文件中定义的配置?任何输入?

0 投票
1 回答
364 浏览

ruby - 如何使用 ruby​​_parser 解析多行?

我正在尝试使用ruby ​​_parser来解析文件中的一些多行 Ruby 代码。

假设我要解析以下代码:

当我执行以下操作时,出现错误:

因为该行不包含end.

我正在使用File.readlines(file).

理想情况下,我会将文件名指定为RubyParser,但我似乎无法弄清楚,而且文档很少。

0 投票
2 回答
1290 浏览

ruby - Ruby - 解析 json 文件数组

我有一个 json 文件数组。这是单个 json 文件的示例,

如果管理员存在于“工作”中,我需要获取“名称”值。需要对数组中的其他 json 文件执行相同的操作。

帮助将不胜感激。

0 投票
1 回答
205 浏览

ruby-on-rails - 语法错误,意外 ':',期待 ')' - Rails 2.1.0

运行 rake 任务时出现语法错误:

0 投票
1 回答
241 浏览

ruby - 创建一个 rubocop 警察,在没有块的情况下调用方法时触发

我正在尝试开发一个新警察(基于这些准则)并且正在努力获得正确的节点模式

我希望警察在没有提供阻止的情况下X.some_method被召唤时登记犯罪。 即是一种冒犯,但不是。
X.some_methodX.some_method { blah }

我得到了正确的识别模式X.some_method,即'(send (const nil? :X) :some_method ...'.
但不确定如何为“没有给定块”创建模式?

0 投票
1 回答
94 浏览

rubocop - 为什么这个发送模式不匹配?

我写了一个自定义的 rubocop 警察,摘录是这样的:

我正在尝试以下代码的警察:

有趣的是,node.to_s以下内容与我的模式完全匹配:

但是节点不匹配。如果我将模式更改为以下,它可以工作:

为什么我的原始匹配不起作用?

我的版本:

  • 红宝石 2.6.2
  • AST 2.4.0
  • rubocop 0.77.0
  • 解析器 2.6.4.1