Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
Brakeman
提交
607fb0b5
B
Brakeman
项目概览
李少辉-开发者
/
Brakeman
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
Brakeman
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
607fb0b5
编写于
9月 30, 2011
作者:
J
Justin Collins
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Don't modify Sexps directly in BaseProcessor
make copies instead
上级
ff3b06b9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
0 deletion
+14
-0
lib/processors/base_processor.rb
lib/processors/base_processor.rb
+14
-0
未找到文件。
lib/processors/base_processor.rb
浏览文件 @
607fb0b5
...
...
@@ -26,6 +26,7 @@ class BaseProcessor < SexpProcessor
#Process a new scope. Removes expressions that are set to nil.
def
process_scope
exp
exp
=
exp
.
dup
exp
.
shift
exp
.
map!
do
|
e
|
res
=
process
e
...
...
@@ -40,6 +41,7 @@ class BaseProcessor < SexpProcessor
#Default processing.
def
process_default
exp
exp
=
exp
.
dup
type
=
exp
.
shift
exp
.
each_with_index
do
|
e
,
i
|
if
sexp?
e
and
not
e
.
empty?
...
...
@@ -54,6 +56,7 @@ class BaseProcessor < SexpProcessor
#Process an if statement.
def
process_if
exp
exp
=
exp
.
dup
exp
[
1
]
=
process
exp
[
1
]
exp
[
2
]
=
process
exp
[
2
]
if
exp
[
2
]
exp
[
3
]
=
process
exp
[
3
]
if
exp
[
3
]
...
...
@@ -64,6 +67,7 @@ class BaseProcessor < SexpProcessor
#
#s(:iter, CALL, {:lasgn|:masgn}, BLOCK)
def
process_iter
exp
exp
=
exp
.
dup
call
=
process
exp
[
1
]
#deal with assignments somehow
if
exp
[
3
]
...
...
@@ -80,6 +84,7 @@ class BaseProcessor < SexpProcessor
#String with interpolation. Changes Sexp node type to :string_interp
def
process_dstr
exp
exp
=
exp
.
dup
exp
.
shift
exp
.
map!
do
|
e
|
if
e
.
is_a?
String
...
...
@@ -101,6 +106,7 @@ class BaseProcessor < SexpProcessor
#Processes a block. Changes Sexp node type to :rlist
def
process_block
exp
exp
=
exp
.
dup
exp
.
shift
exp
.
map!
do
|
e
|
...
...
@@ -113,6 +119,7 @@ class BaseProcessor < SexpProcessor
#Processes the inside of an interpolated String.
#Changes Sexp node type to :string_eval
def
process_evstr
exp
exp
=
exp
.
dup
exp
[
0
]
=
:string_eval
exp
[
1
]
=
process
exp
[
1
]
exp
...
...
@@ -120,6 +127,7 @@ class BaseProcessor < SexpProcessor
#Processes an or keyword
def
process_or
exp
exp
=
exp
.
dup
exp
[
1
]
=
process
exp
[
1
]
exp
[
2
]
=
process
exp
[
2
]
exp
...
...
@@ -127,6 +135,7 @@ class BaseProcessor < SexpProcessor
#Processes an and keyword
def
process_and
exp
exp
=
exp
.
dup
exp
[
1
]
=
process
exp
[
1
]
exp
[
2
]
=
process
exp
[
2
]
exp
...
...
@@ -134,6 +143,7 @@ class BaseProcessor < SexpProcessor
#Processes a hash
def
process_hash
exp
exp
=
exp
.
dup
exp
.
shift
exp
.
map!
do
|
e
|
if
sexp?
e
...
...
@@ -148,6 +158,7 @@ class BaseProcessor < SexpProcessor
#Processes the values in an argument list
def
process_arglist
exp
exp
=
exp
.
dup
exp
.
shift
exp
.
map!
do
|
e
|
process
e
...
...
@@ -158,18 +169,21 @@ class BaseProcessor < SexpProcessor
#Processes a local assignment
def
process_lasgn
exp
exp
=
exp
.
dup
exp
[
2
]
=
process
exp
[
2
]
exp
end
#Processes an instance variable assignment
def
process_iasgn
exp
exp
=
exp
.
dup
exp
[
2
]
=
process
exp
[
2
]
exp
end
#Processes an attribute assignment, which can be either x.y = 1 or x[:y] = 1
def
process_attrasgn
exp
exp
=
exp
.
dup
exp
[
1
]
=
process
exp
[
1
]
exp
[
3
]
=
process
exp
[
3
]
exp
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录