rgo-lang 0.1.1 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fce39ab840f5d3a4eebf64b00f1fde18dd53aa5766ff4ca7aff51c93f8c29625
4
- data.tar.gz: 34945dac88d2691932c3de58f3f62b6f05d404db954f1696fa3acc2434ea0eb0
3
+ metadata.gz: 45475abf9aea59749c6fff727ecf17c9d51f70c695bbb6b280e654e4cba6454c
4
+ data.tar.gz: 713db746d12b2ae8aea7dd7c74fe01c97ee68393287f84b254f52369e9f401df
5
5
  SHA512:
6
- metadata.gz: 47a80ba3426908955ba500086a30c5dc5ef15ec072956a4b13819d931743a994ab4fd2a33fc9bb6212f75394860d88de98450bb2f96b8de3efd0ce948c7de85e
7
- data.tar.gz: efaf3127502edd7b575815ad197dcf67da7375a1da1698b39a43f4c63685d3cb15ded585c1d01958a792359ffe9dc8e6ad2ff3ee6bfdc5ff0f818fc4d37421ab
6
+ metadata.gz: 23a3b97263dbf705d7df8a993c9d8fcace61d981ecfeaa56380fcb4c7534df1f76ebe737ef234a66a3fd2eca04aa9b088abb0b51927293cb5bc893ed69307ee6
7
+ data.tar.gz: c2db49be007612b3e5f7d0c7245af2cd692d6d0775270131b2469e5f930cf5122584e8e1ac7ab2c55d37cc2a4ac5a9a48f04d99dd7e79d00eb59173053cfce85
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rgo-lang (0.1.1)
4
+ rgo-lang (0.1.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ task :default => :spec
12
12
 
13
13
  task :dev do
14
14
  `racc parse.y -o lib/rgo/parser.rb`
15
- statements = Rgo::Parser.new.parse(File.read("./samples/4_if_else.rgo"))
15
+ statements = Rgo::Parser.new.parse(File.read("./samples/example_01_http_servers.rgo"))
16
16
 
17
17
  require 'pp'
18
18
 
@@ -23,6 +23,6 @@ task :dev do
23
23
 
24
24
  puts out
25
25
 
26
- puts compile.functions
27
- puts compile.function_to_module_map
26
+ puts "compile functions : #{compile.functions}"
27
+ puts "compile functions_to_module_map : #{compile.function_to_module_map}"
28
28
  end
@@ -1,6 +1,7 @@
1
1
  module Rgo
2
2
  class Compile
3
- attr_reader :functions, :function_to_module_map, :aliases
3
+ attr_reader :functions, :function_to_module_map, :aliases,
4
+ :classes
4
5
 
5
6
  def initialize(statements)
6
7
  @statements = statements
@@ -8,7 +9,9 @@ module Rgo
8
9
  @function_access_type = :public
9
10
  @current_module = nil
10
11
  @aliases = {}
12
+ @classes = []
11
13
  @function_to_module_map = {}
14
+ @class_to_module_map = {}
12
15
  @next_func_type = nil
13
16
  @local_variables = []
14
17
  @next_instance_variable_type = nil
@@ -44,22 +47,40 @@ module Rgo
44
47
  pretty out, indent
45
48
  end
46
49
 
50
+ def compile_interface(node, indent)
51
+ @inside_interface = true
52
+ out = []
53
+ out << "type #{node.name.downcase} interface {"
54
+ out << ""
55
+ out << compile_statements(node.children, indent +1)
56
+ out << "}"
57
+
58
+ @inside_interface = false
59
+
60
+ pretty out, indent
61
+ end
62
+
47
63
  def compile_include(node, indent)
48
64
  # compile included module to get list of functions
65
+ filepath = node.name.map(&:downcase).join("/")
49
66
 
50
- statements = Rgo::Parser.new.parse(File.read("std/" + node.name.downcase + ".rgo"))
67
+ statements = Rgo::Parser.new.parse(File.read("std/" + filepath + ".rgo"))
51
68
  compile = Rgo::Compile.new(statements)
52
69
  compile.compile
53
70
 
54
71
  compile.functions[:public].each do |func|
55
- @function_to_module_map[func] = [node.name, func]
72
+ @function_to_module_map[func] = [filepath, func]
56
73
  end
57
74
 
58
75
  compile.aliases.each do |name, func|
59
- @function_to_module_map[name] = [node.name, func]
76
+ @function_to_module_map[name] = [filepath, func]
77
+ end
78
+
79
+ compile.classes.each do |name, func|
80
+ @class_to_module_map[name] = filepath.split("/").last
60
81
  end
61
82
 
62
- "import \"#{node.name.downcase}\""
83
+ "import \"#{filepath}\""
63
84
  end
64
85
 
65
86
  def pretty(lines, indent = 0)
@@ -85,13 +106,14 @@ module Rgo
85
106
 
86
107
  def compile_func_call(node, indent)
87
108
  mod, func = @function_to_module_map[node.name]
109
+ mod = mod.split("/").last unless mod.nil?
88
110
 
89
111
  out = ""
90
112
 
91
113
  if mod.nil?
92
114
  out << func
93
115
  else
94
- out << mod.downcase + "." + func.capitalize
116
+ out << mod.downcase + "." + func.split("_").map(&:capitalize).join
95
117
  end
96
118
 
97
119
  out << "(" + compile_args(node.children) + ")"
@@ -115,6 +137,7 @@ module Rgo
115
137
 
116
138
  args = compile_func_def_args(node.children[0])
117
139
  return_type = @next_func_type.nil? ? "" : @next_func_type[:return].to_s + " "
140
+ return_type = "" if return_type == "nil "
118
141
 
119
142
 
120
143
  method_receiver =
@@ -125,9 +148,14 @@ module Rgo
125
148
  end
126
149
 
127
150
  out = []
128
- out << "func #{method_receiver}#{node.name}(#{args}) #{return_type}{"
129
- out << compile_statements(node.children[1], indent + 1)
130
- out << "}"
151
+
152
+ if @inside_interface
153
+ out << "#{method_receiver}#{node.name}(#{args}) #{return_type.strip}"
154
+ else
155
+ out << "func #{method_receiver}#{node.name}(#{args}) #{return_type}{"
156
+ out << compile_statements(node.children[1], indent + 1)
157
+ out << "}"
158
+ end
131
159
 
132
160
  @next_func_type = nil
133
161
  @local_variables = []
@@ -145,7 +173,18 @@ module Rgo
145
173
 
146
174
  out = []
147
175
  nodes.each_with_index do |node, i|
148
- out << node.name + " " + @next_func_type[:args][i]
176
+ type = @next_func_type[:args][i]
177
+
178
+ pointer = false
179
+ if type[0] == "*"
180
+ pointer = true
181
+ type = type[1..-1]
182
+ end
183
+
184
+ mod = @class_to_module_map[type].to_s
185
+ mod = mod + "." unless mod.empty?
186
+
187
+ out << node.name + " " + (pointer ? "*" : "" ) + mod + type
149
188
  @local_variables << node.name
150
189
  end
151
190
 
@@ -276,6 +315,8 @@ module Rgo
276
315
  end
277
316
 
278
317
  def compile_class(node, indent)
318
+ @classes << node.name
319
+
279
320
  @current_class = node.name.downcase
280
321
 
281
322
  out = []
@@ -14,7 +14,7 @@ require_relative './node.rb'
14
14
  module Rgo
15
15
  class Parser < Racc::Parser
16
16
 
17
- module_eval(<<'...end parse.y/module_eval...', 'parse.y', 205)
17
+ module_eval(<<'...end parse.y/module_eval...', 'parse.y', 221)
18
18
 
19
19
  def parse(str)
20
20
  @q = Tokenizer.new(str).tokens
@@ -39,288 +39,312 @@ end
39
39
  ##### State transition tables begin ###
40
40
 
41
41
  racc_action_table = [
42
- 18, 39, 22, 41, 24, 19, 28, 20, 25, 21,
43
- 87, 22, 23, 24, 50, 27, 117, 42, 29, 31,
44
- 34, 35, 51, 43, 22, 38, 24, 48, 49, 61,
45
- 18, 44, 36, 37, 38, 19, 28, 20, 25, 21,
46
- 44, 22, 23, 24, 45, 27, 46, 38, 29, 31,
47
- 34, 35, 47, 24, 66, 46, 67, 77, 78, 87,
48
- 18, 47, 36, 37, 38, 19, 28, 20, 25, 21,
49
- 82, 22, 23, 24, 38, 27, 92, -28, 29, 31,
50
- 34, 35, 97, 84, 93, -28, 51, 94, 100, 99,
51
- 18, 80, 36, 37, 38, 19, 28, 20, 25, 21,
52
- 116, 22, 23, 24, 110, 27, 44, -29, 29, 31,
53
- 34, 35, 111, -65, -63, -29, 99, 129, 116, nil,
54
- nil, 46, 36, 37, 38, 18, 90, 47, 91, nil,
55
- 19, 28, 20, 25, 21, nil, 22, 23, 24, 123,
56
- 27, nil, nil, 29, 31, 34, 35, 93, 53, 54,
57
- 55, 56, 57, 58, 59, 60, 127, 36, 37, 38,
58
- 18, nil, nil, 95, 128, 19, 28, 20, 25, 21,
59
- nil, 22, 23, 24, nil, 27, nil, nil, 29, 31,
60
- 34, 35, -50, -50, -50, -50, -50, -50, -50, -50,
61
- 18, nil, 36, 37, 38, 19, 28, 20, 25, 21,
62
- nil, 22, 23, 24, nil, 27, nil, nil, 29, 31,
63
- 34, 35, 53, 54, 55, 56, 57, 58, 59, 60,
64
- 18, nil, 36, 37, 38, 19, 28, 20, 25, 21,
65
- nil, 22, 23, 24, nil, 27, nil, nil, 29, 31,
66
- 34, 35, 53, 54, 55, 56, 57, 58, 59, 60,
67
- nil, nil, 36, 37, 38, 18, nil, nil, 121, 122,
68
- 19, 28, 20, 25, 21, nil, 22, 23, 24, nil,
69
- 27, nil, nil, 29, 31, 34, 35, 53, 54, 55,
70
- 56, 57, 58, 59, 60, 18, nil, 36, 37, 38,
71
- 19, 28, 20, 25, 21, nil, 22, 23, 24, nil,
72
- 27, nil, nil, 29, 31, 34, 35, 53, 54, 55,
73
- 56, 57, 58, 59, 60, nil, nil, 36, 37, 38,
74
- 18, nil, nil, 126, nil, 19, 28, 20, 25, 21,
75
- nil, 22, 23, 24, nil, 27, nil, nil, 29, 31,
76
- 34, 35, 53, 54, 55, 56, 57, 58, 59, 60,
77
- 18, nil, 36, 37, 38, 19, 28, 20, 25, 21,
78
- nil, 22, 23, 24, nil, 27, nil, nil, 29, 31,
79
- 34, 35, 53, 54, 55, 56, 57, 58, 59, 60,
80
- nil, nil, 36, 37, 38, 18, nil, nil, 131, nil,
81
- 19, 28, 20, 25, 21, nil, 22, 23, 24, nil,
82
- 27, nil, nil, 29, 31, 34, 35, 53, 54, 55,
83
- 56, 57, 58, 59, 60, nil, nil, 36, 37, 38,
84
- 18, nil, nil, 134, nil, 19, 28, 20, 25, 21,
85
- nil, 22, 23, 24, 28, 27, 64, 62, 29, 31,
86
- 34, 35, nil, nil, nil, nil, 29, 31, nil, nil,
87
- nil, nil, 36, 37, 38, 28, nil, 64, 62, nil,
88
- 36, 37, 74, nil, 64, 70, nil, 29, 31, nil,
89
- nil, nil, nil, nil, 29, 31, nil, nil, nil, nil,
90
- nil, 36, 37, 28, nil, 64, 62, nil, 36, 37,
91
- 28, nil, 64, 62, nil, 29, 31, nil, nil, nil,
92
- nil, nil, 29, 31, nil, nil, nil, nil, nil, 36,
93
- 37, 28, nil, 64, 62, nil, 36, 37, 74, nil,
94
- 64, 70, nil, 29, 31, nil, nil, nil, nil, nil,
95
- 29, 31, nil, nil, nil, nil, nil, 36, 37, 74,
96
- nil, 64, 70, nil, 36, 37, 28, nil, 64, 62,
97
- nil, 29, 31, nil, nil, nil, nil, nil, 29, 31,
98
- nil, nil, nil, nil, nil, 36, 37, nil, nil, nil,
99
- nil, nil, 36, 37 ]
42
+ 19, 24, 101, 41, 26, 20, 30, 21, 27, 22,
43
+ 23, 102, 24, 25, 43, 26, 44, 29, 54, -30,
44
+ 31, 33, 36, 37, 24, 40, 55, 26, -30, 45,
45
+ 46, 51, 19, 95, 38, 39, 40, 20, 30, 21,
46
+ 27, 22, 23, 53, 24, 25, 65, 26, 40, 29,
47
+ 121, 133, 31, 33, 36, 37, 70, 26, 71, 122,
48
+ 102, 82, 83, 95, 19, 47, 38, 39, 40, 20,
49
+ 30, 21, 27, 22, 23, 86, 24, 25, 40, 26,
50
+ 48, 29, 49, 137, 31, 33, 36, 37, 50, 88,
51
+ 90, 55, 138, 103, 53, 110, 19, 47, 38, 39,
52
+ 40, 20, 30, 21, 27, 22, 23, 106, 24, 25,
53
+ 111, 26, 86, 29, 49, 108, 31, 33, 36, 37,
54
+ 50, 127, -71, -69, 108, 139, 127, nil, 19, 85,
55
+ 38, 39, 40, 20, 30, 21, 27, 22, 23, nil,
56
+ 24, 25, nil, 26, nil, 29, nil, nil, 31, 33,
57
+ 36, 37, -54, -54, -54, -54, -54, -54, -54, -54,
58
+ nil, nil, 38, 39, 40, 19, 98, nil, 99, nil,
59
+ 20, 30, 21, 27, 22, 23, nil, 24, 25, nil,
60
+ 26, nil, 29, nil, nil, 31, 33, 36, 37, nil,
61
+ 57, 58, 59, 60, 61, 62, 63, 64, nil, 38,
62
+ 39, 40, 19, 47, -31, 100, nil, 20, 30, 21,
63
+ 27, 22, 23, -31, 24, 25, nil, 26, nil, 29,
64
+ 49, nil, 31, 33, 36, 37, 50, 57, 58, 59,
65
+ 60, 61, 62, 63, 64, nil, 38, 39, 40, 19,
66
+ nil, nil, 104, nil, 20, 30, 21, 27, 22, 23,
67
+ nil, 24, 25, nil, 26, nil, 29, nil, nil, 31,
68
+ 33, 36, 37, 57, 58, 59, 60, 61, 62, 63,
69
+ 64, 19, nil, 38, 39, 40, 20, 30, 21, 27,
70
+ 22, 23, nil, 24, 25, nil, 26, nil, 29, nil,
71
+ nil, 31, 33, 36, 37, 57, 58, 59, 60, 61,
72
+ 62, 63, 64, 19, nil, 38, 39, 40, 20, 30,
73
+ 21, 27, 22, 23, nil, 24, 25, nil, 26, nil,
74
+ 29, nil, nil, 31, 33, 36, 37, 57, 58, 59,
75
+ 60, 61, 62, 63, 64, nil, nil, 38, 39, 40,
76
+ 19, nil, nil, 131, 132, 20, 30, 21, 27, 22,
77
+ 23, nil, 24, 25, nil, 26, nil, 29, nil, nil,
78
+ 31, 33, 36, 37, 57, 58, 59, 60, 61, 62,
79
+ 63, 64, 19, nil, 38, 39, 40, 20, 30, 21,
80
+ 27, 22, 23, nil, 24, 25, nil, 26, nil, 29,
81
+ nil, nil, 31, 33, 36, 37, 57, 58, 59, 60,
82
+ 61, 62, 63, 64, nil, nil, 38, 39, 40, 19,
83
+ nil, nil, 136, nil, 20, 30, 21, 27, 22, 23,
84
+ nil, 24, 25, nil, 26, nil, 29, nil, nil, 31,
85
+ 33, 36, 37, 57, 58, 59, 60, 61, 62, 63,
86
+ 64, 19, nil, 38, 39, 40, 20, 30, 21, 27,
87
+ 22, 23, nil, 24, 25, nil, 26, nil, 29, nil,
88
+ nil, 31, 33, 36, 37, nil, nil, nil, nil, nil,
89
+ nil, nil, nil, nil, nil, 38, 39, 40, 19, nil,
90
+ nil, 141, nil, 20, 30, 21, 27, 22, 23, nil,
91
+ 24, 25, nil, 26, nil, 29, nil, nil, 31, 33,
92
+ 36, 37, nil, nil, nil, nil, nil, nil, nil, nil,
93
+ nil, nil, 38, 39, 40, 19, nil, nil, 144, nil,
94
+ 20, 30, 21, 27, 22, 23, nil, 24, 25, 30,
95
+ 26, 68, 29, 66, nil, 31, 33, 36, 37, nil,
96
+ nil, nil, nil, 31, 33, nil, nil, nil, nil, 38,
97
+ 39, 40, 30, nil, 68, nil, 66, 38, 39, 79,
98
+ nil, 68, nil, 75, nil, nil, 31, 33, 30, nil,
99
+ 68, nil, 66, 31, 33, 30, nil, 68, nil, 66,
100
+ 38, 39, 31, 33, nil, nil, nil, 38, 39, 31,
101
+ 33, 30, nil, 68, nil, 66, 38, 39, 79, nil,
102
+ 68, nil, 75, 38, 39, 31, 33, 79, nil, 68,
103
+ nil, 75, 31, 33, 30, nil, 68, nil, 66, 38,
104
+ 39, 31, 33, nil, nil, nil, 38, 39, 31, 33,
105
+ nil, nil, nil, nil, nil, 38, 39, nil, nil, nil,
106
+ nil, nil, 38, 39 ]
100
107
 
