tecscde 0.6.0

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.
Files changed (237) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rubocop.yml +125 -0
  4. data/.rubocop_todo.yml +188 -0
  5. data/CHANGELOG.md +3 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE +46 -0
  8. data/LICENSE.ja +32 -0
  9. data/README.ja.md +200 -0
  10. data/README.md +35 -0
  11. data/Rakefile +27 -0
  12. data/bin/tecscde +64 -0
  13. data/glade/tecscde-cell-property.glade +205 -0
  14. data/glade/tecscde-celltype-property.glade +172 -0
  15. data/glade/tecscde-celltype.glade +414 -0
  16. data/glade/tecscde-export.glade +161 -0
  17. data/glade/test-cell-plugin.rb +51 -0
  18. data/glade/test-cell-property.rb +35 -0
  19. data/glade/test-export.rb +35 -0
  20. data/glade/test-palette.rb +26 -0
  21. data/lib/tcflow.rb +148 -0
  22. data/lib/tecscde.rb +65 -0
  23. data/lib/tecscde/NewCell.png +0 -0
  24. data/lib/tecscde/SelectArrow.png +0 -0
  25. data/lib/tecscde/attr_tree_view.rb +253 -0
  26. data/lib/tecscde/cell_plugin_dialog.glade +294 -0
  27. data/lib/tecscde/cell_plugin_dialog.rb +89 -0
  28. data/lib/tecscde/celltype_tree_view.rb +105 -0
  29. data/lib/tecscde/change_set_control.rb +35 -0
  30. data/lib/tecscde/change_set_control/change_set.rb +32 -0
  31. data/lib/tecscde/change_set_control/change_set_manager.rb +62 -0
  32. data/lib/tecscde/command.rb +35 -0
  33. data/lib/tecscde/control.rb +491 -0
  34. data/lib/tecscde/highlighted_objects.rb +180 -0
  35. data/lib/tecscde/logger.rb +74 -0
  36. data/lib/tecscde/main_view_and_model.rb +80 -0
  37. data/lib/tecscde/palette.glade +553 -0
  38. data/lib/tecscde/palette.rb +174 -0
  39. data/lib/tecscde/preferences.glade +117 -0
  40. data/lib/tecscde/preferences.rb +44 -0
  41. data/lib/tecscde/tecs_model.rb +1137 -0
  42. data/lib/tecscde/tecs_model/hbar.rb +68 -0
  43. data/lib/tecscde/tecs_model/tm_c_port.rb +122 -0
  44. data/lib/tecscde/tecs_model/tm_c_port_array.rb +98 -0
  45. data/lib/tecscde/tecs_model/tm_cell.rb +496 -0
  46. data/lib/tecscde/tecs_model/tm_e_port.rb +126 -0
  47. data/lib/tecscde/tecs_model/tm_e_port_array.rb +78 -0
  48. data/lib/tecscde/tecs_model/tm_join.rb +293 -0
  49. data/lib/tecscde/tecs_model/tm_join_bar.rb +146 -0
  50. data/lib/tecscde/tecs_model/tm_port.rb +238 -0
  51. data/lib/tecscde/tecs_model/tm_port_array.rb +246 -0
  52. data/lib/tecscde/tecs_model/tm_region.rb +107 -0
  53. data/lib/tecscde/tecs_model/tm_uneditable.rb +68 -0
  54. data/lib/tecscde/tecs_model/vbar.rb +68 -0
  55. data/lib/tecscde/templates/_cell_info.cde.erb +15 -0
  56. data/lib/tecscde/templates/_join_info.cde.erb +28 -0
  57. data/lib/tecscde/templates/main.cde.erb +49 -0
  58. data/lib/tecscde/tm_object.rb +91 -0
  59. data/lib/tecscde/version.rb +4 -0
  60. data/lib/tecscde/view.rb +58 -0
  61. data/lib/tecscde/view/cairo_matrix.rb +90 -0
  62. data/lib/tecscde/view/canvas.rb +59 -0
  63. data/lib/tecscde/view/constants.rb +114 -0
  64. data/lib/tecscde/view/main_view.rb +1245 -0
  65. data/lib/tecsflow.rb +475 -0
  66. data/lib/tecsflow/C_parser.tab.rb +2471 -0
  67. data/lib/tecsflow/C_parser.y.rb +1087 -0
  68. data/lib/tecsflow/classes.rb +421 -0
  69. data/lib/tecsgen.rb +581 -0
  70. data/lib/tecsgen/core/C_parser.tab.rb +2477 -0
  71. data/lib/tecsgen/core/C_parser.y +1032 -0
  72. data/lib/tecsgen/core/bnf-deb.tab.rb +5193 -0
  73. data/lib/tecsgen/core/bnf.tab.rb +5193 -0
  74. data/lib/tecsgen/core/bnf.y +2211 -0
  75. data/lib/tecsgen/core/componentobj.rb +7901 -0
  76. data/lib/tecsgen/core/ctypes.rb +226 -0
  77. data/lib/tecsgen/core/expression.rb +1031 -0
  78. data/lib/tecsgen/core/gen_xml.rb +374 -0
  79. data/lib/tecsgen/core/generate.rb +5206 -0
  80. data/lib/tecsgen/core/location.rb +116 -0
  81. data/lib/tecsgen/core/messages.rb +101 -0
  82. data/lib/tecsgen/core/optimize.rb +456 -0
  83. data/lib/tecsgen/core/plugin.rb +332 -0
  84. data/lib/tecsgen/core/pluginModule.rb +165 -0
  85. data/lib/tecsgen/core/syntaxobj.rb +1234 -0
  86. data/lib/tecsgen/core/tecs_lang.rb +306 -0
  87. data/lib/tecsgen/core/tecsgen.rb +453 -0
  88. data/lib/tecsgen/core/tecsinfo.rb +860 -0
  89. data/lib/tecsgen/core/tool_info.rb +258 -0
  90. data/lib/tecsgen/core/types.rb +1632 -0
  91. data/lib/tecsgen/core/unjoin_plugin.rb +218 -0
  92. data/lib/tecsgen/core/value.rb +650 -0
  93. data/lib/tecsgen/messages/messages_console_en_US.rb +1171 -0
  94. data/lib/tecsgen/messages/messages_console_ja_JP.rb +1171 -0
  95. data/lib/tecsgen/messages/messages_file_en_US.rb +334 -0
  96. data/lib/tecsgen/messages/messages_file_ja_JP.rb +163 -0
  97. data/lib/tecsgen/plugin/ATK1AlarmPlugin.rb +196 -0
  98. data/lib/tecsgen/plugin/ATK1DelayTaskPlugin.rb +106 -0
  99. data/lib/tecsgen/plugin/ATK1EventPlugin.rb +147 -0
  100. data/lib/tecsgen/plugin/ATK1ISRPlugin.rb +174 -0
  101. data/lib/tecsgen/plugin/ATK1KernelPlugin.rb +287 -0
  102. data/lib/tecsgen/plugin/ATK1ResourcePlugin.rb +124 -0
  103. data/lib/tecsgen/plugin/ATK1TaskPlugin.rb +220 -0
  104. data/lib/tecsgen/plugin/C2TECSBridgePlugin.rb +210 -0
  105. data/lib/tecsgen/plugin/CellPlugin.rb +61 -0
  106. data/lib/tecsgen/plugin/CelltypePlugin.rb +72 -0
  107. data/lib/tecsgen/plugin/CompositePlugin.rb +66 -0
  108. data/lib/tecsgen/plugin/DomainPlugin.rb +89 -0
  109. data/lib/tecsgen/plugin/HRP2AlarmHandlerPlugin.rb +76 -0
  110. data/lib/tecsgen/plugin/HRP2Cache.rb +1 -0
  111. data/lib/tecsgen/plugin/HRP2CyclicHandlerPlugin.rb +75 -0
  112. data/lib/tecsgen/plugin/HRP2DataqueuePlugin.rb +68 -0
  113. data/lib/tecsgen/plugin/HRP2EventflagPlugin.rb +68 -0
  114. data/lib/tecsgen/plugin/HRP2FixedSizeMemoryPoolPlugin.rb +68 -0
  115. data/lib/tecsgen/plugin/HRP2HandlerPlugin.rb +117 -0
  116. data/lib/tecsgen/plugin/HRP2KernelObjectPlugin.rb +372 -0
  117. data/lib/tecsgen/plugin/HRP2ObjectPlugin.rb +94 -0
  118. data/lib/tecsgen/plugin/HRP2Plugin.rb +140 -0
  119. data/lib/tecsgen/plugin/HRP2PostHook.rb +111 -0
  120. data/lib/tecsgen/plugin/HRP2PriorityDataqueuePlugin.rb +66 -0
  121. data/lib/tecsgen/plugin/HRP2RPCPlugin.rb +319 -0
  122. data/lib/tecsgen/plugin/HRP2SVCPlugin.rb +473 -0
  123. data/lib/tecsgen/plugin/HRP2SemaphorePlugin.rb +67 -0
  124. data/lib/tecsgen/plugin/HRP2TaskPlugin.rb +200 -0
  125. data/lib/tecsgen/plugin/HRPHandlerPlugin.rb +125 -0
  126. data/lib/tecsgen/plugin/HRPKernelObjectManager.rb +72 -0
  127. data/lib/tecsgen/plugin/HRPKernelObjectPlugin.rb +333 -0
  128. data/lib/tecsgen/plugin/HRPObjectPlugin.rb +93 -0
  129. data/lib/tecsgen/plugin/HRPPlugin.rb +356 -0
  130. data/lib/tecsgen/plugin/HRPRPCPlugin.rb +407 -0
  131. data/lib/tecsgen/plugin/HRPSVCPlugin.rb +859 -0
  132. data/lib/tecsgen/plugin/HRPTaskPlugin.rb +107 -0
  133. data/lib/tecsgen/plugin/Mruby2CBridgePlugin.rb +86 -0
  134. data/lib/tecsgen/plugin/MrubyBridgeCellPlugin.rb +264 -0
  135. data/lib/tecsgen/plugin/MrubyBridgeCelltypePlugin.rb +293 -0
  136. data/lib/tecsgen/plugin/MrubyBridgeCompositePlugin.rb +49 -0
  137. data/lib/tecsgen/plugin/MrubyBridgePlugin.rb +67 -0
  138. data/lib/tecsgen/plugin/MrubyBridgeSignaturePlugin.rb +1307 -0
  139. data/lib/tecsgen/plugin/MrubyInfoBridgePlugin.rb +14 -0
  140. data/lib/tecsgen/plugin/MrubyInfoBridgeSignaturePlugin.rb +994 -0
  141. data/lib/tecsgen/plugin/MultiPlugin.rb +57 -0
  142. data/lib/tecsgen/plugin/NotifierPlugin.rb +1217 -0
  143. data/lib/tecsgen/plugin/OpaqueMarshalerPlugin.rb +81 -0
  144. data/lib/tecsgen/plugin/OpaqueRPCPlugin.rb +323 -0
  145. data/lib/tecsgen/plugin/RPCPlugin.rb +266 -0
  146. data/lib/tecsgen/plugin/RepeatCellPlugin.rb +166 -0
  147. data/lib/tecsgen/plugin/RepeatJoinPlugin.rb +130 -0
  148. data/lib/tecsgen/plugin/SharedOpaqueRPCPlugin.rb +357 -0
  149. data/lib/tecsgen/plugin/SharedRPCPlugin.rb +329 -0
  150. data/lib/tecsgen/plugin/SignaturePlugin.rb +77 -0
  151. data/lib/tecsgen/plugin/TECS2CBridgePlugin.rb +178 -0
  152. data/lib/tecsgen/plugin/TECSInfoPlugin.rb +280 -0
  153. data/lib/tecsgen/plugin/ThroughPlugin.rb +333 -0
  154. data/lib/tecsgen/plugin/TracePlugin.rb +484 -0
  155. data/lib/tecsgen/plugin/lib/GenHRP2Marshaler.rb +761 -0
  156. data/lib/tecsgen/plugin/lib/GenOpaqueMarshaler.rb +1107 -0
  157. data/lib/tecsgen/plugin/lib/GenParamCopy.rb +365 -0
  158. data/lib/tecsgen/plugin/lib/GenTransparentMarshaler.rb +683 -0
  159. data/lib/tecsgen/plugin/lib/MrubyBridgeCelltypePluginModule.rb +283 -0
  160. data/lib/tecsgen/plugin/lib/MrubyBridgeSignaturePluginModule.rb +277 -0
  161. data/lib/tecsgen/version.rb +6 -0
  162. data/samples/FigureSamples/active/active.cde +104 -0
  163. data/samples/FigureSamples/active/active.cdl +20 -0
  164. data/samples/FigureSamples/active/active.pdf +0 -0
  165. data/samples/FigureSamples/active/active.png +0 -0
  166. data/samples/FigureSamples/active/gen/tmp_C_src.c +36 -0
  167. data/samples/FigureSamples/active/gen/tmp_cygwin_tecs.h +1908 -0
  168. data/samples/FigureSamples/active/gen/tmp_plugin_post_code.cdl +0 -0
  169. data/samples/FigureSamples/allocator/allocator-internal.png +0 -0
  170. data/samples/FigureSamples/allocator/allocator.cde +171 -0
  171. data/samples/FigureSamples/allocator/allocator.cdl +58 -0
  172. data/samples/FigureSamples/allocator/allocator.png +0 -0
  173. data/samples/FigureSamples/basic/Makefile +87 -0
  174. data/samples/FigureSamples/basic/SimpleSample-trace.cdl +50 -0
  175. data/samples/FigureSamples/basic/SimpleSample.cde +91 -0
  176. data/samples/FigureSamples/basic/SimpleSample.cdl +47 -0
  177. data/samples/FigureSamples/basic/basic.cde +93 -0
  178. data/samples/FigureSamples/basic/basic.cdl +46 -0
  179. data/samples/FigureSamples/basic/basic.png +0 -0
  180. data/samples/FigureSamples/callback/callback.cde +130 -0
  181. data/samples/FigureSamples/callback/callback.cdl +29 -0
  182. data/samples/FigureSamples/callback/callback.png +0 -0
  183. data/samples/FigureSamples/carray/carray.cde +144 -0
  184. data/samples/FigureSamples/carray/carray.cdl +38 -0
  185. data/samples/FigureSamples/carray/carray.png +0 -0
  186. data/samples/FigureSamples/cearray/cearray.cde +314 -0
  187. data/samples/FigureSamples/cearray/cearray.cdl +60 -0
  188. data/samples/FigureSamples/cearray/cearray.png +0 -0
  189. data/samples/FigureSamples/composite/composite-internal.png +0 -0
  190. data/samples/FigureSamples/composite/composite.cde +216 -0
  191. data/samples/FigureSamples/composite/composite.cdl +95 -0
  192. data/samples/FigureSamples/composite/composite.png +0 -0
  193. data/samples/FigureSamples/earray/earray.cde +142 -0
  194. data/samples/FigureSamples/earray/earray.cdl +38 -0
  195. data/samples/FigureSamples/earray/earray.png +0 -0
  196. data/samples/FigureSamples/join/Makefile +87 -0
  197. data/samples/FigureSamples/join/join.cde +132 -0
  198. data/samples/FigureSamples/join/join.cdl +40 -0
  199. data/samples/FigureSamples/join/join.png +0 -0
  200. data/samples/FigureSamples/relay/Makefile +99 -0
  201. data/samples/FigureSamples/relay/relay-internal.png +0 -0
  202. data/samples/FigureSamples/relay/relay.cde +284 -0
  203. data/samples/FigureSamples/relay/relay.cdl +52 -0
  204. data/samples/FigureSamples/relay/relay.png +0 -0
  205. data/samples/FigureSamples/rpc/Makefile +123 -0
  206. data/samples/FigureSamples/rpc/rpc-expand.png +0 -0
  207. data/samples/FigureSamples/rpc/rpc.cde +245 -0
  208. data/samples/FigureSamples/rpc/rpc.png +0 -0
  209. data/samples/FigureSamples/rpc/rpc_sample.cdl +53 -0
  210. data/samples/SimpleSample/Makefile +25 -0
  211. data/samples/SimpleSample/SimpleSample/Makefile +86 -0
  212. data/samples/SimpleSample/SimpleSample/Makefile-trace +91 -0
  213. data/samples/SimpleSample/SimpleSample/README.txt +106 -0
  214. data/samples/SimpleSample/SimpleSample/SimpleSample-trace.cdl +50 -0
  215. data/samples/SimpleSample/SimpleSample/SimpleSample.cdl +45 -0
  216. data/samples/SimpleSample/SimpleSample/src/tSample.c +77 -0
  217. data/samples/SimpleSample/SimpleSample/src/tSimple.c +48 -0
  218. data/samples/SimpleSample/SimpleSample/src/tecs-types.h +27 -0
  219. data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile +51 -0
  220. data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile-trace +91 -0
  221. data/samples/SimpleSample/SimpleSampleOpaqueRPC/README.txt +106 -0
  222. data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample-trace.cdl +80 -0
  223. data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample.cdl +77 -0
  224. data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSample/Makefile +112 -0
  225. data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSimple/Makefile +109 -0
  226. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSample.c +80 -0
  227. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSimple.c +47 -0
  228. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tTaskMain.c +66 -0
  229. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tecs-types.h +27 -0
  230. data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile +125 -0
  231. data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile-trace +130 -0
  232. data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample-trace.cdl +54 -0
  233. data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample.cdl +53 -0
  234. data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSample.c +80 -0
  235. data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSimple.c +54 -0
  236. data/tecscde.gemspec +41 -0
  237. metadata +353 -0
