@@ -6,51 +6,56 @@ class ValueNode < Base
6
6
handle :true , :false , :self , :nil
7
7
8
8
def compile
9
- # :self, :true, :false, :nil
10
9
push type . to_s
11
10
end
12
11
end
13
12
14
- class LiteralNode < Base
15
- children :value
16
- end
17
-
18
- class NumericNode < LiteralNode
13
+ class NumericNode < Base
19
14
handle :int , :float
20
15
16
+ children :value
17
+
21
18
def compile
22
19
push value . to_s
23
20
wrap '(' , ')' if recv?
24
21
end
25
22
end
26
23
27
- class StringNode < LiteralNode
24
+ class StringNode < Base
28
25
handle :str
29
26
27
+ children :value
28
+
30
29
def compile
31
30
push value . inspect
32
31
end
33
32
end
34
33
35
- class SymbolNode < LiteralNode
34
+ class SymbolNode < Base
36
35
handle :sym
37
36
37
+ children :value
38
+
38
39
def compile
39
40
push value . to_s . inspect
40
41
end
41
42
end
42
43
43
- class RegexpNode < LiteralNode
44
+ class RegexpNode < Base
44
45
handle :regexp
45
46
47
+ children :value
48
+
46
49
def compile
47
50
push ( ( value == // ? /^/ : value ) . inspect )
48
51
end
49
52
end
50
53
51
- class XStringNode < LiteralNode
54
+ class XStringNode < Base
52
55
handle :xstr
53
56
57
+ children :value
58
+
54
59
def needs_semicolon?
55
60
stmt? and !value . to_s . include? ( ';' )
56
61
end
@@ -166,11 +171,7 @@ class ExclusiveRangeNode < Base
166
171
def compile
167
172
helper :range
168
173
169
- push "$range("
170
- push expr ( start )
171
- push ", "
172
- push expr ( finish )
173
- push ", false)"
174
+ push '$range(' , expr ( start ) , ', ' , expr ( finish ) , ', false)'
174
175
end
175
176
end
176
177
@@ -182,11 +183,7 @@ class InclusiveRangeNode < Base
182
183
def compile
183
184
helper :range
184
185
185
- push "$range("
186
- push expr ( start )
187
- push ", "
188
- push expr ( finish )
189
- push ", true)"
186
+ push '$range(' , expr ( start ) , ', ' , expr ( finish ) , ', true)'
190
187
end
191
188
end
192
189
end
0 commit comments