101
108
  racc_action_check = [
102
- 0, 1, 85, 18, 85, 0, 0, 0, 0, 0,
103
- 85, 0, 0, 0, 25, 0, 101, 19, 0, 0,
104
- 0, 0, 25, 20, 101, 85, 101, 22, 23, 27,
105
- 2, 21, 0, 0, 0, 2, 2, 2, 2, 2,
106
- 62, 2, 2, 2, 21, 2, 21, 101, 2, 2,
107
- 2, 2, 21, 66, 35, 62, 39, 46, 47, 66,
108
- 43, 62, 2, 2, 2, 43, 43, 43, 43, 43,
109
- 51, 43, 43, 43, 66, 43, 71, 74, 43, 43,
110
- 43, 43, 80, 61, 71, 74, 64, 78, 82, 80,
111
- 48, 48, 43, 43, 43, 48, 48, 48, 48, 48,
112
- 100, 48, 48, 48, 96, 48, 70, 70, 48, 48,
113
- 48, 48, 96, 103, 104, 70, 111, 116, 128, nil,
114
- nil, 70, 48, 48, 48, 69, 68, 70, 69, nil,
115
- 69, 69, 69, 69, 69, nil, 69, 69, 69, 109,
116
- 69, nil, nil, 69, 69, 69, 69, 109, 68, 68,
117
- 68, 68, 68, 68, 68, 68, 113, 69, 69, 69,
118
- 79, nil, nil, 79, 113, 79, 79, 79, 79, 79,
119
- nil, 79, 79, 79, nil, 79, nil, nil, 79, 79,
120
- 79, 79, 7, 7, 7, 7, 7, 7, 7, 7,
121
- 90, nil, 79, 79, 79, 90, 90, 90, 90, 90,
122
- nil, 90, 90, 90, nil, 90, nil, nil, 90, 90,
123
- 90, 90, 26, 26, 26, 26, 26, 26, 26, 26,
124
- 97, nil, 90, 90, 90, 97, 97, 97, 97, 97,
125
- nil, 97, 97, 97, nil, 97, nil, nil, 97, 97,
126
- 97, 97, 63, 63, 63, 63, 63, 63, 63, 63,
127
- nil, nil, 97, 97, 97, 107, nil, nil, 107, 107,
128
- 107, 107, 107, 107, 107, nil, 107, 107, 107, nil,
129
- 107, nil, nil, 107, 107, 107, 107, 75, 75, 75,
130
- 75, 75, 75, 75, 75, 110, nil, 107, 107, 107,
131
- 110, 110, 110, 110, 110, nil, 110, 110, 110, nil,
132
- 110, nil, nil, 110, 110, 110, 110, 76, 76, 76,
133
- 76, 76, 76, 76, 76, nil, nil, 110, 110, 110,
134
- 112, nil, nil, 112, nil, 112, 112, 112, 112, 112,
135
- nil, 112, 112, 112, nil, 112, nil, nil, 112, 112,
136
- 112, 112, 81, 81, 81, 81, 81, 81, 81, 81,
137
- 122, nil, 112, 112, 112, 122, 122, 122, 122, 122,
138
- nil, 122, 122, 122, nil, 122, nil, nil, 122, 122,
139
- 122, 122, 83, 83, 83, 83, 83, 83, 83, 83,
140
- nil, nil, 122, 122, 122, 124, nil, nil, 124, nil,
141
- 124, 124, 124, 124, 124, nil, 124, 124, 124, nil,
142
- 124, nil, nil, 124, 124, 124, 124, 133, 133, 133,
143
- 133, 133, 133, 133, 133, nil, nil, 124, 124, 124,
144
- 130, nil, nil, 130, nil, 130, 130, 130, 130, 130,
145
- nil, 130, 130, 130, 34, 130, 34, 34, 130, 130,
146
- 130, 130, nil, nil, nil, nil, 34, 34, nil, nil,
147
- nil, nil, 130, 130, 130, 41, nil, 41, 41, nil,
148
- 34, 34, 44, nil, 44, 44, nil, 41, 41, nil,
149
- nil, nil, nil, nil, 44, 44, nil, nil, nil, nil,
150
- nil, 41, 41, 45, nil, 45, 45, nil, 44, 44,
151
- 50, nil, 50, 50, nil, 45, 45, nil, nil, nil,
152
- nil, nil, 50, 50, nil, nil, nil, nil, nil, 45,
153
- 45, 52, nil, 52, 52, nil, 50, 50, 93, nil,
154
- 93, 93, nil, 52, 52, nil, nil, nil, nil, nil,
155
- 93, 93, nil, nil, nil, nil, nil, 52, 52, 94,
156
- nil, 94, 94, nil, 93, 93, 129, nil, 129, 129,
157
- nil, 94, 94, nil, nil, nil, nil, nil, 129, 129,
158
- nil, nil, nil, nil, nil, 94, 94, nil, nil, nil,
159
- nil, nil, 129, 129 ]
109
+ 0, 112, 76, 1, 112, 0, 0, 0, 0, 0,
110
+ 0, 76, 0, 0, 19, 0, 20, 0, 27, 79,
111
+ 0, 0, 0, 0, 93, 112, 27, 93, 79, 21,
112
+ 22, 24, 2, 93, 0, 0, 0, 2, 2, 2,
113
+ 2, 2, 2, 25, 2, 2, 29, 2, 93, 2,
114
+ 105, 120, 2, 2, 2, 2, 37, 70, 41, 105,
115
+ 120, 49, 50, 70, 45, 23, 2, 2, 2, 45,
116
+ 45, 45, 45, 45, 45, 52, 45, 45, 70, 45,
117
+ 23, 45, 23, 124, 45, 45, 45, 45, 23, 55,
118
+ 65, 68, 124, 83, 86, 88, 46, 66, 45, 45,
119
+ 45, 46, 46, 46, 46, 46, 46, 85, 46, 46,
120
+ 91, 46, 109, 46, 66, 85, 46, 46, 46, 46,
121
+ 66, 110, 114, 115, 122, 127, 138, nil, 51, 51,
122
+ 46, 46, 46, 51, 51, 51, 51, 51, 51, nil,
123
+ 51, 51, nil, 51, nil, 51, nil, nil, 51, 51,
124
+ 51, 51, 8, 8, 8, 8, 8, 8, 8, 8,
125
+ nil, nil, 51, 51, 51, 73, 72, nil, 73, nil,
126
+ 73, 73, 73, 73, 73, 73, nil, 73, 73, nil,
127
+ 73, nil, 73, nil, nil, 73, 73, 73, 73, nil,
128
+ 72, 72, 72, 72, 72, 72, 72, 72, nil, 73,
129
+ 73, 73, 74, 75, 75, 74, nil, 74, 74, 74,
130
+ 74, 74, 74, 75, 74, 74, nil, 74, nil, 74,
131
+ 75, nil, 74, 74, 74, 74, 75, 28, 28, 28,
132
+ 28, 28, 28, 28, 28, nil, 74, 74, 74, 84,
133
+ nil, nil, 84, nil, 84, 84, 84, 84, 84, 84,
134
+ nil, 84, 84, nil, 84, nil, 84, nil, nil, 84,
135
+ 84, 84, 84, 67, 67, 67, 67, 67, 67, 67,
136
+ 67, 98, nil, 84, 84, 84, 98, 98, 98, 98,
137
+ 98, 98, nil, 98, 98, nil, 98, nil, 98, nil,
138
+ nil, 98, 98, 98, 98, 80, 80, 80, 80, 80,
139
+ 80, 80, 80, 106, nil, 98, 98, 98, 106, 106,
140
+ 106, 106, 106, 106, nil, 106, 106, nil, 106, nil,
141
+ 106, nil, nil, 106, 106, 106, 106, 81, 81, 81,
142
+ 81, 81, 81, 81, 81, nil, nil, 106, 106, 106,
143
+ 118, nil, nil, 118, 118, 118, 118, 118, 118, 118,
144
+ 118, nil, 118, 118, nil, 118, nil, 118, nil, nil,
145
+ 118, 118, 118, 118, 87, 87, 87, 87, 87, 87,
146
+ 87, 87, 121, nil, 118, 118, 118, 121, 121, 121,
147
+ 121, 121, 121, nil, 121, 121, nil, 121, nil, 121,
148
+ nil, nil, 121, 121, 121, 121, 89, 89, 89, 89,
149
+ 89, 89, 89, 89, nil, nil, 121, 121, 121, 123,
150
+ nil, nil, 123, nil, 123, 123, 123, 123, 123, 123,
151
+ nil, 123, 123, nil, 123, nil, 123, nil, nil, 123,
152
+ 123, 123, 123, 143, 143, 143, 143, 143, 143, 143,
153
+ 143, 132, nil, 123, 123, 123, 132, 132, 132, 132,
154
+ 132, 132, nil, 132, 132, nil, 132, nil, 132, nil,
155
+ nil, 132, 132, 132, 132, nil, nil, nil, nil, nil,
156
+ nil, nil, nil, nil, nil, 132, 132, 132, 134, nil,
157
+ nil, 134, nil, 134, 134, 134, 134, 134, 134, nil,
158
+ 134, 134, nil, 134, nil, 134, nil, nil, 134, 134,
159
+ 134, 134, nil, nil, nil, nil, nil, nil, nil, nil,
160
+ nil, nil, 134, 134, 134, 140, nil, nil, 140, nil,
161
+ 140, 140, 140, 140, 140, 140, nil, 140, 140, 36,
162
+ 140, 36, 140, 36, nil, 140, 140, 140, 140, nil,
163
+ nil, nil, nil, 36, 36, nil, nil, nil, nil, 140,
164
+ 140, 140, 43, nil, 43, nil, 43, 36, 36, 47,
165
+ nil, 47, nil, 47, nil, nil, 43, 43, 48, nil,
166
+ 48, nil, 48, 47, 47, 54, nil, 54, nil, 54,
167
+ 43, 43, 48, 48, nil, nil, nil, 47, 47, 54,
168
+ 54, 56, nil, 56, nil, 56, 48, 48, 102, nil,
169
+ 102, nil, 102, 54, 54, 56, 56, 103, nil, 103,
170
+ nil, 103, 102, 102, 139, nil, 139, nil, 139, 56,
171
+ 56, 103, 103, nil, nil, nil, 102, 102, 139, 139,
172
+ nil, nil, nil, nil, nil, 103, 103, nil, nil, nil,
173
+ nil, nil, 139, 139 ]
160
174
 