@@ -0,0 +1,2471 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.4.14
4
+ # from Racc grammer file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+ class TCFLOW_Cparser < Racc::Parser
9
+
10
+ module_eval(<<'...end C_parser.y.rb/module_eval...', 'C_parser.y.rb', 602)
11
+
12
+ RESERVED = {
13
+ # keword
14
+ 'typedef' => :TYPEDEF,
15
+ 'struct' => :STRUCT,
16
+ 'union' => :UNION,
17
+
18
+ # specifier
19
+ # types
20
+ 'void' => :VOID,
21
+ 'char' => :CHAR,
22
+ 'short' => :SHORT,
23
+
24
+ 'volatile'=> :VOLATILE,
25
+ 'const' => :CONST,
26
+ 'extern' => :EXTERN,
27
+
28
+ 'long' => :LONG,
29
+ 'float' => :FLOAT,
30
+ 'double' => :DOUBLE,
31
+ 'signed' => :SIGNED,
32
+ 'unsigned'=> :UNSIGNED,
33
+
34
+ 'int' => :INT,
35
+ 'enum' => :ENUM,
36
+ '__int8' => :__INT8,
37
+ '__int16' => :__INT16,
38
+ '__int32' => :__INT32,
39
+ '__int64' => :__INT64,
40
+ '__bool' => :__BOOL,
41
+
42
+ 'return' => :RETURN,
43
+ 'if' => :IF,
44
+ 'else' => :ELSE,
45
+ 'while' => :WHILE,
46
+ 'do' => :DO,
47
+ 'for' => :FOR,
48
+ 'case' => :CASE,
49
+ 'default' => :DEFAULT,
50
+ 'goto' => :GOTO,
51
+ 'continue' => :CONTINUE,
52
+ 'break' => :BREAK,
53
+ 'static' => :STATIC,
54
+ 'register' => :REGISTER,
55
+ 'auto' => :AUTO,
56
+ 'switch' => :SWITCH,
57
+ 'sizeof' => :SIZEOF,
58
+
59
+ '__inline__' => :__INLINE__,
60
+ '__forceinline' => :__FORCEINLINE,
61
+ 'inline' => :INLINE,
62
+ '__inline' => :INLINE,
63
+
64
+ '__declspec' => :__DECLSPEC,
65
+ '__cdecl' => :__CDECL,
66
+ '__stdcall' => :__STDCALL,
67
+ '__fastcall' => :__FASTCALL,
68
+
69
+ '__extension__' => :EXTENSION,
70
+ '__asm__' => :_ASM,
71
+
72
+ }
73
+
74
+ @@current_locale = []
75
+
76
+ def finalize
77
+
78
+
79
+ end
80
+
81
+ # GCC extension
82
+ @@header_lines =<<EOT
83
+ #ifndef TECS_NO_GCC_EXTENSION_SUPPORT
84
+
85
+ /*
86
+ * these extension can be eliminated also by spefcifying option
87
+ * --no-gcc-extension-support for tecsgen.
88
+ */
89
+ #ifdef __GNUC__
90
+
91
+ #ifndef __attribute__
92
+ #define __attribute__(x)
93
+ #endif
94
+
95
+ #ifndef __extension__
96
+ #define __extension__
97
+ #endif
98
+
99
+ #ifndef __builtin_va_list
100
+ typedef char *__builtin_va_list;
101
+ // #define __builtin_va_list va_list
102
+ #endif
103
+
104
+ #ifndef restrict
105
+ #define restrict
106
+ #define __restrict
107
+ #endif
108
+
109
+ #define __asm__(x)
110
+
111
+ #define __builtin_offsetof( x, y ) (1)
112
+
113
+ #endif /* ifdef __GNUC__ */
114
+ #endif /* TECS_NO_GCC_EXTENSION_SUPPORT */
115
+ EOT
116
+
117
+
118
+ #===
119
+ #files::String ファイル名またはpipe コマンド
120
+
121
+ ##parse
122
+ def parse(files, cpp_cmd)
123
+
124
+ #インスタンス変数
125
+ @current_function = nil
126
+ @type_name_list = {}
127
+ @b_no_type_name = false
128
+ @q = [ :EOF ]
129
+ @processing_file=nil
130
+
131
+ # integer_qualifier = "([Uu][Ll]?[Ll]?|[Ll][Ll]?[Uu]?)?" #これだとうまくいく(厳密でない)
132
+ # integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll][Uu]|[Ll][Uu]|[Ll][Ll]|[Ll])?" #これもうまくいく(厳密でない)
133
+ integer_qualifier = "([Uu](LL|ll|L|l)|(LL|ll|L|l)[Uu]?|[Uu])?"
134
+
135
+ #例外補足1
136
+ begin
137
+ comment = false
138
+
139
+ ## 各ファイルに対する処理
140
+ file2_name = ""
141
+ files.each {|file|
142
+
143
+ if cpp_cmd then
144
+ file2_name = "#{$gen_dir}/tmp_#{file.sub(/.*\//,"")}"
145
+ File.open( file2_name, "w" ){
146
+ |f|
147
+ lines = IO.readlines( file )
148
+ f.puts( @@header_lines )
149
+ f.puts lines
150
+ }
151
+ end
152
+ @processing_file=file
153
+ STDERR.print "reading #{file}\n" #ファイルのパスを表示
154
+ lineno = 0
155
+
156
+ #例外補足2
157
+ begin #実行する処理
158
+ io = nil
159
+ if cpp_cmd
160
+ io = IO.popen( cpp_cmd + " " + file2_name, "r" ) #サブプロセスの標準入出力との間にパイプラインを確立
161
+ file3_name = "#{file2_name}_2.c"
162
+ file3 = File.open( file3_name, "w" )
163
+ else
164
+ io = File.open( file, "r" )
165
+ end
166
+
167
+ ## ioに対する各処理
168
+ io.each {|line|
169
+ lineno += 1
170
+ if cpp_cmd then
171
+ file3.puts line
172
+ end
173
+ col = 1
174
+ line.rstrip! #末尾の空白文字を除去
175
+
176
+ until line.empty? ## untilの処理内容
177
+
178
+ if comment
179
+ case line
180
+ # コメント終了
181
+ when /\A\*\//
182
+ comment = false
183
+ when /\A./
184
+ ;
185
+ end
186
+ # elsif asm_state != :NONE
187
+ # if asm_state == :WAIT_NEXT # __asm が来た直後
188
+ # case line
189
+ # # コメント開始
190
+ # when /\A\s*\{/
191
+ # asm_state = :WAIT_CB # 閉じ括弧待ち
192
+ # when /\As*/
193
+ # asm_state = :WAIT_SC # セミコロン待ち
194
+ # end
195
+ # elsif asm_state == :WAIT_CB # 閉じ括弧待ち
196
+ # case line
197
+ # when /\A.*\}/ # 本当は最短一致にすべきだろう
198
+ # # asm は特種で、通常ブロックが後続するケースはないので
199
+ # asm_state = :NONE
200
+ # when /\A.*/
201
+ # # asm_state = :WAIT_CB # 閉じ括弧待ちの継続
202
+ # end
203
+ # elsif asm_state == :WAIT_SC # セミコロン待ち
204
+ # case line
205
+ # when /\A.*;/
206
+ # asm_state = :NONE # 本当は最短一致にすべきだろう
207
+ # when /\A.*/
208
+ # # asm_state = :WAIT_SC # 閉じ括弧待ちの継続
209
+ # end
210
+ # end
211
+ else
212
+ case line
213
+ # 空白、プリプロセスディレクティブ
214
+ # when /\A#line\s+(\d+)\s+\"(.*)\"\.*$/ ####ここで行番号がうまく拾えない \d
215
+ when /\A#\s+(\d+)\s+\"(.*)\".*$/ #元のセルタイプコード中での行番号表示
216
+ # p "#{$1} #{$2}"
217
+ # lineno = __LINE__
218
+ lineno = $1.to_i - 1 # lineno
219
+ file = $2
220
+ # # プリプロセッサディレクティブ
221
+ when /\A#.*$/
222
+ # 読み飛ばすだけ
223
+ when /\A\s+/
224
+ ;
225
+ # # __asm
226
+ # when /\A__asm/, /\A_asm/
227
+ # asm_state = :WAIT_NEXT
228
+ # 識別子
229
+ when /\A[a-zA-Z_]\w*/
230
+ word = $&
231
+ @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
232
+
233
+ # 浮動小数定数
234
+ when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?([Ff]|[Ll])?/
235
+ @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
236
+ when /\A\.[0-9]+([Ee][+-]?[0-9]+)?([Ff]|[Ll])?/ # . で始まる
237
+ @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
238
+ when /\A[0-9]+[Ee][+-]?[0-9]+([Ff]|[Ll])?/ # . 以下がない
239
+ @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
240
+
241
+ # 16 進数定数 ##! 大文字・小文字区別なし
242
+ when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
243
+ @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
244
+ #when /\A0[Xx][0-9A-Fa-f]+(ULL?|ull?)/, /\A0[Xx][0-9A-Fa-f]+([UL]|[ul])/, /\A0[Xx][0-9A-Fa-f]+/
245
+ # 8 進数定数 ##! 大文字・小文字区別なし
246
+ when /\A0[0-7]+#{integer_qualifier}/
247
+ # when /\A0[0-7]+(UL|ul)/, /\A0[0-7]+([UL]|[ul])/, /\A0[0-7]+/
248
+ @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
249
+ # 整数定数 ##! 大文字・小文字区別なし
250
+ when /\A\d+#{integer_qualifier}/
251
+ # when /\A\d+(UL|ul)/, /\A\d+([UL]|[ul])/, /\A\d+/
252
+ @q << [:INTEGER_CONSTANT, Token.new($&, file, lineno, col)]
253
+ # 文字
254
+ # when /\A'(?:[^'\\]|\\.)'/
255
+ when /\A'(?:[^'\\]|\\.){1,4}'/ # 1〜4文字まで可能とする
256
+ @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
257
+ # 文字列
258
+ # "#include #include #include \"../systask/logtask.cfg\" # 最後の " 忘れ)で無限ループ
259
+ # when /\A"(?:[^"\\]+|\\.)*"/
260
+ when /\A"(?:[^"\\]|\\.)*"/ # これはうまく行くようだ
261
+ @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
262
+ # 行コメント
263
+ when /\A\/\/.*$/
264
+ # # プリプロセッサディレクティブ(ファイル名)
265
+ when /\A\/\*/
266
+ comment = true
267
+ when /\A>>=/, /\A<<=/, /\A>>/, /\A<</, /\A\|\|/, /\A\&\&/, /\A\-\>/, /\A\+\+/, /\A\-\-/
268
+ @q << [$&, Token.new($&, file, lineno, col)]
269
+ when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/, /\A\.\.\./
270
+ @q << [$&, Token.new($&, file, lineno, col)]
271
+ when /\A\::/, /\A==/, /\A!=/, /\A>=/, /\A<=/
272
+ @q << [$&, Token.new($&, file, lineno, col)]
273
+ when /\A./
274
+ @q << [$&, Token.new($&, file, lineno, col)]
275
+ else
276
+ raise
277
+ end
278
+ end
279
+
280
+ line = $'
281
+ col += $&.length
282
+ end ## untilの処理内容
283
+
284
+ } ## ioに対する各処理
285
+ @q << :EOF
286
+ rescue => evar #例外が発生した時の処理、例外の内容を受け取る→例外補足
287
+ error( evar )
288
+ # p $@
289
+ ensure #例外の発生有無にかかわらず最後に必ず実行する処理
290
+ if io
291
+ io.close
292
+ end
293
+ end
294
+ }## 各ファイルに対する処理
295
+
296
+ # 終了の印
297
+ @q << nil
298
+
299
+ @yydebug = true
300
+ do_parse
301
+
302
+ end
303
+ end ##parse
304
+
305
+ ##next_token
306
+ def next_token
307
+
308
+ token = @q.shift
309
+ while token == :EOF # ファイルが空のとき :EOF が連続する
310
+ @type_name_list = {}
311
+ token = @q.shift
312
+ if token.instance_of? Array
313
+ #STDERR.print "parsing #{@processing_file}\n" #ファイルのパスを表示
314
+ end
315
+ end
316
+
317
+ if token then
318
+ @@current_locale = token[1].locale
319
+
320
+ case token[1].val
321
+ when ";", ":", ",", "(", ")", "{", "}"
322
+ set_no_type_name false
323
+ when ".", "->"
324
+ set_no_type_name true
325
+ end
326
+
327
+
328
+ # TYPE_NAME トークンへ置き換え
329
+ # print( "#{token[0]} : #{token[1]}\n" ) #トークン表示
330
+ if @b_no_type_name == false
331
+ if token[0] == :IDENTIFIER #形名、関数名、変数名
332
+ #p token[1].val ###ここに変数名は無い
333
+ #p @current_function ###ここの@global_varに変数格納済み(R/Wカウント済み)
334
+ if @current_function && @current_function.is_local_var?( token[1].val )
335
+ # local 変数または引数
336
+ else
337
+ if @type_name_list[ token[1].val ] then
338
+ #print ("#{token[1]}\n")
339
+ token[0] = :TYPE_NAME
340
+ end
341
+ end
342
+ end
343
+ end
344
+
345
+ #$debug = true ####
346
+ if $b_print_all_token then # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生)
347
+ locale = @@current_locale
348
+ if token then
349
+ print( "#{locale[0]}: line #{locale[1]} : #{token[0]} : '#{token[1].val}'\n" )
350
+ else
351
+ print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
352
+ end
353
+ end
354
+ end
355
+
356
+ token
357
+ end ##next_token
358
+
359
+ ##on_error
360
+ def on_error(t, v, vstack)
361
+ if v == "$" then
362
+ error( "Unexpected EOF" )
363
+ else
364
+ error( "syntax error near '#{v.val}'" )
365
+ end
366
+
367
+ end ##on_error
368
+
369
+ def self.current_locale
370
+ @@current_locale
371
+ end
372
+
373
+ @@n_error = 0
374
+ @@n_warning = 0
375
+
376
+ ##error
377
+ # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切)
378
+ def error( msg )
379
+ @@n_error += 1
380
+ locale = @@current_locale
381
+
382
+ if locale then
383
+ puts "error: #{locale[0]}: line #{locale[1]} #{msg}"
384
+ if locale[0] != nil && locale[0] != @processing_file
385
+ puts " #{locale[0]} is included from #{@processing_file}"
386
+ end
387
+ else
388
+ puts "error: #{msg}"
389
+ end
390
+ end ##error
391
+
392
+ # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切)
393
+ def warning( msg )
394
+ @@n_warning += 1
395
+ locale = @@current_locale
396
+ puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
397
+ end
398
+
399
+ def self.get_n_error
400
+ @@n_error
401
+ end
402
+
403
+ def self.get_n_warning
404
+ @@n_warning
405
+ end
406
+
407
+ def set_no_type_name b_no_type_name
408
+ # print "b_no_type_name=#{b_no_type_name}\n"
409
+ @b_no_type_name = b_no_type_name
410
+ end
411
+
412
+ ...end C_parser.y.rb/module_eval...
413
+ ##### State transition tables begin ###
414
+
415
+ clist = [
416
+ '289,99,100,101,102,103,105,-79,106,70,68,223,223,109,110,236,112,113',
417
+ '114,115,116,117,118,347,34,252,378,278,217,211,213,-79,87,217,236,222',
418
+ '338,38,331,305,38,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,221,313',
419
+ '26,27,29,30,31,34,38,69,67,349,306,35,307,308,309,310,311,312,314,315',
420
+ '316,317,210,38,39,40,41,39,40,41,38,350,50,51,52,53,54,55,56,57,318',
421
+ '289,99,100,101,102,103,105,86,106,351,39,40,41,109,110,321,112,113,114',
422
+ '115,116,117,118,165,165,198,199,39,40,41,208,85,30,31,39,40,41,352,209',
423
+ '305,86,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,221,320,26,27,29,30',
424
+ '31,34,384,164,234,257,306,35,307,308,309,310,311,312,314,315,316,317',
425
+ '373,38,236,34,236,230,198,199,236,35,50,51,52,53,54,55,56,57,318,289',
426
+ '99,100,101,102,103,105,372,106,340,229,192,193,109,110,235,112,113,114',
427
+ '115,116,117,118,236,374,256,387,39,40,41,175,249,236,176,236,177,178',
428
+ '179,180,305,96,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,221,327,26',
429
+ '27,29,30,31,34,73,328,359,72,306,35,307,308,309,310,311,312,314,315',
430
+ '316,317,187,38,187,360,329,188,189,188,189,236,50,51,52,53,54,55,56',
431
+ '57,318,289,99,100,101,102,103,105,231,106,194,195,196,197,109,110,87',
432
+ '112,113,114,115,116,117,118,73,224,187,72,39,40,41,188,189,285,252,285',
433
+ '284,217,284,364,305,207,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,221',
434
+ '206,26,27,29,30,31,34,194,195,196,197,306,35,307,308,309,310,311,312',
435
+ '314,315,316,317,369,38,194,195,196,197,192,193,190,191,50,51,52,53,54',
436
+ '55,56,57,318,289,99,100,101,102,103,105,371,106,192,193,192,193,109',
437
+ '110,203,112,113,114,115,116,117,118,190,191,190,191,39,40,41,192,193',
438
+ '204,205,202,201,375,236,376,305,200,8,9,10,13,14,15,16,17,18,19,20,21',
439
+ '22,23,24,221,3,26,27,29,30,31,34,168,96,166,149,306,35,307,308,309,310',
440
+ '311,312,314,315,316,317,386,38,141,388,97,96,391,89,393,394,50,51,52',
441
+ '53,54,55,56,57,318,289,99,100,101,102,103,105,84,106,79,397,201,200',
442
+ '109,110,202,112,113,114,115,116,117,118,203,58,332,337,39,40,41,339',
443
+ '343,344,330,346,,,,,305,,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24',
444
+ '221,,26,27,29,30,31,34,,,,,306,35,307,308,309,310,311,312,314,315,316',
445
+ '317,,38,,,,,,,,,50,51,52,53,54,55,56,57,318,289,99,100,101,102,103,105',
446
+ ',106,,,,,109,110,,112,113,114,115,116,117,118,252,283,,217,39,40,41',
447
+ ',,,,,38,,,,305,,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,221,,26,27',
448
+ '29,30,31,,,,,,306,,307,308,309,310,311,312,314,315,316,317,39,40,41',
449
+ '238,,,,,,,50,51,52,53,54,55,56,57,318,289,99,100,101,102,103,105,,106',
450
+ ',,,,109,110,,112,113,114,115,116,117,118,,239,240,241,242,243,244,245',
451
+ '246,247,248,,,,,,305,,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,221',
452
+ ',26,27,29,30,31,,,,,,306,,307,308,309,310,311,312,314,315,316,317,,',
453
+ ',,,,,,,,50,51,52,53,54,55,56,57,318,289,99,100,101,102,103,105,,106',
454
+ ',,,,109,110,,112,113,114,115,116,117,118,,,,,,,,,,,,,,,,,305,,8,9,10',
455
+ '13,14,15,16,17,18,19,20,21,22,23,24,221,342,26,27,29,30,31,,,,,,306',
456
+ ',307,308,309,310,311,312,314,315,316,317,,,,,,,,,,,50,51,52,53,54,55',
457
+ '56,57,318,289,99,100,101,102,103,105,,106,,,,,109,110,,112,113,114,115',
458
+ '116,117,118,,,,,,,,,,,,,,,,,305,,8,9,10,13,14,15,16,17,18,19,20,21,22',
459
+ '23,24,221,,26,27,29,30,31,,,,,,306,,307,308,309,310,311,312,314,315',
460
+ '316,317,,,,,,,,,,,50,51,52,53,54,55,56,57,318,289,99,100,101,102,103',
461
+ '105,,106,,,,,109,110,,112,113,114,115,116,117,118,,,,,,,,,,,,,,,,,305',
462
+ ',8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,221,,26,27,29,30,31,,,,',
463
+ ',306,,307,308,309,310,311,312,314,315,316,317,,,,,,,,,,,50,51,52,53',
464
+ '54,55,56,57,318,289,99,100,101,102,103,105,,106,,,,,109,110,,112,113',
465
+ '114,115,116,117,118,,,,,,,,,,,,,,,,,305,,8,9,10,13,14,15,16,17,18,19',
466
+ '20,21,22,23,24,221,,26,27,29,30,31,,,,,,306,,307,308,309,310,311,312',
467
+ '314,315,316,317,48,34,,,,,,35,,,50,51,52,53,54,55,56,57,318,38,,,,,',
468
+ ',,,140,,,,,,,136,,,,,47,,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24',
469
+ ',,26,27,29,30,31,39,40,41,,49,8,9,10,13,14,15,16,17,18,19,20,21,22,23',
470
+ '24,,,26,27,29,30,31,50,51,52,53,54,55,56,57,34,,,,,,35,,,,,,,,,,,,38',
471
+ '50,51,52,53,54,55,56,57,98,99,100,101,102,103,105,,106,,,,60,109,110',
472
+ ',112,113,114,115,116,117,118,,,,,,,335,,,,,,,39,40,41,,,8,9,10,13,14',
473
+ '15,16,17,18,19,20,21,22,23,24,,,26,27,29,30,31,8,9,10,13,14,15,16,17',
474
+ '18,19,20,21,22,23,24,,,26,27,29,30,31,,,,,,50,51,52,53,54,55,56,57,',
475
+ ',,,34,,,34,,,35,,,35,50,51,52,53,54,55,56,57,38,34,,38,,34,,213,283',
476
+ '34,217,35,,,,213,,,217,38,,60,,38,147,,,38,,,,,,,,,,,,,,,,,161,39,40',
477
+ '41,39,40,41,,,,,,,,,,,,,,39,40,41,,39,40,41,,39,40,41,98,99,100,101',
478
+ '102,103,105,,106,,,,,109,110,,112,113,114,115,116,117,118,,,,,,,,,,',
479
+ ',,,,,,,,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,,,26,27,29,30,31',
480
+ '98,99,100,101,102,103,105,,106,,,,,109,110,,112,113,114,115,116,117',
481
+ '118,,,,,,,,,,,,,,,,,,,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,,,26',
482
+ '27,29,30,31,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113,114',
483
+ '115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113',
484
+ '114,115,116,117,118,,,,,,,,,,,154,355,,,,,,8,9,10,13,14,15,16,17,18',
485
+ '19,20,21,22,23,24,,154,26,27,29,30,31,,,,279,8,9,10,13,14,15,16,17,18',
486
+ '19,20,21,22,23,24,,,26,27,29,30,31,,50,51,52,53,54,55,56,57,,,,,,,,',
487
+ ',,,,,,,,,,50,51,52,53,54,55,56,57,8,9,10,13,14,15,16,17,18,19,20,21',
488
+ '22,23,24,,,26,27,29,30,31,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24',
489
+ ',,26,27,29,30,31,,,,,,50,51,52,53,54,55,56,57,,,,,,,,,,,,,,,50,51,52',
490
+ '53,54,55,56,57,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113,114',
491
+ '115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113',
492
+ '114,115,116,117,118,,98,99,100,101,102,103,105,,106,154,,,,109,110,354',
493
+ '112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110',
494
+ ',112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109',
495
+ '110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,',
496
+ '109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106',
497
+ ',,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105,',
498
+ '106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105',
499
+ ',106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103',
500
+ '105,,106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102',
501
+ '103,105,,106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100,101',
502
+ '102,103,105,,106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100',
503
+ '101,102,103,105,,106,,,,,109,110,,112,113,114,115,116,117,118,98,99',
504
+ '100,101,102,103,105,,106,,,,,109,110,,112,113,114,115,116,117,118,98',
505
+ '99,100,101,102,103,105,,106,,,,,109,110,,112,113,114,115,116,117,118',
506
+ '98,99,100,101,102,103,105,,106,,,,,109,110,,112,113,114,115,116,117',
507
+ '118,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113,114,115,116',
508
+ '117,118,98,99,100,101,102,103,105,,106,,286,,,109,110,,112,113,114,115',
509
+ '116,117,118,98,99,100,101,102,103,105,,106,,133,,,109,110,,112,113,114',
510
+ '115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113',
511
+ '114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110,,112',
512
+ '113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110,',
513
+ '112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110',
514
+ ',112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109',
515
+ '110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,',
516
+ '109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106',
517
+ ',,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105,',
518
+ '106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105',
519
+ ',106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103',
520
+ '185,,106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102',
521
+ '103,105,,106,,333,,,109,110,,112,113,114,115,116,117,118,98,99,100,101',
522
+ '102,103,105,,106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100',
523
+ '101,102,103,105,,106,,,,,109,110,,112,113,114,115,116,117,118,98,99',
524
+ '100,101,102,103,105,,106,,,,,109,110,,112,113,114,115,116,117,118,98',
525
+ '99,100,101,102,103,181,,106,,,,,109,110,,112,113,114,115,116,117,118',
526
+ '98,99,100,101,102,103,181,,106,,,,,109,110,,112,113,114,115,116,117',
527
+ '118,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113,114,115,116',
528
+ '117,118,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113,114,115',
529
+ '116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113,114',
530
+ '115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110,,112,113',
531
+ '114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110,,112',
532
+ '113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110,',
533
+ '112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109,110',
534
+ ',112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,,109',
535
+ '110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106,,,,',
536
+ '109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105,,106',
537
+ ',,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105,',
538
+ '106,,,,,109,110,,112,113,114,115,116,117,118,98,99,100,101,102,103,105',
539
+ ',106,,,,,109,110,,112,113,114,115,116,117,118,8,9,10,13,14,15,16,17',
540
+ '18,19,20,21,22,23,24,,,26,27,29,30,31,8,9,10,13,14,15,16,17,18,19,20',
541
+ '21,22,23,24,,157,26,27,29,30,31,8,9,10,13,14,15,16,17,18,19,20,21,22',
542
+ '23,24,221,,26,27,29,30,31,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24',
543
+ ',,26,27,29,30,31,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,,158,26',
544
+ '27,29,30,31,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,,91,26,27,29',
545
+ '30,31,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,,,26,27,29,30,31,8',
546
+ '9,10,13,14,15,16,17,18,19,20,21,22,23,24,221,,26,27,29,30,31,8,9,10',
547
+ '13,14,15,16,17,18,19,20,21,22,23,24,,228,26,27,29,30,31' ]
548
+ racc_action_table = arr = ::Array.new(3121, nil)
549
+ idx = 0
550
+ clist.each do |str|
551
+ str.split(',', -1).each do |i|
552
+ arr[idx] = i.to_i unless i.empty?
553
+ idx += 1
554
+ end
555
+ end
556
+
557
+ clist = [
558
+ '221,221,221,221,221,221,221,62,221,28,25,146,288,221,221,277,221,221',
559
+ '221,221,221,221,221,310,212,173,368,209,173,137,212,62,62,212,368,146',
560
+ '288,173,277,221,77,221,221,221,221,221,221,221,221,221,221,221,221,221',
561
+ '221,221,221,221,221,221,221,221,221,367,37,28,25,312,221,367,221,221',
562
+ '221,221,221,221,221,221,221,221,137,367,173,173,173,77,77,77,38,314',
563
+ '221,221,221,221,221,221,221,221,221,378,378,378,378,378,378,378,59,378',
564
+ '315,37,37,37,378,378,225,378,378,378,378,378,378,378,94,167,272,272',
565
+ '367,367,367,135,59,38,38,38,38,38,316,135,378,377,378,378,378,378,378',
566
+ '378,378,378,378,378,378,378,378,378,378,378,225,378,378,378,378,378',
567
+ '35,377,94,167,178,378,35,378,378,378,378,378,378,378,378,378,378,362',
568
+ '35,353,32,290,160,125,125,362,32,378,378,378,378,378,378,378,378,378',
569
+ '394,394,394,394,394,394,394,353,394,290,160,267,267,394,394,169,394',
570
+ '394,394,394,394,394,394,169,363,177,382,35,35,35,108,171,363,108,382',
571
+ '108,108,108,108,394,165,394,394,394,394,394,394,394,394,394,394,394',
572
+ '394,394,394,394,394,253,394,394,394,394,394,230,33,253,334,33,394,230',
573
+ '394,394,394,394,394,394,394,394,394,394,263,230,262,336,255,263,263',
574
+ '262,262,255,394,394,394,394,394,394,394,394,394,397,397,397,397,397',
575
+ '397,397,163,397,124,124,124,124,397,397,151,397,397,397,397,397,397',
576
+ '397,71,149,121,71,230,230,230,121,121,216,251,281,216,251,281,345,397',
577
+ '134,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397',
578
+ '132,397,397,397,397,397,223,270,270,270,270,397,223,397,397,397,397',
579
+ '397,397,397,397,397,397,348,223,271,271,271,271,123,123,122,122,397',
580
+ '397,397,397,397,397,397,397,397,386,386,386,386,386,386,386,350,386',
581
+ '269,269,266,266,386,386,129,386,386,386,386,386,386,386,265,265,264',
582
+ '264,223,223,223,268,268,130,130,128,127,364,365,366,386,126,386,386',
583
+ '386,386,386,386,386,386,386,386,386,386,386,386,386,386,1,386,386,386',
584
+ '386,386,219,104,97,96,84,386,219,386,386,386,386,386,386,386,386,386',
585
+ '386,380,219,74,383,70,69,387,66,389,392,386,386,386,386,386,386,386',
586
+ '386,386,349,349,349,349,349,349,349,57,349,46,395,274,273,349,349,275',
587
+ '349,349,349,349,349,349,349,276,3,282,287,219,219,219,289,306,307,258',
588
+ '309,,,,,349,,349,349,349,349,349,349,349,349,349,349,349,349,349,349',
589
+ '349,349,,349,349,349,349,349,86,,,,,349,86,349,349,349,349,349,349,349',
590
+ '349,349,349,,86,,,,,,,,,349,349,349,349,349,349,349,349,349,369,369',
591
+ '369,369,369,369,369,,369,,,,,369,369,,369,369,369,369,369,369,369,252',
592
+ '252,,252,86,86,86,,,,,,252,,,,369,,369,369,369,369,369,369,369,369,369',
593
+ '369,369,369,369,369,369,369,,369,369,369,369,369,,,,,,369,,369,369,369',
594
+ '369,369,369,369,369,369,369,252,252,252,170,,,,,,,369,369,369,369,369',
595
+ '369,369,369,369,373,373,373,373,373,373,373,,373,,,,,373,373,,373,373',
596
+ '373,373,373,373,373,,170,170,170,170,170,170,170,170,170,170,,,,,,373',
597
+ ',373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,,373',
598
+ '373,373,373,373,,,,,,373,,373,373,373,373,373,373,373,373,373,373,,',
599
+ ',,,,,,,,373,373,373,373,373,373,373,373,373,293,293,293,293,293,293',
600
+ '293,,293,,,,,293,293,,293,293,293,293,293,293,293,,,,,,,,,,,,,,,,,293',
601
+ ',293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293',
602
+ '293,293,293,293,293,,,,,,293,,293,293,293,293,293,293,293,293,293,293',
603
+ ',,,,,,,,,,293,293,293,293,293,293,293,293,293,374,374,374,374,374,374',
604
+ '374,,374,,,,,374,374,,374,374,374,374,374,374,374,,,,,,,,,,,,,,,,,374',
605
+ ',374,374,374,374,374,374,374,374,374,374,374,374,374,374,374,374,,374',
606
+ '374,374,374,374,,,,,,374,,374,374,374,374,374,374,374,374,374,374,,',
607
+ ',,,,,,,,374,374,374,374,374,374,374,374,374,339,339,339,339,339,339',
608
+ '339,,339,,,,,339,339,,339,339,339,339,339,339,339,,,,,,,,,,,,,,,,,339',
609
+ ',339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,,339',
610
+ '339,339,339,339,,,,,,339,,339,339,339,339,339,339,339,339,339,339,,',
611
+ ',,,,,,,,339,339,339,339,339,339,339,339,339,308,308,308,308,308,308',
612
+ '308,,308,,,,,308,308,,308,308,308,308,308,308,308,,,,,,,,,,,,,,,,,308',
613
+ ',308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,,308',
614
+ '308,308,308,308,,,,,,308,,308,308,308,308,308,308,308,308,308,308,2',
615
+ '2,,,,,,2,,,308,308,308,308,308,308,308,308,308,2,,,,,,,,,73,,,,,,,73',
616
+ ',,,,2,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,,,2,2,2,2,2,2,2,2,,2,73,73,73,73',
617
+ '73,73,73,73,73,73,73,73,73,73,73,,,73,73,73,73,73,2,2,2,2,2,2,2,2,291',
618
+ ',,,,,291,,,,,,,,,,,,291,73,73,73,73,73,73,73,73,346,346,346,346,346',
619
+ '346,346,,346,,,,291,346,346,,346,346,346,346,346,346,346,,,,,,,285,',
620
+ ',,,,,291,291,291,,,346,346,346,346,346,346,346,346,346,346,346,346,346',
621
+ '346,346,,,346,346,346,346,346,285,285,285,285,285,285,285,285,285,285',
622
+ '285,285,285,285,285,,,285,285,285,285,285,,,,,,346,346,346,346,346,346',
623
+ '346,346,,,,,4,,,83,,,4,,,83,285,285,285,285,285,285,285,285,4,213,,83',
624
+ ',93,,213,213,139,213,93,,,,139,,,139,213,,4,,93,83,,,139,,,,,,,,,,,',
625
+ ',,,,,93,4,4,4,83,83,83,,,,,,,,,,,,,,213,213,213,,93,93,93,,139,139,139',
626
+ '185,185,185,185,185,185,185,,185,,,,,185,185,,185,185,185,185,185,185',
627
+ '185,,,,,,,,,,,,,,,,,,,185,185,185,185,185,185,185,185,185,185,185,185',
628
+ '185,185,185,,,185,185,185,185,185,105,105,105,105,105,105,105,,105,',
629
+ ',,,105,105,,105,105,105,105,105,105,105,,,,,,,,,,,,,,,,,,,105,105,105',
630
+ '105,105,105,105,105,105,105,105,105,105,105,105,,,105,105,105,105,105',
631
+ '321,321,321,321,321,321,321,,321,,,,,321,321,,321,321,321,321,321,321',
632
+ '321,87,87,87,87,87,87,87,,87,,,,,87,87,,87,87,87,87,87,87,87,,,,,,,',
633
+ ',,,321,321,,,,,,211,211,211,211,211,211,211,211,211,211,211,211,211',
634
+ '211,211,,87,211,211,211,211,211,,,,211,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6',
635
+ ',,6,6,6,6,6,,211,211,211,211,211,211,211,211,,,,,,,,,,,,,,,,,,,6,6,6',
636
+ '6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,,,7,7,7,7,7,5,5,5,5,5,5,5,5',
637
+ '5,5,5,5,5,5,5,,,5,5,5,5,5,,,,,,7,7,7,7,7,7,7,7,,,,,,,,,,,,,,,5,5,5,5',
638
+ '5,5,5,5,154,154,154,154,154,154,154,,154,,,,,154,154,,154,154,154,154',
639
+ '154,154,154,317,317,317,317,317,317,317,,317,,,,,317,317,,317,317,317',
640
+ '317,317,317,317,,347,347,347,347,347,347,347,,347,154,,,,347,347,317',
641
+ '347,347,347,347,347,347,347,193,193,193,193,193,193,193,,193,,,,,193',
642
+ '193,,193,193,193,193,193,193,193,194,194,194,194,194,194,194,,194,,',
643
+ ',,194,194,,194,194,194,194,194,194,194,195,195,195,195,195,195,195,',
644
+ '195,,,,,195,195,,195,195,195,195,195,195,195,196,196,196,196,196,196',
645
+ '196,,196,,,,,196,196,,196,196,196,196,196,196,196,197,197,197,197,197',
646
+ '197,197,,197,,,,,197,197,,197,197,197,197,197,197,197,198,198,198,198',
647
+ '198,198,198,,198,,,,,198,198,,198,198,198,198,198,198,198,199,199,199',
648
+ '199,199,199,199,,199,,,,,199,199,,199,199,199,199,199,199,199,200,200',
649
+ '200,200,200,200,200,,200,,,,,200,200,,200,200,200,200,200,200,200,201',
650
+ '201,201,201,201,201,201,,201,,,,,201,201,,201,201,201,201,201,201,201',
651
+ '202,202,202,202,202,202,202,,202,,,,,202,202,,202,202,202,202,202,202',
652
+ '202,203,203,203,203,203,203,203,,203,,,,,203,203,,203,203,203,203,203',
653
+ '203,203,204,204,204,204,204,204,204,,204,,,,,204,204,,204,204,204,204',
654
+ '204,204,204,205,205,205,205,205,205,205,,205,,,,,205,205,,205,205,205',
655
+ '205,205,205,205,311,311,311,311,311,311,311,,311,,,,,311,311,,311,311',
656
+ '311,311,311,311,311,217,217,217,217,217,217,217,,217,,217,,,217,217',
657
+ ',217,217,217,217,217,217,217,72,72,72,72,72,72,72,,72,,72,,,72,72,,72',
658
+ '72,72,72,72,72,72,384,384,384,384,384,384,384,,384,,,,,384,384,,384',
659
+ '384,384,384,384,384,384,388,388,388,388,388,388,388,,388,,,,,388,388',
660
+ ',388,388,388,388,388,388,388,231,231,231,231,231,231,231,,231,,,,,231',
661
+ '231,,231,231,231,231,231,231,231,236,236,236,236,236,236,236,,236,,',
662
+ ',,236,236,,236,236,236,236,236,236,236,237,237,237,237,237,237,237,',
663
+ '237,,,,,237,237,,237,237,237,237,237,237,237,249,249,249,249,249,249',
664
+ '249,,249,,,,,249,249,,249,249,249,249,249,249,249,393,393,393,393,393',
665
+ '393,393,,393,,,,,393,393,,393,393,393,393,393,393,393,344,344,344,344',
666
+ '344,344,344,,344,,,,,344,344,,344,344,344,344,344,344,344,343,343,343',
667
+ '343,343,343,343,,343,,,,,343,343,,343,343,343,343,343,343,343,112,112',
668
+ '112,112,112,112,112,,112,,,,,112,112,,112,112,112,112,112,112,112,284',
669
+ '284,284,284,284,284,284,,284,,284,,,284,284,,284,284,284,284,284,284',
670
+ '284,111,111,111,111,111,111,111,,111,,,,,111,111,,111,111,111,111,111',
671
+ '111,111,331,331,331,331,331,331,331,,331,,,,,331,331,,331,331,331,331',
672
+ '331,331,331,166,166,166,166,166,166,166,,166,,,,,166,166,,166,166,166',
673
+ '166,166,166,166,110,110,110,110,110,110,110,,110,,,,,110,110,,110,110',
674
+ '110,110,110,110,110,109,109,109,109,109,109,109,,109,,,,,109,109,,109',
675
+ '109,109,109,109,109,109,328,328,328,328,328,328,328,,328,,,,,328,328',
676
+ ',328,328,328,328,328,328,328,175,175,175,175,175,175,175,,175,,,,,175',
677
+ '175,,175,175,175,175,175,175,175,176,176,176,176,176,176,176,,176,,',
678
+ ',,176,176,,176,176,176,176,176,176,176,375,375,375,375,375,375,375,',
679
+ '375,,,,,375,375,,375,375,375,375,375,375,375,376,376,376,376,376,376',
680
+ '376,,376,,,,,376,376,,376,376,376,376,376,376,376,181,181,181,181,181',
681
+ '181,181,,181,,,,,181,181,,181,181,181,181,181,181,181,187,187,187,187',
682
+ '187,187,187,,187,,,,,187,187,,187,187,187,187,187,187,187,188,188,188',
683
+ '188,188,188,188,,188,,,,,188,188,,188,188,188,188,188,188,188,189,189',
684
+ '189,189,189,189,189,,189,,,,,189,189,,189,189,189,189,189,189,189,190',
685
+ '190,190,190,190,190,190,,190,,,,,190,190,,190,190,190,190,190,190,190',
686
+ '191,191,191,191,191,191,191,,191,,,,,191,191,,191,191,191,191,191,191',
687
+ '191,192,192,192,192,192,192,192,,192,,,,,192,192,,192,192,192,192,192',
688
+ '192,192,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,,,82,82,82,82,82',
689
+ '89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,,89,89,89,89,89,89,143',
690
+ '143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,,143,143',
691
+ '143,143,143,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,,,49,49,49',
692
+ '49,49,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,,90,90,90,90,90,90',
693
+ '67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,,67,67,67,67,67,67,81,81',
694
+ '81,81,81,81,81,81,81,81,81,81,81,81,81,,,81,81,81,81,81,155,155,155',
695
+ '155,155,155,155,155,155,155,155,155,155,155,155,155,,155,155,155,155',
696
+ '155,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,,156',
697
+ '156,156,156,156,156' ]
698
+ racc_action_check = arr = ::Array.new(3121, nil)
699
+ idx = 0
700
+ clist.each do |str|
701
+ str.split(',', -1).each do |i|
702
+ arr[idx] = i.to_i unless i.empty?
703
+ idx += 1
704
+ end
705
+ end
706
+
707
+ racc_action_pointer = [
708
+ nil, 453, 1168, 519, 1395, 1741, 1662, 1719, nil, nil,
709
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
710
+ nil, nil, nil, nil, nil, 8, nil, nil, 7, nil,
711
+ nil, nil, 180, 254, nil, 160, nil, 44, 68, nil,
712
+ nil, nil, nil, nil, nil, nil, 463, nil, nil, 2946,
713
+ nil, nil, nil, nil, nil, nil, nil, 494, nil, 89,
714
+ nil, nil, -10, nil, nil, nil, 425, 2990, nil, 479,
715
+ 422, 312, 2254, 1195, 469, nil, nil, 20, nil, nil,
716
+ nil, 3012, 2880, 1398, 461, nil, 556, 1637, nil, 2902,
717
+ 2968, nil, nil, 1418, 105, nil, 420, 459, nil, nil,
718
+ nil, nil, nil, nil, 450, 1551, nil, nil, 220, 2622,
719
+ 2599, 2530, 2484, nil, nil, nil, nil, nil, nil, nil,
720
+ nil, 302, 364, 356, 277, 152, 417, 396, 394, 374,
721
+ 390, nil, 342, nil, 328, 120, nil, 12, nil, 1422,
722
+ nil, nil, nil, 2924, nil, nil, -6, nil, nil, 312,
723
+ nil, 270, nil, nil, 1839, 3034, 3056, nil, nil, nil,
724
+ 167, nil, nil, 264, nil, 236, 2576, 106, nil, 204,
725
+ 635, 220, nil, 17, nil, 2668, 2691, 221, 164, nil,
726
+ nil, 2760, nil, nil, nil, 1488, nil, 2783, 2806, 2829,
727
+ 2852, 2875, 2898, 1909, 1932, 1955, 1978, 2001, 2024, 2047,
728
+ 2070, 2093, 2116, 2139, 2162, 2185, nil, nil, nil, 25,
729
+ nil, 1636, 22, 1414, nil, nil, 321, 2231, nil, 457,
730
+ nil, -2, nil, 358, nil, 97, nil, nil, nil, nil,
731
+ 259, 2323, nil, nil, nil, nil, 2346, 2369, nil, nil,
732
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 2392,
733
+ nil, 322, 609, 246, nil, 270, nil, nil, 519, nil,
734
+ nil, nil, 260, 258, 400, 398, 380, 182, 399, 378,
735
+ 332, 350, 91, 488, 471, 474, 481, -2, nil, nil,
736
+ nil, 323, 511, nil, 2507, 1315, nil, 509, -5, 485,
737
+ 166, 1266, nil, 790, nil, nil, nil, nil, nil, nil,
738
+ nil, nil, nil, nil, nil, nil, 518, 519, 1087, 521,
739
+ 15, 2208, 27, nil, 87, 67, 95, 1862, nil, nil,
740
+ nil, 1614, nil, nil, nil, nil, nil, nil, 2645, nil,
741
+ nil, 2553, nil, nil, 252, nil, 272, nil, nil, 988,
742
+ nil, nil, nil, 2461, 2438, 263, 1293, 1886, 337, 493,
743
+ 362, nil, nil, 164, nil, nil, nil, nil, nil, nil,
744
+ nil, nil, 170, 213, 424, 416, 393, 61, 17, 592,
745
+ nil, nil, nil, 691, 889, 2714, 2737, 122, 97, nil,
746
+ 405, nil, 215, 438, 2277, nil, 394, 441, 2300, 443,
747
+ nil, nil, 476, 2415, 196, 496, nil, 295, nil ]
748
+
749
+ racc_action_default = [
750
+ -177, -251, -1, -251, -251, -71, -72, -73, -81, -82,
751
+ -83, -84, -85, -86, -87, -88, -89, -90, -91, -92,
752
+ -93, -94, -95, -96, -97, -251, -103, -104, -251, -121,
753
+ -127, -128, -251, -130, -131, -251, -138, -144, -140, -145,
754
+ -146, -147, -176, -178, -179, -180, -188, -182, -183, -251,
755
+ -242, -243, -244, -245, -246, -247, -248, -251, 399, -251,
756
+ -70, -77, -186, -74, -75, -76, -102, -251, -107, -251,
757
+ -120, -129, -251, -251, -251, -139, -144, -141, -142, -181,
758
+ -192, -110, -112, -251, -251, -69, -251, -251, -192, -251,
759
+ -251, -100, -105, -251, -251, -122, -125, -251, -2, -3,
760
+ -4, -5, -6, -7, -8, -251, -10, -12, -22, -251,
761
+ -251, -251, -251, -28, -29, -30, -31, -32, -33, -34,
762
+ -36, -40, -43, -46, -51, -54, -56, -58, -60, -62,
763
+ -64, -68, -251, -134, -251, -251, -137, -148, -151, -155,
764
+ -156, -132, -143, -251, -111, -113, -251, -185, -193, -251,
765
+ -78, -79, -80, -171, -251, -251, -251, -101, -99, -106,
766
+ -251, -109, -114, -116, -118, -124, -251, -251, -11, -251,
767
+ -34, -251, -66, -158, -229, -19, -251, -251, -251, -17,
768
+ -18, -251, -23, -24, -25, -251, -26, -251, -251, -251,
769
+ -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
770
+ -251, -251, -251, -251, -251, -251, -133, -135, -136, -251,
771
+ -149, -251, -160, -251, -153, -154, -161, -251, -189, -251,
772
+ -191, -251, -184, -251, -249, -251, -174, -187, -98, -108,
773
+ -251, -251, -123, -126, -119, -9, -251, -251, -231, -232,
774
+ -233, -234, -235, -236, -237, -238, -239, -240, -241, -251,
775
+ -159, -160, -251, -251, -20, -251, -15, -16, -251, -37,
776
+ -38, -39, -41, -42, -44, -45, -47, -48, -49, -50,
777
+ -52, -53, -55, -57, -59, -61, -63, -251, -157, -150,
778
+ -152, -162, -251, -168, -251, -251, -164, -251, -251, -2,
779
+ -251, -251, -195, -251, -197, -198, -199, -200, -201, -202,
780
+ -203, -204, -205, -206, -207, -208, -251, -251, -251, -251,
781
+ -251, -251, -251, -222, -251, -251, -251, -251, -250, -194,
782
+ -172, -251, -115, -117, -67, -230, -35, -13, -251, -14,
783
+ -27, -251, -163, -166, -251, -169, -251, -165, -190, -251,
784
+ -228, -196, -221, -251, -251, -251, -216, -251, -251, -251,
785
+ -251, -224, -225, -251, -226, -173, -175, -21, -65, -167,
786
+ -170, -218, -251, -251, -251, -215, -251, -251, -251, -251,
787
+ -220, -223, -227, -251, -251, -251, -216, -251, -251, -219,
788
+ -209, -211, -251, -251, -216, -217, -251, -251, -216, -251,
789
+ -210, -212, -251, -216, -251, -251, -213, -251, -214 ]
790
+
791
+ racc_goto_table = [
792
+ 4, 169, 131, 63, 64, 65, 119, 134, 132, 78,
793
+ 71, 162, 152, 254, 146, 171, 184, 131, 215, 366,
794
+ 159, 119, 94, 281, 218, 90, 143, 266, 267, 268,
795
+ 269, 270, 271, 160, 155, 276, 227, 262, 263, 264,
796
+ 265, 275, 232, 182, 183, 119, 186, 156, 142, 383,
797
+ 167, 274, 250, 273, 272, 135, 75, 389, 46, 76,
798
+ 62, 392, 281, 280, 225, 42, 395, 43, 44, 1,
799
+ 88, 139, 255, 80, 324, 325, 293, 169, 253, 226,
800
+ 2, 169, 66, 237, 131, 83, 159, 150, 119, 377,
801
+ 45, 74, 259, 260, 261, 258, 131, nil, nil, nil,
802
+ 119, 277, 233, nil, nil, nil, nil, nil, nil, nil,
803
+ 212, nil, nil, nil, nil, nil, nil, 144, 145, nil,
804
+ nil, 119, 119, 119, 119, 119, 119, 119, 119, 119,
805
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 148,
806
+ 292, 173, nil, nil, 251, nil, nil, 131, 322, 163,
807
+ 288, 119, nil, 287, 326, nil, nil, nil, nil, 77,
808
+ 81, 131, nil, nil, nil, 119, 357, 323, nil, nil,
809
+ 82, nil, nil, nil, nil, nil, nil, nil, 81, 219,
810
+ nil, nil, nil, 119, 212, nil, nil, nil, 82, nil,
811
+ 71, 219, 81, 81, nil, 214, nil, nil, nil, nil,
812
+ 81, 81, 82, 82, nil, nil, nil, nil, nil, 139,
813
+ 82, 82, 341, 353, 131, nil, 81, nil, 119, 336,
814
+ 334, 173, nil, 251, nil, nil, 82, 345, nil, nil,
815
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 362,
816
+ 363, 131, 365, 368, nil, 119, 356, 348, nil, nil,
817
+ nil, 131, nil, nil, 81, 119, nil, nil, 361, nil,
818
+ nil, 358, nil, nil, 82, 119, 81, 81, 370, 74,
819
+ nil, 382, 365, nil, nil, 148, 82, 82, nil, 319,
820
+ 365, nil, nil, 139, 365, nil, 163, nil, 379, 365,
821
+ nil, nil, 380, 381, nil, nil, 81, 385, nil, nil,
822
+ nil, nil, nil, nil, nil, 390, 82, nil, nil, nil,
823
+ nil, nil, nil, 396, nil, nil, 398, nil, nil, nil,
824
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
825
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
826
+ nil, nil, nil, nil, 367 ]
827
+
828
+ racc_goto_check = [
829
+ 26, 5, 23, 26, 26, 26, 9, 48, 24, 46,
830
+ 47, 42, 33, 8, 60, 12, 11, 23, 54, 77,
831
+ 39, 9, 44, 55, 62, 38, 61, 15, 15, 15,
832
+ 15, 16, 16, 41, 61, 21, 62, 13, 13, 14,
833
+ 14, 20, 45, 9, 9, 9, 9, 38, 46, 77,
834
+ 44, 19, 54, 18, 17, 49, 50, 77, 32, 51,
835
+ 32, 77, 55, 53, 56, 57, 77, 58, 59, 1,
836
+ 64, 26, 5, 65, 8, 8, 66, 5, 7, 33,
837
+ 2, 5, 37, 78, 23, 40, 39, 31, 9, 27,
838
+ 25, 32, 11, 11, 11, 12, 23, nil, nil, nil,
839
+ 9, 5, 24, nil, nil, nil, nil, nil, nil, nil,
840
+ 46, nil, nil, nil, nil, nil, nil, 40, 40, nil,
841
+ nil, 9, 9, 9, 9, 9, 9, 9, 9, 9,
842
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 32,
843
+ 67, 40, nil, nil, 46, nil, nil, 23, 42, 32,
844
+ 60, 9, nil, 24, 11, nil, nil, nil, nil, 30,
845
+ 29, 23, nil, nil, nil, 9, 8, 24, nil, nil,
846
+ 30, nil, nil, nil, nil, nil, nil, nil, 29, 40,
847
+ nil, nil, nil, 9, 46, nil, nil, nil, 30, nil,
848
+ 47, 40, 29, 29, nil, 32, nil, nil, nil, nil,
849
+ 29, 29, 30, 30, nil, nil, nil, nil, nil, 26,
850
+ 30, 30, 67, 5, 23, nil, 29, nil, 9, 48,
851
+ 24, 40, nil, 46, nil, nil, 30, 67, nil, nil,
852
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 5,
853
+ 5, 23, 5, 5, nil, 9, 33, 24, nil, nil,
854
+ nil, 23, nil, nil, 29, 9, nil, nil, 67, nil,
855
+ nil, 23, nil, nil, 30, 9, 29, 29, 67, 32,
856
+ nil, 5, 5, nil, nil, 32, 30, 30, nil, 32,
857
+ 5, nil, nil, 26, 5, nil, 32, nil, 67, 5,
858
+ nil, nil, 67, 67, nil, nil, 29, 67, nil, nil,
859
+ nil, nil, nil, nil, nil, 67, 30, nil, nil, nil,
860
+ nil, nil, nil, 67, nil, nil, 67, nil, nil, nil,
861
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
862
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
863
+ nil, nil, nil, nil, 26 ]
864
+
865
+ racc_goto_pointer = [
866
+ nil, 69, 80, nil, nil, -104, nil, -97, -162, -66,
867
+ nil, -95, -90, -153, -153, -167, -167, -146, -148, -151,
868
+ -162, -169, nil, -70, -64, 88, -2, -278, nil, 111,
869
+ 121, 1, 56, -75, nil, nil, nil, 57, -42, -70,
870
+ 36, -60, -82, nil, -47, -123, -29, -22, -66, -18,
871
+ 19, 22, nil, -148, -121, -189, -90, 63, 65, 66,
872
+ -69, -54, -119, nil, 8, 27, -145, -81, nil, nil,
873
+ nil, nil, nil, nil, nil, nil, nil, -327, -87 ]
874
+
875
+ racc_goto_default = [
876
+ nil, nil, nil, 107, 104, 290, 108, nil, 172, 170,
877
+ 111, 120, nil, 121, 122, 123, 124, 125, 126, 127,
878
+ 128, 129, 130, 174, 153, 303, 291, 59, 5, 6,
879
+ 7, 61, 151, nil, 11, 12, 25, nil, nil, 92,
880
+ 93, nil, nil, 28, nil, 95, 32, 33, nil, nil,
881
+ 36, 37, 137, 138, 282, 216, nil, nil, nil, nil,
882
+ nil, nil, 300, 220, nil, nil, nil, nil, 294, 295,
883
+ 296, 297, 298, 299, 301, 302, 304, nil, nil ]
884
+
885
+ racc_reduce_table = [
886
+ 0, 0, :racc_error,
887
+ 1, 102, :_reduce_none,
888
+ 1, 104, :_reduce_2,
889
+ 1, 104, :_reduce_3,
890
+ 1, 104, :_reduce_4,
891
+ 1, 104, :_reduce_5,
892
+ 1, 104, :_reduce_6,
893
+ 1, 104, :_reduce_7,
894
+ 1, 104, :_reduce_8,
895
+ 3, 104, :_reduce_9,
896
+ 1, 105, :_reduce_none,
897
+ 2, 105, :_reduce_none,
898
+ 1, 107, :_reduce_12,
899
+ 4, 107, :_reduce_13,
900
+ 4, 107, :_reduce_14,
901
+ 3, 107, :_reduce_15,
902
+ 3, 107, :_reduce_16,
903
+ 2, 107, :_reduce_17,
904
+ 2, 107, :_reduce_18,
905
+ 0, 108, :_reduce_none,
906
+ 1, 108, :_reduce_none,
907
+ 3, 108, :_reduce_none,
908
+ 1, 110, :_reduce_22,
909
+ 2, 110, :_reduce_23,
910
+ 2, 110, :_reduce_24,
911
+ 2, 110, :_reduce_25,
912
+ 2, 110, :_reduce_26,
913
+ 4, 110, :_reduce_27,
914
+ 1, 111, :_reduce_none,
915
+ 1, 111, :_reduce_none,
916
+ 1, 111, :_reduce_none,
917
+ 1, 111, :_reduce_none,
918
+ 1, 111, :_reduce_none,
919
+ 1, 111, :_reduce_none,
920
+ 1, 112, :_reduce_none,
921
+ 4, 112, :_reduce_35,
922
+ 1, 114, :_reduce_none,
923
+ 3, 114, :_reduce_none,
924
+ 3, 114, :_reduce_none,
925
+ 3, 114, :_reduce_none,
926
+ 1, 115, :_reduce_none,
927
+ 3, 115, :_reduce_none,
928
+ 3, 115, :_reduce_none,
929
+ 1, 116, :_reduce_none,
930
+ 3, 116, :_reduce_none,
931
+ 3, 116, :_reduce_none,
932
+ 1, 117, :_reduce_none,
933
+ 3, 117, :_reduce_none,
934
+ 3, 117, :_reduce_none,
935
+ 3, 117, :_reduce_none,
936
+ 3, 117, :_reduce_none,
937
+ 1, 118, :_reduce_none,
938
+ 3, 118, :_reduce_none,
939
+ 3, 118, :_reduce_none,
940
+ 1, 119, :_reduce_none,
941
+ 3, 119, :_reduce_none,
942
+ 1, 120, :_reduce_none,
943
+ 3, 120, :_reduce_none,
944
+ 1, 121, :_reduce_none,
945
+ 3, 121, :_reduce_none,
946
+ 1, 122, :_reduce_none,
947
+ 3, 122, :_reduce_none,
948
+ 1, 123, :_reduce_none,
949
+ 3, 123, :_reduce_none,
950
+ 1, 124, :_reduce_none,
951
+ 5, 124, :_reduce_none,
952
+ 1, 106, :_reduce_none,
953
+ 3, 106, :_reduce_none,
954
+ 1, 125, :_reduce_none,
955
+ 3, 126, :_reduce_69,
956
+ 2, 126, :_reduce_70,
957
+ 1, 127, :_reduce_none,
958
+ 1, 127, :_reduce_none,
959
+ 1, 127, :_reduce_none,
960
+ 2, 127, :_reduce_none,
961
+ 2, 127, :_reduce_none,
962
+ 2, 127, :_reduce_none,
963
+ 1, 128, :_reduce_77,
964
+ 3, 128, :_reduce_78,
965
+ 1, 132, :_reduce_79,
966
+ 3, 132, :_reduce_80,
967
+ 1, 130, :_reduce_81,
968
+ 1, 130, :_reduce_82,
969
+ 1, 130, :_reduce_83,
970
+ 1, 130, :_reduce_none,
971
+ 1, 130, :_reduce_85,
972
+ 1, 130, :_reduce_86,
973
+ 1, 130, :_reduce_87,
974
+ 1, 130, :_reduce_88,
975
+ 1, 130, :_reduce_89,
976
+ 1, 130, :_reduce_90,
977
+ 1, 130, :_reduce_91,
978
+ 1, 130, :_reduce_92,
979
+ 1, 130, :_reduce_93,
980
+ 1, 130, :_reduce_94,
981
+ 1, 130, :_reduce_95,
982
+ 1, 130, :_reduce_96,
983
+ 1, 130, :_reduce_97,
984
+ 5, 135, :_reduce_none,
985
+ 4, 135, :_reduce_none,
986
+ 3, 135, :_reduce_none,
987
+ 4, 135, :_reduce_none,
988
+ 2, 135, :_reduce_none,
989
+ 1, 137, :_reduce_103,
990
+ 1, 137, :_reduce_104,
991
+ 1, 139, :_reduce_none,
992
+ 2, 139, :_reduce_none,
993
+ 1, 138, :_reduce_none,
994
+ 3, 140, :_reduce_none,
995
+ 2, 140, :_reduce_none,
996
+ 1, 141, :_reduce_none,
997
+ 2, 141, :_reduce_none,
998
+ 1, 141, :_reduce_none,
999
+ 2, 141, :_reduce_none,
1000
+ 1, 142, :_reduce_none,
1001
+ 3, 142, :_reduce_none,
1002
+ 1, 143, :_reduce_none,
1003
+ 3, 143, :_reduce_none,
1004
+ 4, 136, :_reduce_none,
1005
+ 5, 136, :_reduce_none,
1006
+ 2, 136, :_reduce_none,
1007
+ 1, 144, :_reduce_none,
1008
+ 1, 145, :_reduce_none,
1009
+ 3, 145, :_reduce_none,
1010
+ 2, 145, :_reduce_none,
1011
+ 1, 146, :_reduce_none,
1012
+ 3, 146, :_reduce_none,
1013
+ 1, 131, :_reduce_none,
1014
+ 1, 131, :_reduce_none,
1015
+ 2, 133, :_reduce_129,
1016
+ 1, 133, :_reduce_130,
1017
+ 1, 148, :_reduce_131,
1018
+ 3, 148, :_reduce_132,
1019
+ 4, 148, :_reduce_133,
1020
+ 3, 148, :_reduce_134,
1021
+ 4, 148, :_reduce_135,
1022
+ 4, 148, :_reduce_136,
1023
+ 3, 148, :_reduce_137,
1024
+ 1, 147, :_reduce_none,
1025
+ 2, 147, :_reduce_none,
1026
+ 1, 151, :_reduce_none,
1027
+ 2, 151, :_reduce_none,
1028
+ 2, 151, :_reduce_none,
1029
+ 3, 151, :_reduce_none,
1030
+ 1, 151, :_reduce_none,
1031
+ 1, 152, :_reduce_none,
1032
+ 1, 152, :_reduce_none,
1033
+ 1, 152, :_reduce_none,
1034
+ 1, 149, :_reduce_148,
1035
+ 2, 149, :_reduce_149,
1036
+ 3, 149, :_reduce_150,
1037
+ 1, 153, :_reduce_151,
1038
+ 3, 153, :_reduce_152,
1039
+ 2, 154, :_reduce_153,
1040
+ 2, 154, :_reduce_154,
1041
+ 1, 154, :_reduce_155,
1042
+ 1, 150, :_reduce_none,
1043
+ 3, 150, :_reduce_none,
1044
+ 1, 113, :_reduce_none,
1045
+ 2, 113, :_reduce_none,
1046
+ 1, 155, :_reduce_none,
1047
+ 1, 155, :_reduce_none,
1048
+ 2, 155, :_reduce_none,
1049
+ 3, 156, :_reduce_none,
1050
+ 2, 156, :_reduce_none,
1051
+ 3, 156, :_reduce_none,
1052
+ 3, 156, :_reduce_none,
1053
+ 4, 156, :_reduce_none,
1054
+ 2, 156, :_reduce_none,
1055
+ 3, 156, :_reduce_none,
1056
+ 4, 156, :_reduce_none,
1057
+ 1, 134, :_reduce_none,
1058
+ 3, 134, :_reduce_none,
1059
+ 4, 134, :_reduce_none,
1060
+ 1, 157, :_reduce_none,
1061
+ 3, 157, :_reduce_none,
1062
+ 2, 103, :_reduce_none,
1063
+ 0, 103, :_reduce_none,
1064
+ 1, 158, :_reduce_none,
1065
+ 1, 158, :_reduce_none,
1066
+ 1, 158, :_reduce_none,
1067
+ 2, 158, :_reduce_none,
1068
+ 1, 158, :_reduce_none,
1069
+ 1, 158, :_reduce_none,
1070
+ 4, 159, :_reduce_184,
1071
+ 3, 159, :_reduce_185,
1072
+ 0, 165, :_reduce_186,
1073
+ 5, 160, :_reduce_187,
1074
+ 0, 166, :_reduce_188,
1075
+ 4, 160, :_reduce_189,
1076
+ 3, 164, :_reduce_none,
1077
+ 2, 162, :_reduce_none,
1078
+ 0, 162, :_reduce_none,
1079
+ 1, 161, :_reduce_193,
1080
+ 3, 161, :_reduce_194,
1081
+ 1, 167, :_reduce_none,
1082
+ 2, 167, :_reduce_none,
1083
+ 1, 168, :_reduce_none,
1084
+ 1, 168, :_reduce_none,
1085
+ 1, 168, :_reduce_none,
1086
+ 1, 168, :_reduce_none,
1087
+ 1, 168, :_reduce_none,
1088
+ 1, 168, :_reduce_none,
1089
+ 1, 168, :_reduce_none,
1090
+ 1, 168, :_reduce_none,
1091
+ 1, 168, :_reduce_none,
1092
+ 1, 168, :_reduce_none,
1093
+ 1, 168, :_reduce_none,
1094
+ 1, 168, :_reduce_none,
1095
+ 5, 169, :_reduce_none,
1096
+ 7, 169, :_reduce_none,
1097
+ 5, 170, :_reduce_none,
1098
+ 7, 171, :_reduce_none,
1099
+ 9, 172, :_reduce_none,
1100
+ 10, 172, :_reduce_none,
1101
+ 1, 178, :_reduce_none,
1102
+ 0, 178, :_reduce_none,
1103
+ 5, 173, :_reduce_none,
1104
+ 3, 174, :_reduce_none,
1105
+ 4, 174, :_reduce_none,
1106
+ 3, 174, :_reduce_none,
1107
+ 3, 163, :_reduce_none,
1108
+ 2, 163, :_reduce_none,
1109
+ 3, 175, :_reduce_none,
1110
+ 2, 175, :_reduce_none,
1111
+ 2, 175, :_reduce_none,
1112
+ 2, 175, :_reduce_none,
1113
+ 3, 175, :_reduce_none,
1114
+ 2, 176, :_reduce_none,
1115
+ 1, 109, :_reduce_none,
1116
+ 3, 109, :_reduce_230,
1117
+ 1, 179, :_reduce_none,
1118
+ 1, 179, :_reduce_none,
1119
+ 1, 179, :_reduce_none,
1120
+ 1, 179, :_reduce_none,
1121
+ 1, 179, :_reduce_none,
1122
+ 1, 179, :_reduce_none,
1123
+ 1, 179, :_reduce_none,
1124
+ 1, 179, :_reduce_none,
1125
+ 1, 179, :_reduce_none,
1126
+ 1, 179, :_reduce_none,
1127
+ 1, 179, :_reduce_none,
1128
+ 1, 129, :_reduce_none,
1129
+ 1, 129, :_reduce_none,
1130
+ 1, 129, :_reduce_none,
1131
+ 1, 129, :_reduce_none,
1132
+ 1, 129, :_reduce_none,
1133
+ 1, 129, :_reduce_none,
1134
+ 1, 129, :_reduce_none,
1135
+ 4, 129, :_reduce_none,
1136
+ 1, 177, :_reduce_250 ]
1137
+
1138
+ racc_reduce_n = 251
1139
+
1140
+ racc_shift_n = 399
1141
+
1142
+ racc_token_table = {
1143
+ false => 0,
1144
+ :error => 1,
1145
+ :IDENTIFIER => 2,
1146
+ :INTEGER_CONSTANT => 3,
1147
+ :FLOATING_CONSTANT => 4,
1148
+ :OCTAL_CONSTANT => 5,
1149
+ :HEX_CONSTANT => 6,
1150
+ :CHARACTER_LITERAL => 7,
1151
+ "(" => 8,
1152
+ ")" => 9,
1153
+ :STRING_LITERAL => 10,
1154
+ "[" => 11,
1155
+ "]" => 12,
1156
+ "." => 13,
1157
+ "->" => 14,
1158
+ "++" => 15,
1159
+ "--" => 16,
1160
+ "," => 17,
1161
+ :SIZEOF => 18,
1162
+ "&" => 19,
1163
+ "*" => 20,
1164
+ "+" => 21,
1165
+ "-" => 22,
1166
+ "~" => 23,
1167
+ "!" => 24,
1168
+ "/" => 25,
1169
+ "%" => 26,
1170
+ "<<" => 27,
1171
+ ">>" => 28,
1172
+ "<" => 29,
1173
+ ">" => 30,
1174
+ "<=" => 31,
1175
+ ">=" => 32,
1176
+ "==" => 33,
1177
+ "!=" => 34,
1178
+ "^" => 35,
1179
+ "|" => 36,
1180
+ "&&" => 37,
1181
+ "||" => 38,
1182
+ "?" => 39,
1183
+ ":" => 40,
1184
+ ";" => 41,
1185
+ "=" => 42,
1186
+ :VOID => 43,
1187
+ :FLOAT => 44,
1188
+ :DOUBLE => 45,
1189
+ :TYPE_NAME => 46,
1190
+ :CHAR => 47,
1191
+ :SHORT => 48,
1192
+ :INT => 49,
1193
+ :LONG => 50,
1194
+ :SIGNED => 51,
1195
+ :UNSIGNED => 52,
1196
+ :__INT8 => 53,
1197
+ :__INT16 => 54,
1198
+ :__INT32 => 55,
1199
+ :__INT64 => 56,
1200
+ :__BOOL => 57,
1201
+ "{" => 58,
1202
+ "}" => 59,
1203
+ :STRUCT => 60,
1204
+ :UNION => 61,
1205
+ :ENUM => 62,
1206
+ :CONST => 63,
1207
+ :VOLATILE => 64,
1208
+ :__CDECL => 65,
1209
+ :__STDCALL => 66,
1210
+ :__FASTCALL => 67,
1211
+ "..." => 68,
1212
+ :TYPEDEF => 69,
1213
+ :IF => 70,
1214
+ :ELSE => 71,
1215
+ :WHILE => 72,
1216
+ :DO => 73,
1217
+ :FOR => 74,
1218
+ :SWITCH => 75,
1219
+ :CASE => 76,
1220
+ :DEFAULT => 77,
1221
+ :GOTO => 78,
1222
+ :CONTINUE => 79,
1223
+ :BREAK => 80,
1224
+ :RETURN => 81,
1225
+ "+=" => 82,
1226
+ "-=" => 83,
1227
+ "*=" => 84,
1228
+ "/=" => 85,
1229
+ "%=" => 86,
1230
+ "<<=" => 87,
1231
+ ">>=" => 88,
1232
+ "&=" => 89,
1233
+ "|=" => 90,
1234
+ "^=" => 91,
1235
+ :__INLINE__ => 92,
1236
+ :__FORCEINLINE => 93,
1237
+ :INLINE => 94,
1238
+ :EXTERN => 95,
1239
+ :STATIC => 96,
1240
+ :AUTO => 97,
1241
+ :REGISTER => 98,
1242
+ :__DECLSPEC => 99,
1243
+ :_ASM => 100 }
1244
+
1245
+ racc_nt_base = 101
1246
+
1247
+ racc_use_result_var = true
1248
+
1249
+ Racc_arg = [
1250
+ racc_action_table,
1251
+ racc_action_check,
1252
+ racc_action_default,
1253
+ racc_action_pointer,
1254
+ racc_goto_table,
1255
+ racc_goto_check,
1256
+ racc_goto_default,
1257
+ racc_goto_pointer,
1258
+ racc_nt_base,
1259
+ racc_reduce_table,
1260
+ racc_token_table,
1261
+ racc_shift_n,
1262
+ racc_reduce_n,
1263
+ racc_use_result_var ]
1264
+
1265
+ Racc_token_to_s_table = [
1266
+ "$end",
1267
+ "error",
1268
+ "IDENTIFIER",
1269
+ "INTEGER_CONSTANT",
1270
+ "FLOATING_CONSTANT",
1271
+ "OCTAL_CONSTANT",
1272
+ "HEX_CONSTANT",
1273
+ "CHARACTER_LITERAL",
1274
+ "\"(\"",
1275
+ "\")\"",
1276
+ "STRING_LITERAL",
1277
+ "\"[\"",
1278
+ "\"]\"",
1279
+ "\".\"",
1280
+ "\"->\"",
1281
+ "\"++\"",
1282
+ "\"--\"",
1283
+ "\",\"",
1284
+ "SIZEOF",
1285
+ "\"&\"",
1286
+ "\"*\"",
1287
+ "\"+\"",
1288
+ "\"-\"",
1289
+ "\"~\"",
1290
+ "\"!\"",
1291
+ "\"/\"",
1292
+ "\"%\"",
1293
+ "\"<<\"",
1294
+ "\">>\"",
1295
+ "\"<\"",
1296
+ "\">\"",
1297
+ "\"<=\"",
1298
+ "\">=\"",
1299
+ "\"==\"",
1300
+ "\"!=\"",
1301
+ "\"^\"",
1302
+ "\"|\"",
1303
+ "\"&&\"",
1304
+ "\"||\"",
1305
+ "\"?\"",
1306
+ "\":\"",
1307
+ "\";\"",
1308
+ "\"=\"",
1309
+ "VOID",
1310
+ "FLOAT",
1311
+ "DOUBLE",
1312
+ "TYPE_NAME",
1313
+ "CHAR",
1314
+ "SHORT",
1315
+ "INT",
1316
+ "LONG",
1317
+ "SIGNED",
1318
+ "UNSIGNED",
1319
+ "__INT8",
1320
+ "__INT16",
1321
+ "__INT32",
1322
+ "__INT64",
1323
+ "__BOOL",
1324
+ "\"{\"",
1325
+ "\"}\"",
1326
+ "STRUCT",
1327
+ "UNION",
1328
+ "ENUM",
1329
+ "CONST",
1330
+ "VOLATILE",
1331
+ "__CDECL",
1332
+ "__STDCALL",
1333
+ "__FASTCALL",
1334
+ "\"...\"",
1335
+ "TYPEDEF",
1336
+ "IF",
1337
+ "ELSE",
1338
+ "WHILE",
1339
+ "DO",
1340
+ "FOR",
1341
+ "SWITCH",
1342
+ "CASE",
1343
+ "DEFAULT",
1344
+ "GOTO",
1345
+ "CONTINUE",
1346
+ "BREAK",
1347
+ "RETURN",
1348
+ "\"+=\"",
1349
+ "\"-=\"",
1350
+ "\"*=\"",
1351
+ "\"/=\"",
1352
+ "\"%=\"",
1353
+ "\"<<=\"",
1354
+ "\">>=\"",
1355
+ "\"&=\"",
1356
+ "\"|=\"",
1357
+ "\"^=\"",
1358
+ "__INLINE__",
1359
+ "__FORCEINLINE",
1360
+ "INLINE",
1361
+ "EXTERN",
1362
+ "STATIC",
1363
+ "AUTO",
1364
+ "REGISTER",
1365
+ "__DECLSPEC",
1366
+ "_ASM",
1367
+ "$start",
1368
+ "all",
1369
+ "C_parser",
1370
+ "primary_expression",
1371
+ "string_literal_list",
1372
+ "expression",
1373
+ "postfix_expression",
1374
+ "argument_list",
1375
+ "assignment_expression",
1376
+ "unary_expression",
1377
+ "unary_operator",
1378
+ "cast_expression",
1379
+ "type_name",
1380
+ "multiplicative_expression",
1381
+ "additive_expression",
1382
+ "shift_expression",
1383
+ "relational_expression",
1384
+ "equality_expression",
1385
+ "and_expression",
1386
+ "exclusive_or_expression",
1387
+ "inclusive_or_expression",
1388
+ "logical_and_expression",
1389
+ "logical_or_expression",
1390
+ "conditional_expression",
1391
+ "constant_expression",
1392
+ "declaration",
1393
+ "declaration_specifiers",
1394
+ "init_declarator_list",
1395
+ "storage_class",
1396
+ "type_specifier",
1397
+ "type_qualifier",
1398
+ "init_declarator",
1399
+ "declarator",
1400
+ "initializer",
1401
+ "struct_or_union_specifier",
1402
+ "enum_specifier",
1403
+ "struct_or_union",
1404
+ "struct_tag",
1405
+ "struct_declaration_list",
1406
+ "struct_declaration",
1407
+ "type_specifier_qualifier_list",
1408
+ "struct_declarator_list",
1409
+ "struct_declarator",
1410
+ "enum_type",
1411
+ "enumerator_list",
1412
+ "enumerator",
1413
+ "pointer",
1414
+ "direct_declarator",
1415
+ "parameter_type_list",
1416
+ "identifier_list",
1417
+ "pointer0",
1418
+ "call_convention",
1419
+ "parameter_list",
1420
+ "parameter_declaration",
1421
+ "abstract_declarator",
1422
+ "direct_abstract_declarator",
1423
+ "initializer_list",
1424
+ "statement",
1425
+ "typedef",
1426
+ "func_def",
1427
+ "declarator_list",
1428
+ "kr_param_list",
1429
+ "compoundstatement",
1430
+ "kr_param",
1431
+ "@1",
1432
+ "@2",
1433
+ "infunc_statement_list",
1434
+ "infunc_statement",
1435
+ "ifstatement",
1436
+ "whilestatement",
1437
+ "dowhilestatement",
1438
+ "forstatement",
1439
+ "switchstatement",
1440
+ "labelstatement",
1441
+ "gotostatement",
1442
+ "expressionstatement",
1443
+ "asm_statement",
1444
+ "expression_or_empty",
1445
+ "assignment_operator" ]
1446
+
1447
+ Racc_debug_parser = false
1448
+
1449
+ ##### State transition tables end #####
1450
+
1451
+ # reduce 0 omitted
1452
+
1453
+ # reduce 1 omitted
1454
+
1455
+ module_eval(<<'.,.,', 'C_parser.y.rb', 48)
1456
+ def _reduce_2(val, _values, result)
1457
+ result = val[0].val
1458
+ result
1459
+ end
1460
+ .,.,
1461
+
1462
+ module_eval(<<'.,.,', 'C_parser.y.rb', 49)
1463
+ def _reduce_3(val, _values, result)
1464
+ result = nil
1465
+ result
1466
+ end
1467
+ .,.,
1468
+
1469
+ module_eval(<<'.,.,', 'C_parser.y.rb', 50)
1470
+ def _reduce_4(val, _values, result)
1471
+ result = nil
1472
+ result
1473
+ end
1474
+ .,.,
1475
+
1476
+ module_eval(<<'.,.,', 'C_parser.y.rb', 51)
1477
+ def _reduce_5(val, _values, result)
1478
+ result = nil
1479
+ result
1480
+ end
1481
+ .,.,
1482
+
1483
+ module_eval(<<'.,.,', 'C_parser.y.rb', 52)
1484
+ def _reduce_6(val, _values, result)
1485
+ result = nil
1486
+ result
1487
+ end
1488
+ .,.,
1489
+
1490
+ module_eval(<<'.,.,', 'C_parser.y.rb', 53)
1491
+ def _reduce_7(val, _values, result)
1492
+ result = nil
1493
+ result
1494
+ end
1495
+ .,.,
1496
+
1497
+ module_eval(<<'.,.,', 'C_parser.y.rb', 54)
1498
+ def _reduce_8(val, _values, result)
1499
+ result = nil
1500
+ result
1501
+ end
1502
+ .,.,
1503
+
1504
+ module_eval(<<'.,.,', 'C_parser.y.rb', 57)
1505
+ def _reduce_9(val, _values, result)
1506
+ result = nil
1507
+ result
1508
+ end
1509
+ .,.,
1510
+
1511
+ # reduce 10 omitted
1512
+
1513
+ # reduce 11 omitted
1514
+
1515
+ module_eval(<<'.,.,', 'C_parser.y.rb', 66)
1516
+ def _reduce_12(val, _values, result)
1517
+ result = val[0]
1518
+ result
1519
+ end
1520
+ .,.,
1521
+
1522
+ module_eval(<<'.,.,', 'C_parser.y.rb', 70)
1523
+ def _reduce_13(val, _values, result)
1524
+ ####ここのvalにはセル内部変数は無い
1525
+ if val[0]
1526
+ if @current_function
1527
+ @current_function.ref_func val[0].to_sym
1528
+ end
1529
+ result = "#{val[0]}()".to_sym
1530
+ end
1531
+
1532
+ result
1533
+ end
1534
+ .,.,
1535
+
1536
+ module_eval(<<'.,.,', 'C_parser.y.rb', 78)
1537
+ def _reduce_14(val, _values, result)
1538
+ result = "#{val[0]}[]"
1539
+ result
1540
+ end
1541
+ .,.,
1542
+
1543
+ module_eval(<<'.,.,', 'C_parser.y.rb', 79)
1544
+ def _reduce_15(val, _values, result)
1545
+ result = "#{val[0]}.#{val[2]}"
1546
+ result
1547
+ end
1548
+ .,.,
1549
+
1550
+ module_eval(<<'.,.,', 'C_parser.y.rb', 80)
1551
+ def _reduce_16(val, _values, result)
1552
+ result = "#{val[0]}->#{val[2]}"
1553
+ result
1554
+ end
1555
+ .,.,
1556
+
1557
+ module_eval(<<'.,.,', 'C_parser.y.rb', 81)
1558
+ def _reduce_17(val, _values, result)
1559
+ result = val[0]
1560
+ result
1561
+ end
1562
+ .,.,
1563
+
1564
+ module_eval(<<'.,.,', 'C_parser.y.rb', 82)
1565
+ def _reduce_18(val, _values, result)
1566
+ result = val[0]
1567
+ result
1568
+ end
1569
+ .,.,
1570
+
1571
+ # reduce 19 omitted
1572
+
1573
+ # reduce 20 omitted
1574
+
1575
+ # reduce 21 omitted
1576
+
1577
+ module_eval(<<'.,.,', 'C_parser.y.rb', 95)
1578
+ def _reduce_22(val, _values, result)
1579
+ #p val[0] #######ここでglobal変数を持つ
1580
+ if val[0]
1581
+ if /\(\)$/ =~ val[0].to_s then
1582
+ # () で終わっているものは関数として報告済み
1583
+ else
1584
+ if @current_function
1585
+ @current_function.ref_var val[0].to_sym ###########
1586
+ result = val[0].to_sym
1587
+ #p result ####global_var
1588
+ end
1589
+ end
1590
+ end
1591
+
1592
+ result
1593
+ end
1594
+ .,.,
1595
+
1596
+ module_eval(<<'.,.,', 'C_parser.y.rb', 108)
1597
+ def _reduce_23(val, _values, result)
1598
+ result = nil
1599
+ result
1600
+ end
1601
+ .,.,
1602
+
1603
+ module_eval(<<'.,.,', 'C_parser.y.rb', 109)
1604
+ def _reduce_24(val, _values, result)
1605
+ result = nil
1606
+ result
1607
+ end
1608
+ .,.,
1609
+
1610
+ module_eval(<<'.,.,', 'C_parser.y.rb', 110)
1611
+ def _reduce_25(val, _values, result)
1612
+ result = val[1]
1613
+ result
1614
+ end
1615
+ .,.,
1616
+
1617
+ module_eval(<<'.,.,', 'C_parser.y.rb', 111)
1618
+ def _reduce_26(val, _values, result)
1619
+ result = nil
1620
+ result
1621
+ end
1622
+ .,.,
1623
+
1624
+ module_eval(<<'.,.,', 'C_parser.y.rb', 112)
1625
+ def _reduce_27(val, _values, result)
1626
+ result = nil
1627
+ result
1628
+ end
1629
+ .,.,
1630
+
1631
+ # reduce 28 omitted
1632
+
1633
+ # reduce 29 omitted
1634
+
1635
+ # reduce 30 omitted
1636
+
1637
+ # reduce 31 omitted
1638
+
1639
+ # reduce 32 omitted
1640
+
1641
+ # reduce 33 omitted
1642
+
1643
+ # reduce 34 omitted
1644
+
1645
+ module_eval(<<'.,.,', 'C_parser.y.rb', 124)
1646
+ def _reduce_35(val, _values, result)
1647
+ result = val[3]
1648
+ result
1649
+ end
1650
+ .,.,
1651
+
1652
+ # reduce 36 omitted
1653
+
1654
+ # reduce 37 omitted
1655
+
1656
+ # reduce 38 omitted
1657
+
1658
+ # reduce 39 omitted
1659
+
1660
+ # reduce 40 omitted
1661
+
1662
+ # reduce 41 omitted
1663
+
1664
+ # reduce 42 omitted
1665
+
1666
+ # reduce 43 omitted
1667
+
1668
+ # reduce 44 omitted
1669
+
1670
+ # reduce 45 omitted
1671
+
1672
+ # reduce 46 omitted
1673
+
1674
+ # reduce 47 omitted
1675
+
1676
+ # reduce 48 omitted
1677
+
1678
+ # reduce 49 omitted
1679
+
1680
+ # reduce 50 omitted
1681
+
1682
+ # reduce 51 omitted
1683
+
1684
+ # reduce 52 omitted
1685
+
1686
+ # reduce 53 omitted
1687
+
1688
+ # reduce 54 omitted
1689
+
1690
+ # reduce 55 omitted
1691
+
1692
+ # reduce 56 omitted
1693
+
1694
+ # reduce 57 omitted
1695
+
1696
+ # reduce 58 omitted
1697
+
1698
+ # reduce 59 omitted
1699
+
1700
+ # reduce 60 omitted
1701
+
1702
+ # reduce 61 omitted
1703
+
1704
+ # reduce 62 omitted
1705
+
1706
+ # reduce 63 omitted
1707
+
1708
+ # reduce 64 omitted
1709
+
1710
+ # reduce 65 omitted
1711
+
1712
+ # reduce 66 omitted
1713
+
1714
+ # reduce 67 omitted
1715
+
1716
+ # reduce 68 omitted
1717
+
1718
+ module_eval(<<'.,.,', 'C_parser.y.rb', 218)
1719
+ def _reduce_69(val, _values, result)
1720
+ result = val[1]
1721
+ result
1722
+ end
1723
+ .,.,
1724
+
1725
+ module_eval(<<'.,.,', 'C_parser.y.rb', 219)
1726
+ def _reduce_70(val, _values, result)
1727
+ result = nil
1728
+ result
1729
+ end
1730
+ .,.,
1731
+
1732
+ # reduce 71 omitted
1733
+
1734
+ # reduce 72 omitted
1735
+
1736
+ # reduce 73 omitted
1737
+
1738
+ # reduce 74 omitted
1739
+
1740
+ # reduce 75 omitted
1741
+
1742
+ # reduce 76 omitted
1743
+
1744
+ module_eval(<<'.,.,', 'C_parser.y.rb', 230)
1745
+ def _reduce_77(val, _values, result)
1746
+ result = [ val[0] ]
1747
+ result
1748
+ end
1749
+ .,.,
1750
+
1751
+ module_eval(<<'.,.,', 'C_parser.y.rb', 233)
1752
+ def _reduce_78(val, _values, result)
1753
+ result << val[2]
1754
+
1755
+ result
1756
+ end
1757
+ .,.,
1758
+
1759
+ module_eval(<<'.,.,', 'C_parser.y.rb', 237)
1760
+ def _reduce_79(val, _values, result)
1761
+ result = val[0]
1762
+ result
1763
+ end
1764
+ .,.,
1765
+
1766
+ module_eval(<<'.,.,', 'C_parser.y.rb', 238)
1767
+ def _reduce_80(val, _values, result)
1768
+ result = val[0]
1769
+ result
1770
+ end
1771
+ .,.,
1772
+
1773
+ module_eval(<<'.,.,', 'C_parser.y.rb', 241)
1774
+ def _reduce_81(val, _values, result)
1775
+ set_no_type_name true
1776
+ result
1777
+ end
1778
+ .,.,
1779
+
1780
+ module_eval(<<'.,.,', 'C_parser.y.rb', 242)
1781
+ def _reduce_82(val, _values, result)
1782
+ set_no_type_name true
1783
+ result
1784
+ end
1785
+ .,.,
1786
+
1787
+ module_eval(<<'.,.,', 'C_parser.y.rb', 243)
1788
+ def _reduce_83(val, _values, result)
1789
+ set_no_type_name true
1790
+ result
1791
+ end
1792
+ .,.,
1793
+
1794
+ # reduce 84 omitted
1795
+
1796
+ module_eval(<<'.,.,', 'C_parser.y.rb', 245)
1797
+ def _reduce_85(val, _values, result)
1798
+ set_no_type_name true
1799
+ result
1800
+ end
1801
+ .,.,
1802
+
1803
+ module_eval(<<'.,.,', 'C_parser.y.rb', 246)
1804
+ def _reduce_86(val, _values, result)
1805
+ set_no_type_name true
1806
+ result
1807
+ end
1808
+ .,.,
1809
+
1810
+ module_eval(<<'.,.,', 'C_parser.y.rb', 247)
1811
+ def _reduce_87(val, _values, result)
1812
+ set_no_type_name true
1813
+ result
1814
+ end
1815
+ .,.,
1816
+
1817
+ module_eval(<<'.,.,', 'C_parser.y.rb', 248)
1818
+ def _reduce_88(val, _values, result)
1819
+ set_no_type_name true
1820
+ result
1821
+ end
1822
+ .,.,
1823
+
1824
+ module_eval(<<'.,.,', 'C_parser.y.rb', 249)
1825
+ def _reduce_89(val, _values, result)
1826
+ set_no_type_name true
1827
+ result
1828
+ end
1829
+ .,.,
1830
+
1831
+ module_eval(<<'.,.,', 'C_parser.y.rb', 250)
1832
+ def _reduce_90(val, _values, result)
1833
+ set_no_type_name true
1834
+ result
1835
+ end
1836
+ .,.,
1837
+
1838
+ module_eval(<<'.,.,', 'C_parser.y.rb', 251)
1839
+ def _reduce_91(val, _values, result)
1840
+ set_no_type_name true
1841
+ result
1842
+ end
1843
+ .,.,
1844
+
1845
+ module_eval(<<'.,.,', 'C_parser.y.rb', 252)
1846
+ def _reduce_92(val, _values, result)
1847
+ set_no_type_name true
1848
+ result
1849
+ end
1850
+ .,.,
1851
+
1852
+ module_eval(<<'.,.,', 'C_parser.y.rb', 253)
1853
+ def _reduce_93(val, _values, result)
1854
+ set_no_type_name true
1855
+ result
1856
+ end
1857
+ .,.,
1858
+
1859
+ module_eval(<<'.,.,', 'C_parser.y.rb', 254)
1860
+ def _reduce_94(val, _values, result)
1861
+ set_no_type_name true
1862
+ result
1863
+ end
1864
+ .,.,
1865
+
1866
+ module_eval(<<'.,.,', 'C_parser.y.rb', 255)
1867
+ def _reduce_95(val, _values, result)
1868
+ set_no_type_name true
1869
+ result
1870
+ end
1871
+ .,.,
1872
+
1873
+ module_eval(<<'.,.,', 'C_parser.y.rb', 256)
1874
+ def _reduce_96(val, _values, result)
1875
+ set_no_type_name true
1876
+ result
1877
+ end
1878
+ .,.,
1879
+
1880
+ module_eval(<<'.,.,', 'C_parser.y.rb', 257)
1881
+ def _reduce_97(val, _values, result)
1882
+ set_no_type_name true
1883
+ result
1884
+ end
1885
+ .,.,
1886
+
1887
+ # reduce 98 omitted
1888
+
1889
+ # reduce 99 omitted
1890
+
1891
+ # reduce 100 omitted
1892
+
1893
+ # reduce 101 omitted
1894
+
1895
+ # reduce 102 omitted
1896
+
1897
+ module_eval(<<'.,.,', 'C_parser.y.rb', 268)
1898
+ def _reduce_103(val, _values, result)
1899
+ set_no_type_name true
1900
+ result
1901
+ end
1902
+ .,.,
1903
+
1904
+ module_eval(<<'.,.,', 'C_parser.y.rb', 269)
1905
+ def _reduce_104(val, _values, result)
1906
+ set_no_type_name true
1907
+ result
1908
+ end
1909
+ .,.,
1910
+
1911
+ # reduce 105 omitted
1912
+
1913
+ # reduce 106 omitted
1914
+
1915
+ # reduce 107 omitted
1916
+
1917
+ # reduce 108 omitted
1918
+
1919
+ # reduce 109 omitted
1920
+
1921
+ # reduce 110 omitted
1922
+
1923
+ # reduce 111 omitted
1924
+
1925
+ # reduce 112 omitted
1926
+
1927
+ # reduce 113 omitted
1928
+
1929
+ # reduce 114 omitted
1930
+
1931
+ # reduce 115 omitted
1932
+
1933
+ # reduce 116 omitted
1934
+
1935
+ # reduce 117 omitted
1936
+
1937
+ # reduce 118 omitted
1938
+
1939
+ # reduce 119 omitted
1940
+
1941
+ # reduce 120 omitted
1942
+
1943
+ # reduce 121 omitted
1944
+
1945
+ # reduce 122 omitted
1946
+
1947
+ # reduce 123 omitted
1948
+
1949
+ # reduce 124 omitted
1950
+
1951
+ # reduce 125 omitted
1952
+
1953
+ # reduce 126 omitted
1954
+
1955
+ # reduce 127 omitted
1956
+
1957
+ # reduce 128 omitted
1958
+
1959
+ module_eval(<<'.,.,', 'C_parser.y.rb', 322)
1960
+ def _reduce_129(val, _values, result)
1961
+ result = val[1]
1962
+ result
1963
+ end
1964
+ .,.,
1965
+
1966
+ module_eval(<<'.,.,', 'C_parser.y.rb', 323)
1967
+ def _reduce_130(val, _values, result)
1968
+ result = val[0]
1969
+ result
1970
+ end
1971
+ .,.,
1972
+
1973
+ module_eval(<<'.,.,', 'C_parser.y.rb', 326)
1974
+ def _reduce_131(val, _values, result)
1975
+ result = val[0].val
1976
+ result
1977
+ end
1978
+ .,.,
1979
+
1980
+ module_eval(<<'.,.,', 'C_parser.y.rb', 327)
1981
+ def _reduce_132(val, _values, result)
1982
+ result = val[1]
1983
+ result
1984
+ end
1985
+ .,.,
1986
+
1987
+ module_eval(<<'.,.,', 'C_parser.y.rb', 328)
1988
+ def _reduce_133(val, _values, result)
1989
+ result = val[0]
1990
+ result
1991
+ end
1992
+ .,.,
1993
+
1994
+ module_eval(<<'.,.,', 'C_parser.y.rb', 329)
1995
+ def _reduce_134(val, _values, result)
1996
+ result = val[0]
1997
+ result
1998
+ end
1999
+ .,.,
2000
+
2001
+ module_eval(<<'.,.,', 'C_parser.y.rb', 330)
2002
+ def _reduce_135(val, _values, result)
2003
+ result = val[0]
2004
+ result
2005
+ end
2006
+ .,.,
2007
+
2008
+ module_eval(<<'.,.,', 'C_parser.y.rb', 331)
2009
+ def _reduce_136(val, _values, result)
2010
+ result = val[0]
2011
+ result
2012
+ end
2013
+ .,.,
2014
+
2015
+ module_eval(<<'.,.,', 'C_parser.y.rb', 332)
2016
+ def _reduce_137(val, _values, result)
2017
+ result = val[0]
2018
+ result
2019
+ end
2020
+ .,.,
2021
+
2022
+ # reduce 138 omitted
2023
+
2024
+ # reduce 139 omitted
2025
+
2026
+ # reduce 140 omitted
2027
+
2028
+ # reduce 141 omitted
2029
+
2030
+ # reduce 142 omitted
2031
+
2032
+ # reduce 143 omitted
2033
+
2034
+ # reduce 144 omitted
2035
+
2036
+ # reduce 145 omitted
2037
+
2038
+ # reduce 146 omitted
2039
+
2040
+ # reduce 147 omitted
2041
+
2042
+ module_eval(<<'.,.,', 'C_parser.y.rb', 350)
2043
+ def _reduce_148(val, _values, result)
2044
+ TCFlow::Function.param_list val[0]
2045
+ result
2046
+ end
2047
+ .,.,
2048
+
2049
+ module_eval(<<'.,.,', 'C_parser.y.rb', 351)
2050
+ def _reduce_149(val, _values, result)
2051
+ TCFlow::Function.param_list val[0]
2052
+ result
2053
+ end
2054
+ .,.,
2055
+
2056
+ module_eval(<<'.,.,', 'C_parser.y.rb', 352)
2057
+ def _reduce_150(val, _values, result)
2058
+ TCFlow::Function.param_list val[0]
2059
+ result
2060
+ end
2061
+ .,.,
2062
+
2063
+ module_eval(<<'.,.,', 'C_parser.y.rb', 357)
2064
+ def _reduce_151(val, _values, result)
2065
+ if val[0]
2066
+ result = [val[0]]
2067
+ else
2068
+ result = nil
2069
+ end
2070
+
2071
+ result
2072
+ end
2073
+ .,.,
2074
+
2075
+ module_eval(<<'.,.,', 'C_parser.y.rb', 365)
2076
+ def _reduce_152(val, _values, result)
2077
+ if val[0] && val[2]
2078
+ result << val[2]
2079
+ elsif val[2]
2080
+ result = [ val[2] ] # これは文法エラー時しかありえない
2081
+ end
2082
+
2083
+ result
2084
+ end
2085
+ .,.,
2086
+
2087
+ module_eval(<<'.,.,', 'C_parser.y.rb', 376)
2088
+ def _reduce_153(val, _values, result)
2089
+ result = val[1]
2090
+ result
2091
+ end
2092
+ .,.,
2093
+
2094
+ module_eval(<<'.,.,', 'C_parser.y.rb', 378)
2095
+ def _reduce_154(val, _values, result)
2096
+ result = nil
2097
+ result
2098
+ end
2099
+ .,.,
2100
+
2101
+ module_eval(<<'.,.,', 'C_parser.y.rb', 380)
2102
+ def _reduce_155(val, _values, result)
2103
+ result = nil
2104
+ result
2105
+ end
2106
+ .,.,
2107
+
2108
+ # reduce 156 omitted
2109
+
2110
+ # reduce 157 omitted
2111
+
2112
+ # reduce 158 omitted
2113
+
2114
+ # reduce 159 omitted
2115
+
2116
+ # reduce 160 omitted
2117
+
2118
+ # reduce 161 omitted
2119
+
2120
+ # reduce 162 omitted
2121
+
2122
+ # reduce 163 omitted
2123
+
2124
+ # reduce 164 omitted
2125
+
2126
+ # reduce 165 omitted
2127
+
2128
+ # reduce 166 omitted
2129
+
2130
+ # reduce 167 omitted
2131
+
2132
+ # reduce 168 omitted
2133
+
2134
+ # reduce 169 omitted
2135
+
2136
+ # reduce 170 omitted
2137
+
2138
+ # reduce 171 omitted
2139
+
2140
+ # reduce 172 omitted
2141
+
2142
+ # reduce 173 omitted
2143
+
2144
+ # reduce 174 omitted
2145
+
2146
+ # reduce 175 omitted
2147
+
2148
+ # reduce 176 omitted
2149
+
2150
+ # reduce 177 omitted
2151
+
2152
+ # reduce 178 omitted
2153
+
2154
+ # reduce 179 omitted
2155
+
2156
+ # reduce 180 omitted
2157
+
2158
+ # reduce 181 omitted
2159
+
2160
+ # reduce 182 omitted
2161
+
2162
+ # reduce 183 omitted
2163
+
2164
+ module_eval(<<'.,.,', 'C_parser.y.rb', 438)
2165
+ def _reduce_184(val, _values, result)
2166
+ val[2].each{ |t|
2167
+ # print( "typdef: #{t.to_s}\n" )
2168
+ @type_name_list[ t.to_sym ] = t
2169
+ }
2170
+
2171
+ result
2172
+ end
2173
+ .,.,
2174
+
2175
+ module_eval(<<'.,.,', 'C_parser.y.rb', 443)
2176
+ def _reduce_185(val, _values, result)
2177
+ error( "maybe typedef duplicate, ignored" )
2178
+ result
2179
+ end
2180
+ .,.,
2181
+
2182
+ module_eval(<<'.,.,', 'C_parser.y.rb', 450)
2183
+ def _reduce_186(val, _values, result)
2184
+ @current_function = TCFlow::Function.new @@current_locale
2185
+
2186
+ result
2187
+ end
2188
+ .,.,
2189
+
2190
+ module_eval(<<'.,.,', 'C_parser.y.rb', 454)
2191
+ def _reduce_187(val, _values, result)
2192
+ @current_function.set_name val[1]
2193
+ #p val[1]
2194
+ @current_function = nil
2195
+
2196
+ result
2197
+ end
2198
+ .,.,
2199
+
2200
+ module_eval(<<'.,.,', 'C_parser.y.rb', 460)
2201
+ def _reduce_188(val, _values, result)
2202
+ @current_function = TCFlow::Function.new @@current_locale
2203
+
2204
+ result
2205
+ end
2206
+ .,.,
2207
+
2208
+ module_eval(<<'.,.,', 'C_parser.y.rb', 464)
2209
+ def _reduce_189(val, _values, result)
2210
+ @current_function.set_name val[0]
2211
+ #p val[0]
2212
+ @current_function = nil
2213
+
2214
+ result
2215
+ end
2216
+ .,.,
2217
+
2218
+ # reduce 190 omitted
2219
+
2220
+ # reduce 191 omitted
2221
+
2222
+ # reduce 192 omitted
2223
+
2224
+ module_eval(<<'.,.,', 'C_parser.y.rb', 476)
2225
+ def _reduce_193(val, _values, result)
2226
+ result = [val[0]]
2227
+ result
2228
+ end
2229
+ .,.,
2230
+
2231
+ module_eval(<<'.,.,', 'C_parser.y.rb', 477)
2232
+ def _reduce_194(val, _values, result)
2233
+ result << val[2]
2234
+ result
2235
+ end
2236
+ .,.,
2237
+
2238
+ # reduce 195 omitted
2239
+
2240
+ # reduce 196 omitted
2241
+
2242
+ # reduce 197 omitted
2243
+
2244
+ # reduce 198 omitted
2245
+
2246
+ # reduce 199 omitted
2247
+
2248
+ # reduce 200 omitted
2249
+
2250
+ # reduce 201 omitted
2251
+
2252
+ # reduce 202 omitted
2253
+
2254
+ # reduce 203 omitted
2255
+
2256
+ # reduce 204 omitted
2257
+
2258
+ # reduce 205 omitted
2259
+
2260
+ # reduce 206 omitted
2261
+
2262
+ # reduce 207 omitted
2263
+
2264
+ # reduce 208 omitted
2265
+
2266
+ # reduce 209 omitted
2267
+
2268
+ # reduce 210 omitted
2269
+
2270
+ # reduce 211 omitted
2271
+
2272
+ # reduce 212 omitted
2273
+
2274
+ # reduce 213 omitted
2275
+
2276
+ # reduce 214 omitted
2277
+
2278
+ # reduce 215 omitted
2279
+
2280
+ # reduce 216 omitted
2281
+
2282
+ # reduce 217 omitted
2283
+
2284
+ # reduce 218 omitted
2285
+
2286
+ # reduce 219 omitted
2287
+
2288
+ # reduce 220 omitted
2289
+
2290
+ # reduce 221 omitted
2291
+
2292
+ # reduce 222 omitted
2293
+
2294
+ # reduce 223 omitted
2295
+
2296
+ # reduce 224 omitted
2297
+
2298
+ # reduce 225 omitted
2299
+
2300
+ # reduce 226 omitted
2301
+
2302
+ # reduce 227 omitted
2303
+
2304
+ # reduce 228 omitted
2305
+
2306
+ # reduce 229 omitted
2307
+
2308
+ module_eval(<<'.,.,', 'C_parser.y.rb', 547)
2309
+ def _reduce_230(val, _values, result)
2310
+ #p val[0] ###書き込みされる変数群
2311
+ if val[0]
2312
+ if /\(\)$/ =~ val[0].to_s then
2313
+ # () で終わっているものは関数, 通常来ないはず
2314
+ else
2315
+ if @current_function
2316
+ ####p @current_function #### global_var選別後
2317
+ @current_function.ref_var( val[0].to_sym, true ) ##### R/Wカウント
2318
+ result = val[0].to_sym
2319
+ end
2320
+ end
2321
+ end
2322
+
2323
+ result
2324
+ end
2325
+ .,.,
2326
+
2327
+ # reduce 231 omitted
2328
+
2329
+ # reduce 232 omitted
2330
+
2331
+ # reduce 233 omitted
2332
+
2333
+ # reduce 234 omitted
2334
+
2335
+ # reduce 235 omitted
2336
+
2337
+ # reduce 236 omitted
2338
+
2339
+ # reduce 237 omitted
2340
+
2341
+ # reduce 238 omitted
2342
+
2343
+ # reduce 239 omitted
2344
+
2345
+ # reduce 240 omitted
2346
+
2347
+ # reduce 241 omitted
2348
+
2349
+ # reduce 242 omitted
2350
+
2351
+ # reduce 243 omitted
2352
+
2353
+ # reduce 244 omitted
2354
+
2355
+ # reduce 245 omitted
2356
+
2357
+ # reduce 246 omitted
2358
+
2359
+ # reduce 247 omitted
2360
+
2361
+ # reduce 248 omitted
2362
+
2363
+ # reduce 249 omitted
2364
+
2365
+ module_eval(<<'.,.,', 'C_parser.y.rb', 586)
2366
+ def _reduce_250(val, _values, result)
2367
+ while true
2368
+ # ';' が表れるまで、トークンを読み飛ばす。
2369
+ # gcc の構文拡張に対応すべきだが、単純な実装として、';' まで読み飛ばす。
2370
+ # トークン単位で読み飛ばしているので、文字列やコメント内の ';' は対象にならない。
2371
+ token = next_token
2372
+ if token[1].val == ";"
2373
+ break
2374
+ end
2375
+ # p "skip: #{token[1].val}"
2376
+ end
2377
+
2378
+ result
2379
+ end
2380
+ .,.,
2381
+
2382
+ def _reduce_none(val, _values, result)
2383
+ val[0]
2384
+ end
2385
+
2386
+ end # class TCFLOW_Cparser
2387
+
2388
+
2389
+
2390
+
2391
+ class Token
2392
+ # @parameter
2393
+ # SIZE_IS, STRING, COUNT_IS : expression
2394
+ # SEND, RECEIVE : string ( IDENTIFIER )
2395
+
2396
+ attr_accessor :val, :file, :lineno, :col
2397
+
2398
+ def initialize(val, file, lineno, col)
2399
+ @val = val
2400
+ @file = file
2401
+ @lineno = lineno
2402
+ @col = col
2403
+
2404
+ end
2405
+
2406
+ def to_s
2407
+ @val.to_s
2408
+ end
2409
+
2410
+ def to_sym
2411
+ @val.to_sym
2412
+ end
2413
+
2414
+ def get_name
2415
+ @val
2416
+ end
2417
+
2418
+ def set_parameter( parameter )
2419
+ @parameter = parameter
2420
+ end
2421
+
2422
+ def scan(*arg, &block)
2423
+ val.to_s.scan(*arg, &block)
2424
+ end
2425
+
2426
+ def to_i
2427
+ if @val.is_a? Integer
2428
+ @val.to_i
2429
+ else
2430
+ raise TypeError
2431
+ end
2432
+ end
2433
+
2434
+ def locale
2435
+ [@file, @lineno, @col]
2436
+ end
2437
+
2438
+ def eql?(other)
2439
+ if other.is_a? Symbol
2440
+ @val == other
2441
+ elsif other.is_a? Token
2442
+ @val == other.val
2443
+ elsif other.is_a? String
2444
+ @val.to_s == other
2445
+ else
2446
+ raise ArgumentError
2447
+ end
2448
+ end
2449
+
2450
+ alias == eql?
2451
+
2452
+ def <=>(other)
2453
+ if other.class == Token
2454
+ if @val.is_a? Integer
2455
+ @val <=> other.val
2456
+ elsif @val.is_a? Symbol
2457
+ @val.to_s <=> other.val.to_s
2458
+ else
2459
+ raise ArgumentError
2460
+ end
2461
+ else
2462
+ raise ArgumentError
2463
+ end
2464
+ end
2465
+
2466
+ def show_tree( indent )
2467
+ indent.times { print " " }
2468
+ print "#{@val}\n"
2469
+ end
2470
+
2471
+ end # class C_Parser