161
175
  racc_action_pointer = [
162
- -8, 1, 22, nil, nil, nil, nil, 150, nil, nil,
163
- nil, nil, nil, nil, nil, nil, nil, nil, -6, 3,
164
- 7, 22, 10, 12, nil, -8, 180, 12, nil, nil,
165
- nil, nil, nil, nil, 420, 38, nil, nil, nil, 56,
166
- nil, 441, nil, 52, 448, 469, 32, 41, 82, nil,
167
- 476, 53, 497, nil, nil, nil, nil, nil, nil, nil,
168
- nil, 66, 31, 210, 56, nil, 32, nil, 116, 117,
169
- 97, 66, nil, nil, 67, 245, 275, nil, 78, 152,
170
- 72, 310, 79, 340, nil, -17, nil, nil, nil, nil,
171
- 182, nil, nil, 504, 525, nil, 94, 212, nil, nil,
172
- 83, 5, nil, 102, 103, nil, nil, 247, nil, 129,
173
- 277, 99, 312, 146, nil, nil, 86, nil, nil, nil,
174
- nil, nil, 342, nil, 377, nil, nil, nil, 101, 532,
175
- 412, nil, nil, 375, nil ]
176
+ -8, 3, 24, nil, nil, nil, nil, nil, 118, nil,
177
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 5,
178
+ 2, 13, 14, 56, 13, 27, nil, -6, 193, 28,
179
+ nil, nil, nil, nil, nil, nil, 515, 40, nil, nil,
180
+ nil, 58, nil, 538, nil, 56, 88, 545, 554, 34,
181
+ 44, 120, 53, nil, 561, 71, 577, nil, nil, nil,
182
+ nil, nil, nil, nil, nil, 72, 88, 229, 59, nil,
183
+ 34, nil, 156, 157, 194, 194, -8, nil, nil, 9,
184
+ 261, 293, nil, 84, 231, 97, 78, 330, 86, 362,
185
+ nil, 99, nil, 4, nil, nil, nil, nil, 263, nil,
186
+ nil, nil, 584, 593, nil, 40, 295, nil, nil, 90,
187
+ 103, nil, -19, nil, 111, 112, nil, nil, 332, nil,
188
+ 41, 364, 106, 401, 73, nil, nil, 92, nil, nil,
189
+ nil, nil, 433, nil, 470, nil, nil, nil, 108, 600,
190
+ 507, nil, nil, 399, nil ]
176
191
 
177
192
  racc_action_default = [
178
- -4, -84, -1, -2, -5, -6, -7, -8, -9, -10,
179
- -11, -12, -13, -14, -15, -16, -17, -18, -84, -84,
180
- -84, -44, -84, -84, -38, -49, -41, -84, -45, -46,
181
- -47, -51, -52, -53, -84, -84, -80, -81, -82, -84,
182
- -3, -84, -22, -4, -83, -84, -84, -84, -4, -37,
183
- -84, -84, -84, -72, -73, -74, -75, -76, -77, -78,
184
- -79, -84, -44, -54, -49, -50, -84, 135, -84, -84,
185
- -44, -84, -25, -27, -45, -30, -39, -43, -84, -84,
186
- -84, -40, -84, -48, -42, -84, -56, -58, -59, -60,
187
- -4, -23, -24, -83, -83, -33, -84, -4, -34, -36,
188
- -83, -84, -57, -59, -60, -61, -64, -84, -26, -84,
189
- -4, -84, -84, -84, -67, -69, -84, -55, -62, -63,
190
- -65, -19, -4, -71, -84, -35, -32, -66, -83, -84,
191
- -84, -31, -68, -70, -20 ]
193
+ -4, -90, -1, -2, -5, -6, -7, -8, -9, -10,
194
+ -11, -12, -13, -14, -15, -16, -17, -18, -19, -90,
195
+ -90, -90, -90, -48, -90, -90, -42, -53, -45, -90,
196
+ -49, -50, -51, -55, -56, -57, -90, -90, -86, -87,
197
+ -88, -90, -3, -90, -23, -4, -4, -89, -90, -90,
198
+ -90, -4, -39, -40, -90, -90, -90, -78, -79, -80,
199
+ -81, -82, -83, -84, -85, -90, -48, -58, -53, -54,
200
+ -89, 145, -90, -90, -90, -48, -90, -27, -29, -49,
201
+ -32, -43, -47, -90, -90, -90, -90, -44, -90, -52,
202
+ -46, -90, -60, -90, -62, -64, -65, -66, -4, -24,
203
+ -25, -26, -89, -89, -35, -90, -4, -36, -38, -41,
204
+ -89, -59, -61, -63, -65, -66, -67, -70, -90, -28,
205
+ -90, -4, -90, -90, -90, -73, -75, -90, -68, -69,
206
+ -71, -20, -4, -77, -90, -37, -34, -72, -89, -90,
207
+ -90, -33, -74, -76, -21 ]
192
208
 
193
209
  racc_goto_table = [
194
- 40, 2, 65, 71, 89, 98, 115, 88, 86, 65,
195
- 114, 1, 65, 65, 63, 106, 108, 105, 65, 96,
196
- 65, 68, 85, 104, 75, 76, 103, 102, 101, 113,
197
- 81, 106, 83, 118, 115, nil, 125, nil, 132, 119,
198
- nil, nil, 120, nil, 69, nil, nil, nil, nil, 79,
199
- nil, nil, nil, 109, nil, nil, nil, nil, nil, nil,
200
- nil, 65, 65, nil, nil, nil, nil, 40, nil, nil,
201
- nil, nil, nil, 75, 75, nil, nil, 40, nil, nil,
202
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
203
- nil, 107, nil, nil, nil, nil, nil, 65, 112, nil,
204
- nil, nil, nil, nil, nil, 40, nil, nil, nil, 133,
205
- 40, 124, nil, nil, nil, nil, nil, nil, nil, nil,
206
- nil, nil, 40, 130, nil, nil, nil, nil, 40 ]
210
+ 42, 2, 69, 52, 76, 92, 97, 107, 96, 69,
211
+ 125, 94, 67, 69, 69, 1, 117, 116, 119, 72,
212
+ 69, 105, 69, 80, 81, 91, 93, 112, 124, 115,
213
+ 87, 114, 89, nil, 113, 117, 128, nil, 142, nil,
214
+ nil, nil, nil, nil, 135, 126, 73, 74, 129, nil,
215
+ 130, nil, 84, nil, nil, nil, nil, nil, nil, nil,
216
+ 120, nil, nil, nil, 109, nil, nil, nil, 69, 69,
217
+ nil, 42, 42, 126, nil, nil, nil, nil, 80, 80,
218
+ nil, nil, 42, nil, nil, nil, nil, nil, nil, nil,
219
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 118,
220
+ nil, nil, nil, nil, nil, 69, nil, 123, nil, nil,
221
+ nil, nil, nil, nil, nil, 143, 42, nil, nil, nil,
222
+ nil, 42, 134, nil, nil, nil, nil, nil, nil, nil,
223
+ nil, nil, 42, 140, nil, nil, nil, nil, 42 ]
207
224
 
208
225
  racc_goto_check = [
209
- 3, 2, 7, 20, 4, 24, 22, 12, 31, 7,
210
- 34, 1, 7, 7, 18, 8, 21, 32, 7, 23,
211
- 7, 18, 29, 4, 18, 18, 12, 31, 30, 33,
212
- 18, 8, 18, 32, 22, nil, 24, nil, 34, 4,
213
- nil, nil, 12, nil, 2, nil, nil, nil, nil, 2,
214
- nil, nil, nil, 20, nil, nil, nil, nil, nil, nil,
215
- nil, 7, 7, nil, nil, nil, nil, 3, nil, nil,
216
- nil, nil, nil, 18, 18, nil, nil, 3, nil, nil,
217
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
218
- nil, 2, nil, nil, nil, nil, nil, 7, 2, nil,
219
- nil, nil, nil, nil, nil, 3, nil, nil, nil, 18,
220
- 3, 2, nil, nil, nil, nil, nil, nil, nil, nil,
226
+ 3, 2, 8, 26, 21, 23, 4, 25, 13, 8,
227
+ 37, 34, 19, 8, 8, 1, 9, 35, 22, 19,
228
+ 8, 24, 8, 19, 19, 31, 32, 33, 36, 4,
229
+ 19, 13, 19, nil, 34, 9, 35, nil, 37, nil,
230
+ nil, nil, nil, nil, 25, 23, 2, 2, 4, nil,
231
+ 13, nil, 2, nil, nil, nil, nil, nil, nil, nil,
232
+ 21, nil, nil, nil, 26, nil, nil, nil, 8, 8,
233
+ nil, 3, 3, 23, nil, nil, nil, nil, 19, 19,
234
+ nil, nil, 3, nil, nil, nil, nil, nil, nil, nil,
235
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 2,
236
+ nil, nil, nil, nil, nil, 8, nil, 2, nil, nil,
237
+ nil, nil, nil, nil, nil, 19, 3, nil, nil, nil,
238
+ nil, 3, 2, nil, nil, nil, nil, nil, nil, nil,
221
239
  nil, nil, 3, 2, nil, nil, nil, nil, 3 ]
222
240
 
223
241
  racc_goto_pointer = [
224
- nil, 11, 1, -2, -62, nil, nil, -32, -70, nil,
225
- nil, nil, -59, nil, nil, nil, nil, nil, -20, nil,
226
- -41, -77, -94, -61, -75, nil, nil, nil, nil, -44,
227
- -57, -58, -68, -71, -90 ]
242
+ nil, 15, 1, -2, -64, nil, nil, nil, -34, -77,
243
+ nil, nil, nil, -62, nil, nil, nil, nil, nil, -24,
244
+ nil, -43, -84, -65, -64, -78, -22, nil, nil, nil,
245
+ nil, -45, -44, -66, -59, -76, -82, -100 ]
228
246
 
229
247
  racc_goto_default = [
230
248
  nil, nil, nil, 3, 4, 5, 6, 7, 8, 9,
231
- 10, 11, 12, 13, 14, 15, 16, 17, 26, nil,
232
- nil, 72, 73, nil, nil, 30, 52, 32, 33, nil,
233
- nil, nil, nil, nil, nil ]
249
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 28,
250
+ nil, nil, 77, 78, nil, nil, nil, 32, 56, 34,
251
+ 35, nil, nil, nil, nil, nil, nil, nil ]
234
252
 
235
253
  racc_reduce_table = [
236
254
  0, 0, :racc_error,
237
- 1, 44, :_reduce_none,
238
- 1, 45, :_reduce_none,
239
- 2, 45, :_reduce_3,
240
- 0, 46, :_reduce_none,
241
255
  1, 46, :_reduce_none,
242
- 1, 46, :_reduce_none,
243
- 1, 46, :_reduce_none,
244
- 1, 46, :_reduce_none,
245
- 1, 46, :_reduce_none,
246
- 1, 46, :_reduce_none,
247
- 1, 46, :_reduce_none,
248
- 1, 46, :_reduce_none,
249
- 1, 46, :_reduce_none,
250
- 1, 46, :_reduce_none,
251
- 1, 46, :_reduce_none,
252
- 1, 46, :_reduce_none,
253
- 1, 46, :_reduce_none,
254
- 1, 46, :_reduce_none,
255
- 6, 56, :_reduce_19,
256
- 8, 56, :_reduce_20,
257
- 2, 62, :_reduce_none,
258
- 2, 49, :_reduce_22,
259
- 4, 48, :_reduce_23,
256
+ 1, 47, :_reduce_none,
257
+ 2, 47, :_reduce_3,
258
+ 0, 48, :_reduce_none,
259
+ 1, 48, :_reduce_none,
260
+ 1, 48, :_reduce_none,
261
+ 1, 48, :_reduce_none,
262
+ 1, 48, :_reduce_none,
263
+ 1, 48, :_reduce_none,
264
+ 1, 48, :_reduce_none,
265
+ 1, 48, :_reduce_none,
266
+ 1, 48, :_reduce_none,
267
+ 1, 48, :_reduce_none,
268
+ 1, 48, :_reduce_none,
269
+ 1, 48, :_reduce_none,
270
+ 1, 48, :_reduce_none,
271
+ 1, 48, :_reduce_none,
272
+ 1, 48, :_reduce_none,
273
+ 1, 48, :_reduce_none,
274
+ 6, 59, :_reduce_20,
275
+ 8, 59, :_reduce_21,
276
+ 2, 65, :_reduce_none,
277
+ 2, 52, :_reduce_23,
260
278
  4, 50, :_reduce_24,
261
- 1, 63, :_reduce_25,
262
- 3, 63, :_reduce_26,
279
+ 4, 51, :_reduce_25,
280
+ 4, 53, :_reduce_26,
281
+ 1, 66, :_reduce_27,
282
+ 3, 66, :_reduce_28,
283
+ 1, 67, :_reduce_none,
284
+ 1, 67, :_reduce_30,
285
+ 1, 67, :_reduce_31,
286
+ 1, 67, :_reduce_32,
287
+ 7, 54, :_reduce_33,
288
+ 6, 54, :_reduce_34,
289
+ 4, 54, :_reduce_35,
290
+ 1, 69, :_reduce_36,
291
+ 3, 69, :_reduce_37,
292
+ 1, 70, :_reduce_38,
293
+ 2, 55, :_reduce_39,
294
+ 1, 71, :_reduce_40,
295
+ 3, 71, :_reduce_41,
296
+ 1, 49, :_reduce_42,
297
+ 3, 56, :_reduce_43,
298
+ 3, 57, :_reduce_44,
299
+ 1, 60, :_reduce_45,
300
+ 3, 61, :_reduce_46,
301
+ 3, 64, :_reduce_47,
302
+ 1, 64, :_reduce_48,
303
+ 1, 64, :_reduce_49,
304
+ 1, 64, :_reduce_50,
305
+ 1, 64, :_reduce_none,
306
+ 3, 64, :_reduce_52,
307
+ 1, 64, :_reduce_53,
263
308
  1, 64, :_reduce_none,
264
- 1, 64, :_reduce_28,
265
- 1, 64, :_reduce_29,
266
- 1, 64, :_reduce_30,
267
- 7, 51, :_reduce_31,
268
- 6, 51, :_reduce_32,
269
- 4, 51, :_reduce_33,
270
- 1, 66, :_reduce_34,
271
- 3, 66, :_reduce_35,
272
- 1, 67, :_reduce_36,
273
- 2, 52, :_reduce_37,
274
- 1, 47, :_reduce_38,
275
- 3, 53, :_reduce_39,
276
- 3, 54, :_reduce_40,
277
- 1, 57, :_reduce_41,
278
- 3, 58, :_reduce_42,
279
- 3, 61, :_reduce_43,
280
- 1, 61, :_reduce_44,
281
- 1, 61, :_reduce_45,
282
- 1, 61, :_reduce_46,
283
- 1, 61, :_reduce_none,
284
- 3, 61, :_reduce_48,
285
- 1, 61, :_reduce_49,
286
- 1, 61, :_reduce_none,
287
- 1, 61, :_reduce_51,
288
- 1, 61, :_reduce_none,
289
- 1, 61, :_reduce_none,
290
- 2, 59, :_reduce_54,
291
- 5, 60, :_reduce_55,
292
- 1, 72, :_reduce_none,
293
- 2, 72, :_reduce_57,
294
- 1, 74, :_reduce_58,
295
- 1, 74, :_reduce_none,
296
- 1, 74, :_reduce_none,
297
- 1, 73, :_reduce_none,
298
- 2, 73, :_reduce_62,
299
- 1, 75, :_reduce_none,
300
- 1, 75, :_reduce_none,
301
- 1, 75, :_reduce_none,
302
- 6, 70, :_reduce_66,
303
- 1, 76, :_reduce_none,
304
- 3, 76, :_reduce_68,
309
+ 1, 64, :_reduce_55,
310
+ 1, 64, :_reduce_none,
311
+ 1, 64, :_reduce_none,
312
+ 2, 62, :_reduce_58,
313
+ 4, 63, :_reduce_59,
314
+ 1, 76, :_reduce_60,
315
+ 2, 76, :_reduce_61,
305
316
  1, 77, :_reduce_none,
306
- 3, 77, :_reduce_70,
307
- 6, 71, :_reduce_71,
308
- 1, 69, :_reduce_72,
309
- 1, 69, :_reduce_73,
310
- 1, 69, :_reduce_74,
311
- 1, 69, :_reduce_75,
312
- 1, 69, :_reduce_76,
313
- 1, 69, :_reduce_77,
314
- 1, 69, :_reduce_78,
315
- 1, 69, :_reduce_79,
316
- 1, 68, :_reduce_80,
317
- 1, 68, :_reduce_81,
318
- 1, 55, :_reduce_82,
319
- 0, 65, :_reduce_none ]
320
-
321
- racc_reduce_n = 84
322
-
323
- racc_shift_n = 135
317
+ 2, 77, :_reduce_63,
318
+ 1, 79, :_reduce_64,
319
+ 1, 79, :_reduce_none,
320
+ 1, 79, :_reduce_none,
321
+ 1, 78, :_reduce_none,
322
+ 2, 78, :_reduce_68,
323
+ 1, 80, :_reduce_none,
324
+ 1, 80, :_reduce_none,
325
+ 1, 80, :_reduce_none,
326
+ 6, 74, :_reduce_72,
327
+ 1, 81, :_reduce_none,
328
+ 3, 81, :_reduce_74,
329
+ 1, 82, :_reduce_none,
330
+ 3, 82, :_reduce_76,
331
+ 6, 75, :_reduce_77,
332
+ 1, 73, :_reduce_78,
333
+ 1, 73, :_reduce_79,
334
+ 1, 73, :_reduce_80,
335
+ 1, 73, :_reduce_81,
336
+ 1, 73, :_reduce_82,
337
+ 1, 73, :_reduce_83,
338
+ 1, 73, :_reduce_84,
339
+ 1, 73, :_reduce_85,
340
+ 1, 72, :_reduce_86,
341
+ 1, 72, :_reduce_87,
342
+ 1, 58, :_reduce_88,
343
+ 0, 68, :_reduce_none ]
344
+
345
+ racc_reduce_n = 90
346
+
347
+ racc_shift_n = 145
324
348
 
325
349
  racc_token_table = {
326
350
  false => 0,
@@ -340,34 +364,36 @@ racc_token_table = {
340
364
  :STRING => 14,
341
365
  :KEYWORD_MODULE => 15,
342
366
  :CONSTANT => 16,
343
- :IDENTIFIER => 17,
344
- :COMMA => 18,
345
- :KEYWORD_DEF => 19,
346
- :KEYWORD_INCLUDE => 20,
347
- :COMMENT => 21,
348
- :KEYWORD_ASSIGN => 22,
349
- :KEYWORD_ALIAS => 23,
350
- "(" => 24,
351
- ")" => 25,
352
- :INTEGER => 26,
353
- :INSTANCE_VARIABLE => 27,
354
- :KEYWORD_RETURN => 28,
355
- :KEYWORD_CLASS => 29,
356
- :DOT => 30,
357
- :COLON => 31,
358
- :PLUS => 32,
359
- :MINUS => 33,
360
- :MULTIPLY => 34,
361
- :DIVIDE => 35,
362
- :GREATER => 36,
363
- :LESS => 37,
364
- :EQUAL => 38,
365
- :MOD => 39,
366
- :KEYWORD_TRUE => 40,
367
- :KEYWORD_FALSE => 41,
368
- :BLANK_LINE => 42 }
369
-
370
- racc_nt_base = 43
367
+ :KEYWORD_INTERFACE => 17,
368
+ :IDENTIFIER => 18,
369
+ :COMMA => 19,
370
+ :KEYWORD_DEF => 20,
371
+ :KEYWORD_INCLUDE => 21,
372
+ :DCOLON => 22,
373
+ :COMMENT => 23,
374
+ :KEYWORD_ASSIGN => 24,
375
+ :KEYWORD_ALIAS => 25,
376
+ "(" => 26,
377
+ ")" => 27,
378
+ :INTEGER => 28,
379
+ :INSTANCE_VARIABLE => 29,
380
+ :KEYWORD_RETURN => 30,
381
+ :KEYWORD_CLASS => 31,
382
+ :DOT => 32,
383
+ :COLON => 33,
384
+ :PLUS => 34,
385
+ :MINUS => 35,
386
+ :MULTIPLY => 36,
387
+ :DIVIDE => 37,
388
+ :GREATER => 38,
389
+ :LESS => 39,
390
+ :EQUAL => 40,
391
+ :MOD => 41,
392
+ :KEYWORD_TRUE => 42,
393
+ :KEYWORD_FALSE => 43,
394
+ :BLANK_LINE => 44 }
395
+
396
+ racc_nt_base = 45
371
397
 
372
398
  racc_use_result_var = false
373
399
 
@@ -405,10 +431,12 @@ Racc_token_to_s_table = [
405
431
  "STRING",
406
432
  "KEYWORD_MODULE",
407
433
  "CONSTANT",
434
+ "KEYWORD_INTERFACE",
408
435
  "IDENTIFIER",
409
436
  "COMMA",
410
437
  "KEYWORD_DEF",
411
438
  "KEYWORD_INCLUDE",
439
+ "DCOLON",
412
440
  "COMMENT",
413
441
  "KEYWORD_ASSIGN",
414
442
  "KEYWORD_ALIAS",
@@ -437,6 +465,7 @@ Racc_token_to_s_table = [
437
465
  "statement",
438
466
  "comment_statement",
439
467
  "module_statement",
468
+ "interface_statement",
440
469
  "require_statement",
441
470
  "func_call",
442
471
  "func_def",
@@ -456,10 +485,12 @@ Racc_token_to_s_table = [
456
485
  "none",
457
486
  "func_def_args",
458
487
  "func_def_arg",
488
+ "constant_tree",
459
489
  "boolean",
460
490
  "number_operator",
461
491
  "class_new",
462
492
  "class_instance_method_call",
493
+ "class_body",
463
494
  "instance_variables_def",
464
495
  "methods_def",
465
496
  "instance_variable_def",
@@ -513,331 +544,363 @@ module_eval(<<'.,.,', 'parse.y', 17)
513
544
 
514
545
  # reduce 18 omitted
515
546
 
516
- module_eval(<<'.,.,', 'parse.y', 40)
517
- def _reduce_19(val, _values)
547
+ # reduce 19 omitted
548
+
549
+ module_eval(<<'.,.,', 'parse.y', 41)
550
+ def _reduce_20(val, _values)
518
551
  Node.new(:if, val[2], val[4])
519
552
  end
520
553
  .,.,
521
554
 
522
- module_eval(<<'.,.,', 'parse.y', 43)
523
- def _reduce_20(val, _values)
555
+ module_eval(<<'.,.,', 'parse.y', 44)
556
+ def _reduce_21(val, _values)
524
557
  Node.new(:if_else, val[2], [val[4], val[6]])
525
558
  end
526
559
  .,.,
527
560
 
528
- # reduce 21 omitted
529
-
530
- module_eval(<<'.,.,', 'parse.y', 49)
531
- def _reduce_22(val, _values)
532
- Node.new(:require, val[1])
533
- end
534
- .,.,
561
+ # reduce 22 omitted
535
562
 
536
- module_eval(<<'.,.,', 'parse.y', 53)
563
+ module_eval(<<'.,.,', 'parse.y', 50)
537
564
  def _reduce_23(val, _values)
538
- Node.new(:module, val[1], val[2])
565
+ Node.new(:require, val[1])
539
566
  end
540
567
  .,.,
541
568
 
542
- module_eval(<<'.,.,', 'parse.y', 56)
569
+ module_eval(<<'.,.,', 'parse.y', 54)
543
570
  def _reduce_24(val, _values)
544
- Node.new(:func_call, val[0], val[2])
571
+ Node.new(:module, val[1], val[2])
545
572
  end
546
573
  .,.,
547
574
 
548
575
  module_eval(<<'.,.,', 'parse.y', 59)
549
576
  def _reduce_25(val, _values)
550
- Array(val[0]).flatten
577
+ Node.new(:interface, val[1], val[2])
551
578
  end
552
579
  .,.,
553
580
 
554
- module_eval(<<'.,.,', 'parse.y', 60)
581
+ module_eval(<<'.,.,', 'parse.y', 62)
555
582
  def _reduce_26(val, _values)
556
- [val[0], val[2]].flatten
583
+ Node.new(:func_call, val[0], val[2])
557
584
  end
558
585
  .,.,
559
586
 
560
- # reduce 27 omitted
561
-
562
587
  module_eval(<<'.,.,', 'parse.y', 65)
563
- def _reduce_28(val, _values)
564
- Node.new(:string, val[0])
588
+ def _reduce_27(val, _values)
589
+ Array(val[0]).flatten
565
590
  end
566
591
  .,.,
567
592
 
568
593
  module_eval(<<'.,.,', 'parse.y', 66)
569
- def _reduce_29(val, _values)
570
- Node.new(:variable, val[0])
594
+ def _reduce_28(val, _values)
595
+ [val[0], val[2]].flatten
571
596
  end
572
597
  .,.,
573
598
 
574
- module_eval(<<'.,.,', 'parse.y', 67)
599
+ # reduce 29 omitted
600
+
601
+ module_eval(<<'.,.,', 'parse.y', 71)
575
602
  def _reduce_30(val, _values)
576
- val[0]
603
+ Node.new(:string, val[0])
577
604
  end
578
605
  .,.,
579
606
 
580
- module_eval(<<'.,.,', 'parse.y', 73)
607
+ module_eval(<<'.,.,', 'parse.y', 72)
581
608
  def _reduce_31(val, _values)
582
- Node.new(:func_def, val[1], [val[3], val[5]])
609
+ Node.new(:variable, val[0])
583
610
  end
584
611
  .,.,
585
612
 
586
- module_eval(<<'.,.,', 'parse.y', 76)
613
+ module_eval(<<'.,.,', 'parse.y', 73)
587
614
  def _reduce_32(val, _values)
588
- Node.new(:func_def, val[1], [nil, val[4]])
615
+ val[0]
589
616
  end
590
617
  .,.,
591
618
 
592
619
  module_eval(<<'.,.,', 'parse.y', 79)
593
620
  def _reduce_33(val, _values)
594
- Node.new(:func_def, val[1], [nil, val[2]])
621
+ Node.new(:func_def, val[1], [val[3], val[5]])
595
622
  end
596
623
  .,.,
597
624
 
598
- module_eval(<<'.,.,', 'parse.y', 84)
625
+ module_eval(<<'.,.,', 'parse.y', 82)
599
626
  def _reduce_34(val, _values)
600
- val[0]
627
+ Node.new(:func_def, val[1], [nil, val[4]])
601
628
  end
602
629
  .,.,
603
630
 
604
631
  module_eval(<<'.,.,', 'parse.y', 85)
605
632
  def _reduce_35(val, _values)
606
- [val[0], val[2]].flatten
633
+ Node.new(:func_def, val[1], [nil, val[2]])
607
634
  end
608
635
  .,.,
609
636
 
610
- module_eval(<<'.,.,', 'parse.y', 89)
637
+ module_eval(<<'.,.,', 'parse.y', 90)
611
638
  def _reduce_36(val, _values)
612
- Node.new(:variable, val[0])
639
+ val[0]
613
640
  end
614
641
  .,.,
615
642
 
616
- module_eval(<<'.,.,', 'parse.y', 92)
643
+ module_eval(<<'.,.,', 'parse.y', 91)
617
644
  def _reduce_37(val, _values)
618
- Node.new(:include, val[1])
645
+ [val[0], val[2]].flatten
619
646
  end
620
647
  .,.,
621
648
 
622
- module_eval(<<'.,.,', 'parse.y', 94)
649
+ module_eval(<<'.,.,', 'parse.y', 95)
623
650
  def _reduce_38(val, _values)
624
- Node.new(:comment, val[0])
651
+ Node.new(:variable, val[0])
625
652
  end
626
653
  .,.,
627
654
 
628
- module_eval(<<'.,.,', 'parse.y', 96)
655
+ module_eval(<<'.,.,', 'parse.y', 98)
629
656
  def _reduce_39(val, _values)
630
- Node.new(:assignment, val[0], [val[2]])
657
+ Node.new(:include, val[1])
631
658
  end
632
659
  .,.,
633
660
 
634
- module_eval(<<'.,.,', 'parse.y', 98)
661
+ module_eval(<<'.,.,', 'parse.y', 101)
635
662
  def _reduce_40(val, _values)
636
- Node.new(:constant_assignment, val[0], [val[2]])
663
+ [val[0]]
637
664
  end
638
665
  .,.,
639
666
 
640
- module_eval(<<'.,.,', 'parse.y', 101)
667
+ module_eval(<<'.,.,', 'parse.y', 102)
641
668
  def _reduce_41(val, _values)
642
- Node.new(:return, nil, val[0])
669
+ [val[0], val[2]].flatten
643
670
  end
644
671
  .,.,
645
672
 
646
673
  module_eval(<<'.,.,', 'parse.y', 105)
647
674
  def _reduce_42(val, _values)
648
- Node.new(:alias, val[1], val[2])
675
+ Node.new(:comment, val[0])
649
676
  end
650
677
  .,.,
651
678
 
652
- module_eval(<<'.,.,', 'parse.y', 109)
679
+ module_eval(<<'.,.,', 'parse.y', 107)
653
680
  def _reduce_43(val, _values)
654
- val[0,3].join
681
+ Node.new(:assignment, val[0], [val[2]])
655
682
  end
656
683
  .,.,
657
684
 
658
- module_eval(<<'.,.,', 'parse.y', 110)
685
+ module_eval(<<'.,.,', 'parse.y', 109)
659
686
  def _reduce_44(val, _values)
660
- Node.new(:variable, val[0])
687
+ Node.new(:constant_assignment, val[0], [val[2]])
661
688
  end
662
689
  .,.,
663
690
 
664
- module_eval(<<'.,.,', 'parse.y', 111)
691
+ module_eval(<<'.,.,', 'parse.y', 112)
665
692
  def _reduce_45(val, _values)
666
- Node.new(:string, val[0])
693
+ Node.new(:return, nil, val[0])
667
694
  end
668
695
  .,.,
669
696
 
670
- module_eval(<<'.,.,', 'parse.y', 112)
697
+ module_eval(<<'.,.,', 'parse.y', 116)
671
698
  def _reduce_46(val, _values)
672
- Node.new(:integer, val[0].to_i)
699
+ Node.new(:alias, val[1], val[2])
673
700
  end
674
701
  .,.,
675
702
 
676
- # reduce 47 omitted
703
+ module_eval(<<'.,.,', 'parse.y', 120)
704
+ def _reduce_47(val, _values)
705
+ val[0,3].join
706
+ end
707
+ .,.,
677
708
 
678
- module_eval(<<'.,.,', 'parse.y', 114)
709
+ module_eval(<<'.,.,', 'parse.y', 121)
679
710
  def _reduce_48(val, _values)
680
- Node.new(val[1], nil, [val[0], val[2]])
711
+ Node.new(:variable, val[0])
681
712
  end
682
713
  .,.,
683
714
 
684
- module_eval(<<'.,.,', 'parse.y', 115)
715
+ module_eval(<<'.,.,', 'parse.y', 122)
685
716
  def _reduce_49(val, _values)
717
+ Node.new(:string, val[0])
718
+ end
719
+ .,.,
720
+
721
+ module_eval(<<'.,.,', 'parse.y', 123)
722
+ def _reduce_50(val, _values)
723
+ Node.new(:integer, val[0].to_i)
724
+ end
725
+ .,.,
726
+
727
+ # reduce 51 omitted
728
+
729
+ module_eval(<<'.,.,', 'parse.y', 125)
730
+ def _reduce_52(val, _values)
731
+ Node.new(val[1], nil, [val[0], val[2]])
732
+ end
733
+ .,.,
734
+
735
+ module_eval(<<'.,.,', 'parse.y', 126)
736
+ def _reduce_53(val, _values)
686
737
  Node.new(:constant, val[0])
687
738
  end
688
739
  .,.,
689
740
 
690
- # reduce 50 omitted
741
+ # reduce 54 omitted
691
742
 
692
- module_eval(<<'.,.,', 'parse.y', 117)
693
- def _reduce_51(val, _values)
743
+ module_eval(<<'.,.,', 'parse.y', 128)
744
+ def _reduce_55(val, _values)
694
745
  Node.new(:instance_variable_get, val[0])
695
746
  end
696
747
  .,.,
697
748
 
698
- # reduce 52 omitted
749
+ # reduce 56 omitted
699
750
 
700
- # reduce 53 omitted
751
+ # reduce 57 omitted
701
752
 
702
- module_eval(<<'.,.,', 'parse.y', 124)
703
- def _reduce_54(val, _values)
753
+ module_eval(<<'.,.,', 'parse.y', 135)
754
+ def _reduce_58(val, _values)
704
755
  Node.new(:return, nil, val[1])
705
756
  end
706
757
  .,.,
707
758
 
708
- module_eval(<<'.,.,', 'parse.y', 129)
709
- def _reduce_55(val, _values)
710
- Node.new(:class, val[1], [val[2], val[3]])
759
+ module_eval(<<'.,.,', 'parse.y', 140)
760
+ def _reduce_59(val, _values)
761
+ Node.new(:class, val[1], [val[2][0], val[2][1]])
711
762
  end
712
763
  .,.,
713
764
 
714
- # reduce 56 omitted
765
+ module_eval(<<'.,.,', 'parse.y', 144)
766
+ def _reduce_60(val, _values)
767
+ [nil, nil]
768
+ end
769
+ .,.,
715
770
 
716
- module_eval(<<'.,.,', 'parse.y', 135)
717
- def _reduce_57(val, _values)
771
+ module_eval(<<'.,.,', 'parse.y', 145)
772
+ def _reduce_61(val, _values)
773
+ val
774
+ end
775
+ .,.,
776
+
777
+ # reduce 62 omitted
778
+
779
+ module_eval(<<'.,.,', 'parse.y', 151)
780
+ def _reduce_63(val, _values)
718
781
  val.flatten
719
782
  end
720
783
  .,.,
721
784
 
722
- module_eval(<<'.,.,', 'parse.y', 139)
723
- def _reduce_58(val, _values)
785
+ module_eval(<<'.,.,', 'parse.y', 155)
786
+ def _reduce_64(val, _values)
724
787
  Node.new(:instance_variable_def, val[0])
725
788
  end
726
789
  .,.,
727
790
 
728
- # reduce 59 omitted
791
+ # reduce 65 omitted
729
792
 
730
- # reduce 60 omitted
793
+ # reduce 66 omitted
731
794
 
732
- # reduce 61 omitted
795
+ # reduce 67 omitted
733
796
 
734
- module_eval(<<'.,.,', 'parse.y', 147)
735
- def _reduce_62(val, _values)
797
+ module_eval(<<'.,.,', 'parse.y', 163)
798
+ def _reduce_68(val, _values)
736
799
  val.flatten
737
800
  end
738
801
  .,.,
739
802
 
740
- # reduce 63 omitted
803
+ # reduce 69 omitted
741
804
 
742
- # reduce 64 omitted
805
+ # reduce 70 omitted
743
806
 
744
- # reduce 65 omitted
807
+ # reduce 71 omitted
745
808
 
746
- module_eval(<<'.,.,', 'parse.y', 158)
747
- def _reduce_66(val, _values)
809
+ module_eval(<<'.,.,', 'parse.y', 174)
810
+ def _reduce_72(val, _values)
748
811
  Node.new(:class_method_call, val[0], [val[2], val[4]])
749
812
  end
750
813
  .,.,
751
814
 
752
- # reduce 67 omitted
815
+ # reduce 73 omitted
753
816
 
754
- module_eval(<<'.,.,', 'parse.y', 163)
755
- def _reduce_68(val, _values)
817
+ module_eval(<<'.,.,', 'parse.y', 179)
818
+ def _reduce_74(val, _values)
756
819
  [val[0], val[2]]
757
820
  end
758
821
  .,.,
759
822
 
760
- # reduce 69 omitted
823
+ # reduce 75 omitted
761
824
 
762
- module_eval(<<'.,.,', 'parse.y', 168)
763
- def _reduce_70(val, _values)
825
+ module_eval(<<'.,.,', 'parse.y', 184)
826
+ def _reduce_76(val, _values)
764
827
  [val[0], val[2]]
765
828
  end
766
829
  .,.,
767
830
 
768
- module_eval(<<'.,.,', 'parse.y', 172)
769
- def _reduce_71(val, _values)
831
+ module_eval(<<'.,.,', 'parse.y', 188)
832
+ def _reduce_77(val, _values)
770
833
  Node.new(:class_instance_method_call, val[0], [val[2], val[4]])
771
834
  end
772
835
  .,.,
773
836
 
774
- module_eval(<<'.,.,', 'parse.y', 175)
775
- def _reduce_72(val, _values)
837
+ module_eval(<<'.,.,', 'parse.y', 191)
838
+ def _reduce_78(val, _values)
776
839
  :plus
777
840
  end
778
841
  .,.,
779
842
 
780
- module_eval(<<'.,.,', 'parse.y', 176)
781
- def _reduce_73(val, _values)
843
+ module_eval(<<'.,.,', 'parse.y', 192)
844
+ def _reduce_79(val, _values)
782
845
  :minus
783
846
  end
784
847
  .,.,
785
848
 
786
- module_eval(<<'.,.,', 'parse.y', 177)
787
- def _reduce_74(val, _values)
849
+ module_eval(<<'.,.,', 'parse.y', 193)
850
+ def _reduce_80(val, _values)
788
851
  :multiply
789
852
  end
790
853
  .,.,
791
854
 
792
- module_eval(<<'.,.,', 'parse.y', 178)
793
- def _reduce_75(val, _values)
855
+ module_eval(<<'.,.,', 'parse.y', 194)
856
+ def _reduce_81(val, _values)
794
857
  :divide
795
858
  end
796
859
  .,.,
797
860
 
798
- module_eval(<<'.,.,', 'parse.y', 179)
799
- def _reduce_76(val, _values)
861
+ module_eval(<<'.,.,', 'parse.y', 195)
862
+ def _reduce_82(val, _values)
800
863
  :greater
801
864
  end
802
865
  .,.,
803
866
 
804
- module_eval(<<'.,.,', 'parse.y', 180)
805
- def _reduce_77(val, _values)
867
+ module_eval(<<'.,.,', 'parse.y', 196)
868
+ def _reduce_83(val, _values)
806
869
  :less
807
870
  end
808
871
  .,.,
809
872
 
810
- module_eval(<<'.,.,', 'parse.y', 181)
811
- def _reduce_78(val, _values)
873
+ module_eval(<<'.,.,', 'parse.y', 197)
874
+ def _reduce_84(val, _values)
812
875
  :equal
813
876
  end
814
877
  .,.,
815
878
 
816
- module_eval(<<'.,.,', 'parse.y', 182)
817
- def _reduce_79(val, _values)
879
+ module_eval(<<'.,.,', 'parse.y', 198)
880
+ def _reduce_85(val, _values)
818
881
  :mod
819
882
  end
820
883
  .,.,
821
884
 
822
- module_eval(<<'.,.,', 'parse.y', 186)
823
- def _reduce_80(val, _values)
885
+ module_eval(<<'.,.,', 'parse.y', 202)
886
+ def _reduce_86(val, _values)
824
887
  Node.new(:boolean, true)
825
888
  end
826
889
  .,.,
827
890
 
828
- module_eval(<<'.,.,', 'parse.y', 187)
829
- def _reduce_81(val, _values)
891
+ module_eval(<<'.,.,', 'parse.y', 203)
892
+ def _reduce_87(val, _values)
830
893
  Node.new(:boolean, false)
831
894
  end
832
895
  .,.,
833
896
 
834
- module_eval(<<'.,.,', 'parse.y', 190)
835
- def _reduce_82(val, _values)
897
+ module_eval(<<'.,.,', 'parse.y', 206)
898
+ def _reduce_88(val, _values)
836
899
  Node.new(:blank_line, "")
837
900
  end
838
901
  .,.,
839
902
 
840
- # reduce 83 omitted
903
+ # reduce 89 omitted
841
904
 
842
905
  def _reduce_none(val, _values)
843
906
  val[0]