expressir 1.2.4 → 1.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (312) hide show
  1. checksums.yaml +4 -4
  2. data/.cross_rubies +0 -6
  3. data/.github/workflows/rake.yml +200 -21
  4. data/.gitignore +7 -2
  5. data/.gitmodules +3 -0
  6. data/.rubocop.yml +13 -4
  7. data/README.adoc +8 -0
  8. data/Rakefile +4 -1
  9. data/bin/console +0 -1
  10. data/bin/rspec +3 -3
  11. data/exe/expressir +4 -2
  12. data/exe/format +1 -1
  13. data/exe/format-test +25 -25
  14. data/exe/generate-parser +16 -13
  15. data/expressir.gemspec +12 -10
  16. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +44 -34
  17. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj +11 -5
  18. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj.filters +0 -3
  19. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj +11 -4
  20. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj.filters +0 -3
  21. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj +11 -4
  22. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj.filters +0 -3
  23. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +11 -4
  24. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +0 -3
  25. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +20 -20
  26. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +0 -6
  27. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +30 -19
  28. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +13 -10
  29. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +2 -4
  30. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +16 -13
  31. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +2 -2
  32. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +2 -2
  33. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +5 -4
  34. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +1 -1
  35. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +0 -6
  36. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +0 -1
  37. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +0 -13
  38. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +0 -15
  39. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +1 -7
  40. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +47 -27
  41. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +0 -6
  42. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +27 -39
  43. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +1 -7
  44. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +19 -22
  45. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +20 -20
  46. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +0 -1
  47. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +16 -27
  48. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +10 -21
  49. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +4 -3
  50. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +5 -1
  51. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +2 -1
  52. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +0 -32
  53. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +1 -1
  54. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +2 -7
  55. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +15 -18
  56. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +12 -18
  57. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Version.h +42 -0
  58. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +13 -45
  59. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +11 -26
  60. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +19 -61
  61. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +7 -5
  62. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +4 -55
  63. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +34 -20
  64. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +30 -35
  65. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +35 -32
  66. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +58 -54
  67. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +77 -31
  68. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +22 -32
  69. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +22 -24
  70. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +335 -462
  71. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +9 -68
  72. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +9 -39
  73. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +6 -22
  74. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +10 -26
  75. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +41 -42
  76. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.cpp +33 -0
  77. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.h +36 -0
  78. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +2 -6
  79. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +4 -2
  80. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +49 -22
  81. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +20 -12
  82. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +1 -5
  83. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +5 -2
  84. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +4 -2
  85. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +4 -2
  86. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +5 -3
  87. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +10 -1
  88. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +1 -1
  89. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +0 -5
  90. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +12 -8
  91. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +2 -6
  92. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +6 -3
  93. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +139 -106
  94. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +9 -48
  95. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +16 -33
  96. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +12 -12
  97. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +69 -82
  98. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +15 -33
  99. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +12 -6
  100. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +45 -11
  101. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +48 -44
  102. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +31 -18
  103. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +3 -1
  104. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +14 -26
  105. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +12 -16
  106. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +15 -32
  107. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +12 -24
  108. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +23 -29
  109. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +13 -19
  110. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +13 -26
  111. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +12 -16
  112. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +6 -17
  113. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +12 -16
  114. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +6 -17
  115. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +12 -16
  116. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +13 -26
  117. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +12 -16
  118. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +6 -17
  119. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +11 -15
  120. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +13 -26
  121. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +13 -17
  122. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +5 -1
  123. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +1 -6
  124. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +4 -2
  125. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +6 -2
  126. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +8 -3
  127. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +164 -151
  128. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +26 -19
  129. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulatorOptions.h +50 -0
  130. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +5 -1
  131. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +5 -2
  132. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +2 -11
  133. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +15 -9
  134. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +2 -2
  135. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +2 -2
  136. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +4 -14
  137. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +22 -11
  138. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +255 -338
  139. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +86 -127
  140. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp +56 -0
  141. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.h +64 -0
  142. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp +167 -0
  143. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h +101 -0
  144. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCacheOptions.h +71 -0
  145. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextType.h +21 -0
  146. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +18 -17
  147. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +1 -1
  148. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +2 -2
  149. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +2 -2
  150. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +1 -5
  151. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +4 -2
  152. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +4 -3
  153. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +4 -2
  154. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +1 -5
  155. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +5 -3
  156. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +197 -156
  157. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +92 -81
  158. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContextType.h +23 -0
  159. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SerializedATNView.h +101 -0
  160. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +2 -6
  161. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +11 -3
  162. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +39 -34
  163. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +17 -10
  164. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +5 -2
  165. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +4 -2
  166. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +6 -6
  167. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +6 -2
  168. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +5 -2
  169. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +1 -9
  170. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +11 -22
  171. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.cpp +27 -0
  172. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.h +33 -0
  173. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +1 -5
  174. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +4 -2
  175. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +9 -21
  176. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +20 -15
  177. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +1 -8
  178. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +4 -4
  179. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +9 -50
  180. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +57 -48
  181. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +1 -4
  182. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +3 -4
  183. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +2 -2
  184. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +3 -1
  185. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +1 -29
  186. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +10 -10
  187. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +7 -20
  188. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +1 -9
  189. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +54 -68
  190. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +34 -14
  191. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +0 -5
  192. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +1 -155
  193. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +39 -0
  194. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +1 -1
  195. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +12 -53
  196. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +16 -29
  197. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Casts.h +34 -0
  198. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +0 -2
  199. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +25 -33
  200. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +2 -62
  201. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Unicode.h +28 -0
  202. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.cpp +242 -0
  203. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.h +54 -0
  204. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +13 -12
  205. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +7 -2
  206. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +36 -5
  207. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +14 -4
  208. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +14 -19
  209. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +0 -3
  210. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +13 -4
  211. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeType.h +22 -0
  212. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +4 -4
  213. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +8 -9
  214. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +4 -4
  215. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +10 -2
  216. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +2 -5
  217. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +4 -5
  218. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +1 -2
  219. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +128 -119
  220. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +18 -27
  221. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/tests/Utf8Test.cpp +110 -0
  222. data/ext/express-parser/antlrgen/Express.interp +1 -1
  223. data/ext/express-parser/antlrgen/ExpressBaseListener.cpp +1 -1
  224. data/ext/express-parser/antlrgen/ExpressBaseListener.h +1 -1
  225. data/ext/express-parser/antlrgen/ExpressBaseVisitor.cpp +1 -1
  226. data/ext/express-parser/antlrgen/ExpressBaseVisitor.h +200 -200
  227. data/ext/express-parser/antlrgen/ExpressLexer.cpp +645 -1129
  228. data/ext/express-parser/antlrgen/ExpressLexer.h +20 -27
  229. data/ext/express-parser/antlrgen/ExpressLexer.interp +1 -1
  230. data/ext/express-parser/antlrgen/ExpressListener.cpp +1 -1
  231. data/ext/express-parser/antlrgen/ExpressListener.h +1 -1
  232. data/ext/express-parser/antlrgen/ExpressParser.cpp +1754 -1447
  233. data/ext/express-parser/antlrgen/ExpressParser.h +219 -223
  234. data/ext/express-parser/antlrgen/ExpressVisitor.cpp +1 -1
  235. data/ext/express-parser/antlrgen/ExpressVisitor.h +200 -200
  236. data/ext/express-parser/express_parser.cpp +294 -86
  237. data/ext/express-parser/extconf.rb +13 -12
  238. data/lib/expressir/config.rb +1 -1
  239. data/lib/expressir/express/parser.rb +3 -4
  240. data/lib/expressir/express/visitor.rb +7 -5
  241. data/lib/expressir/model.rb +78 -78
  242. data/lib/expressir/version.rb +1 -1
  243. data/rakelib/antlr4-native.rake +161 -0
  244. data/rakelib/cross-ruby.rake +213 -162
  245. data/spec/acceptance/version_spec.rb +17 -2
  246. data/spec/expressir/express/cache_spec.rb +23 -5
  247. data/spec/expressir/express/formatter_spec.rb +54 -8
  248. data/spec/expressir/express/parser_spec.rb +47 -11
  249. data/spec/expressir/model/model_element_spec.rb +198 -146
  250. data/spec/spec_helper.rb +7 -0
  251. metadata +81 -93
  252. data/demo.rb +0 -18
  253. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp +0 -621
  254. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.h +0 -61
  255. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp +0 -14
  256. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h +0 -24
  257. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp +0 -12
  258. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.cpp +0 -12
  259. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.cpp +0 -15
  260. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.cpp +0 -9
  261. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp +0 -35
  262. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h +0 -27
  263. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.cpp +0 -12
  264. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Makefile +0 -67
  265. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp +0 -12
  266. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp +0 -12
  267. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.cpp +0 -16
  268. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.cpp +0 -12
  269. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp +0 -12
  270. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp +0 -15
  271. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.cpp +0 -12
  272. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.cpp +0 -303
  273. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.h +0 -112
  274. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.cpp +0 -9
  275. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.cpp +0 -9
  276. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp +0 -9589
  277. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl +0 -36619
  278. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.xml +0 -13294
  279. data/original/examples/employment/eclipse/.project +0 -17
  280. data/original/examples/employment/eclipse/Export/Employment.png +0 -0
  281. data/original/examples/employment/eclipse/Express/employment_schema.exp +0 -33
  282. data/original/examples/employment/eclipse/Express/employment_schema.xmi +0 -77
  283. data/original/examples/employment/eclipse/Express/employment_schema.xml +0 -93
  284. data/original/examples/employment/eclipse/Models/Employment.uml +0 -4
  285. data/original/examples/employment/eclipse/Models/Employment.umldi +0 -240
  286. data/original/examples/employment/eclipse/readme.txt +0 -7
  287. data/original/examples/employment/employment_schema.exp +0 -33
  288. data/original/examples/employment/employment_schema.rb +0 -232
  289. data/original/examples/employment/employment_schema.xml +0 -93
  290. data/original/examples/employment/employment_schema___module.rb +0 -46
  291. data/original/examples/employment/employment_schema___p28attr.rb +0 -126
  292. data/original/examples/employment/employment_schema___p28inst.rb +0 -26
  293. data/original/examples/employment/example_employment_data.xml +0 -1
  294. data/original/examples/employment/example_employment_data_copy.xml +0 -1
  295. data/original/examples/employment/example_employment_reader.rb +0 -30
  296. data/original/examples/employment/example_employment_writer.rb +0 -51
  297. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.exp +0 -3710
  298. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.owl +0 -35880
  299. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xmi +0 -15357
  300. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xml +0 -9468
  301. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.exp +0 -8404
  302. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl +0 -43147
  303. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi +0 -18341
  304. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml +0 -11632
  305. data/original/exp2ruby.rb +0 -525
  306. data/original/expsm.rb +0 -34
  307. data/original/mapping_owl.rb +0 -1018
  308. data/original/mapping_sysml.rb +0 -2281
  309. data/original/mapping_uml2.rb +0 -599
  310. data/original/mapping_uml2_eclipse.rb +0 -433
  311. data/original/reeper.rb +0 -134
  312. data/spec/expressr_spec.rb +0 -5
@@ -15,7 +15,6 @@
15
15
  #undef OUT
16
16
  #endif
17
17
 
18
- // ruby-3.0
19
18
  #undef FALSE
20
19
  #undef TRUE
21
20
 
@@ -25,8 +24,6 @@ using namespace std;
25
24
  using namespace Rice;
26
25
  using namespace antlr4;
27
26
 
28
- Module rb_mExpressParser;
29
-
30
27
  Class rb_cAttributeRefContext;
31
28
  Class rb_cAttributeIdContext;
32
29
  Class rb_cConstantRefContext;
@@ -231,13 +228,15 @@ Class rb_cParser;
231
228
  Class rb_cParseTree;
232
229
  Class rb_cTerminalNode;
233
230
  Class rb_cContextProxy;
231
+ Class rb_cParserExt;
232
+ Class rb_cTokenExt;
234
233
 
235
234
  namespace Rice::detail {
236
235
  template <>
237
236
  class To_Ruby<Token*> {
238
237
  public:
239
238
  VALUE convert(Token* const &x) {
240
- if (!x) return Qnil;
239
+ if (!x) return Nil;
241
240
  return Data_Object<Token>(x, false, rb_cToken);
242
241
  }
243
242
  };
@@ -246,7 +245,7 @@ namespace Rice::detail {
246
245
  class To_Ruby<tree::ParseTree*> {
247
246
  public:
248
247
  VALUE convert(tree::ParseTree* const &x) {
249
- if (!x) return Qnil;
248
+ if (!x) return Nil;
250
249
  return Data_Object<tree::ParseTree>(x, false, rb_cParseTree);
251
250
  }
252
251
  };
@@ -255,12 +254,34 @@ namespace Rice::detail {
255
254
  class To_Ruby<tree::TerminalNode*> {
256
255
  public:
257
256
  VALUE convert(tree::TerminalNode* const &x) {
258
- if (!x) return Qnil;
257
+ if (!x) return Nil;
259
258
  return Data_Object<tree::TerminalNode>(x, false, rb_cTerminalNode);
260
259
  }
261
260
  };
262
261
  }
263
262
 
263
+ class TokenProxy : public Object {
264
+ public:
265
+ TokenProxy(Token* orig) {
266
+ this -> orig = orig;
267
+ }
268
+
269
+ std::string getText() {
270
+ return orig->getText();
271
+ }
272
+
273
+ size_t getChannel() {
274
+ return orig->getChannel();
275
+ }
276
+
277
+ size_t getTokenIndex() {
278
+ return orig->getTokenIndex();
279
+ }
280
+
281
+ private:
282
+ Token * orig = nullptr;
283
+ };
284
+
264
285
  class ContextProxy {
265
286
  public:
266
287
  ContextProxy(tree::ParseTree* orig) {
@@ -277,24 +298,22 @@ public:
277
298
 
278
299
  Object getStart() {
279
300
  auto token = ((ParserRuleContext*) orig) -> getStart();
301
+
280
302
  return detail::To_Ruby<Token*>().convert(token);
281
303
  }
282
304
 
283
305
  Object getStop() {
284
306
  auto token = ((ParserRuleContext*) orig) -> getStop();
307
+
285
308
  return detail::To_Ruby<Token*>().convert(token);
286
309
  }
287
310
 
288
311
  Array getChildren() {
289
- // Note re memory management
290
- // It looks like it is critical to 'fill' children array each time when this method is called
291
- // When Ruby GC collects the array it also unmarks all its elements so it is not possible to reuse them
292
- // (without custom mark function ????)
293
- // This comment also applies to all methods returning Ruby Arrays below
294
312
  Array children;
295
313
  if (orig != nullptr) {
296
314
  for (auto it = orig -> children.begin(); it != orig -> children.end(); it ++) {
297
315
  Object parseTree = ContextProxy::wrapParseTree(*it);
316
+
298
317
  if (parseTree != Nil) {
299
318
  children.push(parseTree);
300
319
  }
@@ -304,12 +323,11 @@ public:
304
323
  }
305
324
 
306
325
  Object getParent() {
307
- return orig == nullptr ? Nil: wrapParseTree(orig -> parent) ;
326
+ return orig == nullptr ? Nil : ContextProxy::wrapParseTree(orig -> parent);
308
327
  }
309
328
 
310
329
  size_t childCount() {
311
-
312
- return getChildren().size();
330
+ return orig == nullptr ? 0 : orig -> children.size();
313
331
  }
314
332
 
315
333
  bool doubleEquals(Object other) {
@@ -338,11 +356,13 @@ class AttributeRefContextProxy : public ContextProxy {
338
356
  public:
339
357
  AttributeRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
340
358
  Object attributeId();
359
+
341
360
  };
342
361
 
343
362
  class AttributeIdContextProxy : public ContextProxy {
344
363
  public:
345
364
  AttributeIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
365
+
346
366
  Object SimpleId();
347
367
  };
348
368
 
@@ -350,11 +370,13 @@ class ConstantRefContextProxy : public ContextProxy {
350
370
  public:
351
371
  ConstantRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
352
372
  Object constantId();
373
+
353
374
  };
354
375
 
355
376
  class ConstantIdContextProxy : public ContextProxy {
356
377
  public:
357
378
  ConstantIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
379
+
358
380
  Object SimpleId();
359
381
  };
360
382
 
@@ -362,11 +384,13 @@ class EntityRefContextProxy : public ContextProxy {
362
384
  public:
363
385
  EntityRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
364
386
  Object entityId();
387
+
365
388
  };
366
389
 
367
390
  class EntityIdContextProxy : public ContextProxy {
368
391
  public:
369
392
  EntityIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
393
+
370
394
  Object SimpleId();
371
395
  };
372
396
 
@@ -374,11 +398,13 @@ class EnumerationRefContextProxy : public ContextProxy {
374
398
  public:
375
399
  EnumerationRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
376
400
  Object enumerationId();
401
+
377
402
  };
378
403
 
379
404
  class EnumerationIdContextProxy : public ContextProxy {
380
405
  public:
381
406
  EnumerationIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
407
+
382
408
  Object SimpleId();
383
409
  };
384
410
 
@@ -386,11 +412,13 @@ class FunctionRefContextProxy : public ContextProxy {
386
412
  public:
387
413
  FunctionRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
388
414
  Object functionId();
415
+
389
416
  };
390
417
 
391
418
  class FunctionIdContextProxy : public ContextProxy {
392
419
  public:
393
420
  FunctionIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
421
+
394
422
  Object SimpleId();
395
423
  };
396
424
 
@@ -398,11 +426,13 @@ class ParameterRefContextProxy : public ContextProxy {
398
426
  public:
399
427
  ParameterRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
400
428
  Object parameterId();
429
+
401
430
  };
402
431
 
403
432
  class ParameterIdContextProxy : public ContextProxy {
404
433
  public:
405
434
  ParameterIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
435
+
406
436
  Object SimpleId();
407
437
  };
408
438
 
@@ -410,11 +440,13 @@ class ProcedureRefContextProxy : public ContextProxy {
410
440
  public:
411
441
  ProcedureRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
412
442
  Object procedureId();
443
+
413
444
  };
414
445
 
415
446
  class ProcedureIdContextProxy : public ContextProxy {
416
447
  public:
417
448
  ProcedureIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
449
+
418
450
  Object SimpleId();
419
451
  };
420
452
 
@@ -422,11 +454,13 @@ class RuleLabelRefContextProxy : public ContextProxy {
422
454
  public:
423
455
  RuleLabelRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
424
456
  Object ruleLabelId();
457
+
425
458
  };
426
459
 
427
460
  class RuleLabelIdContextProxy : public ContextProxy {
428
461
  public:
429
462
  RuleLabelIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
463
+
430
464
  Object SimpleId();
431
465
  };
432
466
 
@@ -434,11 +468,13 @@ class RuleRefContextProxy : public ContextProxy {
434
468
  public:
435
469
  RuleRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
436
470
  Object ruleId();
471
+
437
472
  };
438
473
 
439
474
  class RuleIdContextProxy : public ContextProxy {
440
475
  public:
441
476
  RuleIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
477
+
442
478
  Object SimpleId();
443
479
  };
444
480
 
@@ -446,11 +482,13 @@ class SchemaRefContextProxy : public ContextProxy {
446
482
  public:
447
483
  SchemaRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
448
484
  Object schemaId();
485
+
449
486
  };
450
487
 
451
488
  class SchemaIdContextProxy : public ContextProxy {
452
489
  public:
453
490
  SchemaIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
491
+
454
492
  Object SimpleId();
455
493
  };
456
494
 
@@ -458,11 +496,13 @@ class SubtypeConstraintRefContextProxy : public ContextProxy {
458
496
  public:
459
497
  SubtypeConstraintRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
460
498
  Object subtypeConstraintId();
499
+
461
500
  };
462
501
 
463
502
  class SubtypeConstraintIdContextProxy : public ContextProxy {
464
503
  public:
465
504
  SubtypeConstraintIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
505
+
466
506
  Object SimpleId();
467
507
  };
468
508
 
@@ -470,11 +510,13 @@ class TypeLabelRefContextProxy : public ContextProxy {
470
510
  public:
471
511
  TypeLabelRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
472
512
  Object typeLabelId();
513
+
473
514
  };
474
515
 
475
516
  class TypeLabelIdContextProxy : public ContextProxy {
476
517
  public:
477
518
  TypeLabelIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
519
+
478
520
  Object SimpleId();
479
521
  };
480
522
 
@@ -482,11 +524,13 @@ class TypeRefContextProxy : public ContextProxy {
482
524
  public:
483
525
  TypeRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
484
526
  Object typeId();
527
+
485
528
  };
486
529
 
487
530
  class TypeIdContextProxy : public ContextProxy {
488
531
  public:
489
532
  TypeIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
533
+
490
534
  Object SimpleId();
491
535
  };
492
536
 
@@ -494,23 +538,27 @@ class VariableRefContextProxy : public ContextProxy {
494
538
  public:
495
539
  VariableRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
496
540
  Object variableId();
541
+
497
542
  };
498
543
 
499
544
  class VariableIdContextProxy : public ContextProxy {
500
545
  public:
501
546
  VariableIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
547
+
502
548
  Object SimpleId();
503
549
  };
504
550
 
505
551
  class AbstractEntityDeclarationContextProxy : public ContextProxy {
506
552
  public:
507
553
  AbstractEntityDeclarationContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
554
+
508
555
  Object ABSTRACT();
509
556
  };
510
557
 
511
558
  class AbstractSupertypeContextProxy : public ContextProxy {
512
559
  public:
513
560
  AbstractSupertypeContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
561
+
514
562
  Object ABSTRACT();
515
563
  Object SUPERTYPE();
516
564
  };
@@ -535,17 +583,20 @@ public:
535
583
  ActualParameterListContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
536
584
  Object parameter();
537
585
  Object parameterAt(size_t i);
586
+
538
587
  };
539
588
 
540
589
  class ParameterContextProxy : public ContextProxy {
541
590
  public:
542
591
  ParameterContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
543
592
  Object expression();
593
+
544
594
  };
545
595
 
546
596
  class AddLikeOpContextProxy : public ContextProxy {
547
597
  public:
548
598
  AddLikeOpContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
599
+
549
600
  Object OR();
550
601
  Object XOR();
551
602
  };
@@ -555,6 +606,7 @@ public:
555
606
  AggregateInitializerContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
556
607
  Object element();
557
608
  Object elementAt(size_t i);
609
+
558
610
  };
559
611
 
560
612
  class ElementContextProxy : public ContextProxy {
@@ -562,12 +614,14 @@ public:
562
614
  ElementContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
563
615
  Object expression();
564
616
  Object repetition();
617
+
565
618
  };
566
619
 
567
620
  class AggregateSourceContextProxy : public ContextProxy {
568
621
  public:
569
622
  AggregateSourceContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
570
623
  Object simpleExpression();
624
+
571
625
  };
572
626
 
573
627
  class SimpleExpressionContextProxy : public ContextProxy {
@@ -577,6 +631,7 @@ public:
577
631
  Object termAt(size_t i);
578
632
  Object addLikeOp();
579
633
  Object addLikeOpAt(size_t i);
634
+
580
635
  };
581
636
 
582
637
  class AggregateTypeContextProxy : public ContextProxy {
@@ -594,6 +649,7 @@ public:
594
649
  Object generalizedTypes();
595
650
  Object namedTypes();
596
651
  Object simpleTypes();
652
+
597
653
  };
598
654
 
599
655
  class TypeLabelContextProxy : public ContextProxy {
@@ -601,6 +657,7 @@ public:
601
657
  TypeLabelContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
602
658
  Object typeLabelId();
603
659
  Object typeLabelRef();
660
+
604
661
  };
605
662
 
606
663
  class AggregationTypesContextProxy : public ContextProxy {
@@ -610,6 +667,7 @@ public:
610
667
  Object bagType();
611
668
  Object listType();
612
669
  Object setType();
670
+
613
671
  };
614
672
 
615
673
  class ArrayTypeContextProxy : public ContextProxy {
@@ -658,6 +716,7 @@ public:
658
716
  Object declarationAt(size_t i);
659
717
  Object constantDecl();
660
718
  Object localDecl();
719
+
661
720
  };
662
721
 
663
722
  class DeclarationContextProxy : public ContextProxy {
@@ -668,6 +727,7 @@ public:
668
727
  Object procedureDecl();
669
728
  Object subtypeConstraintDecl();
670
729
  Object typeDecl();
730
+
671
731
  };
672
732
 
673
733
  class ConstantDeclContextProxy : public ContextProxy {
@@ -707,6 +767,7 @@ public:
707
767
  GeneralRefContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
708
768
  Object parameterRef();
709
769
  Object variableId();
770
+
710
771
  };
711
772
 
712
773
  class StmtContextProxy : public ContextProxy {
@@ -723,6 +784,7 @@ public:
723
784
  Object repeatStmt();
724
785
  Object returnStmt();
725
786
  Object skipStmt();
787
+
726
788
  };
727
789
 
728
790
  class QualifierContextProxy : public ContextProxy {
@@ -731,6 +793,7 @@ public:
731
793
  Object attributeQualifier();
732
794
  Object groupQualifier();
733
795
  Object indexQualifier();
796
+
734
797
  };
735
798
 
736
799
  class BoundSpecContextProxy : public ContextProxy {
@@ -738,6 +801,7 @@ public:
738
801
  BoundSpecContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
739
802
  Object bound1();
740
803
  Object bound2();
804
+
741
805
  };
742
806
 
743
807
  class InstantiableTypeContextProxy : public ContextProxy {
@@ -745,6 +809,7 @@ public:
745
809
  InstantiableTypeContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
746
810
  Object concreteTypes();
747
811
  Object entityRef();
812
+
748
813
  };
749
814
 
750
815
  class AssignmentStmtContextProxy : public ContextProxy {
@@ -754,6 +819,7 @@ public:
754
819
  Object expression();
755
820
  Object qualifier();
756
821
  Object qualifierAt(size_t i);
822
+
757
823
  };
758
824
 
759
825
  class ExpressionContextProxy : public ContextProxy {
@@ -762,6 +828,7 @@ public:
762
828
  Object simpleExpression();
763
829
  Object simpleExpressionAt(size_t i);
764
830
  Object relOpExtended();
831
+
765
832
  };
766
833
 
767
834
  class AttributeDeclContextProxy : public ContextProxy {
@@ -769,6 +836,7 @@ public:
769
836
  AttributeDeclContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
770
837
  Object attributeId();
771
838
  Object redeclaredAttribute();
839
+
772
840
  };
773
841
 
774
842
  class RedeclaredAttributeContextProxy : public ContextProxy {
@@ -783,6 +851,7 @@ class AttributeQualifierContextProxy : public ContextProxy {
783
851
  public:
784
852
  AttributeQualifierContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
785
853
  Object attributeRef();
854
+
786
855
  };
787
856
 
788
857
  class BinaryTypeContextProxy : public ContextProxy {
@@ -802,6 +871,7 @@ public:
802
871
  class BooleanTypeContextProxy : public ContextProxy {
803
872
  public:
804
873
  BooleanTypeContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
874
+
805
875
  Object BOOLEAN();
806
876
  };
807
877
 
@@ -809,23 +879,27 @@ class Bound1ContextProxy : public ContextProxy {
809
879
  public:
810
880
  Bound1ContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
811
881
  Object numericExpression();
882
+
812
883
  };
813
884
 
814
885
  class NumericExpressionContextProxy : public ContextProxy {
815
886
  public:
816
887
  NumericExpressionContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
817
888
  Object simpleExpression();
889
+
818
890
  };
819
891
 
820
892
  class Bound2ContextProxy : public ContextProxy {
821
893
  public:
822
894
  Bound2ContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
823
895
  Object numericExpression();
896
+
824
897
  };
825
898
 
826
899
  class BuiltInConstantContextProxy : public ContextProxy {
827
900
  public:
828
901
  BuiltInConstantContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
902
+
829
903
  Object CONST_E();
830
904
  Object PI();
831
905
  Object SELF();
@@ -834,6 +908,7 @@ public:
834
908
  class BuiltInFunctionContextProxy : public ContextProxy {
835
909
  public:
836
910
  BuiltInFunctionContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
911
+
837
912
  Object ABS();
838
913
  Object ACOS();
839
914
  Object ASIN();
@@ -868,6 +943,7 @@ public:
868
943
  class BuiltInProcedureContextProxy : public ContextProxy {
869
944
  public:
870
945
  BuiltInProcedureContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
946
+
871
947
  Object INSERT();
872
948
  Object REMOVE();
873
949
  };
@@ -878,12 +954,14 @@ public:
878
954
  Object caseLabel();
879
955
  Object caseLabelAt(size_t i);
880
956
  Object stmt();
957
+
881
958
  };
882
959
 
883
960
  class CaseLabelContextProxy : public ContextProxy {
884
961
  public:
885
962
  CaseLabelContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
886
963
  Object expression();
964
+
887
965
  };
888
966
 
889
967
  class CaseStmtContextProxy : public ContextProxy {
@@ -903,6 +981,7 @@ class SelectorContextProxy : public ContextProxy {
903
981
  public:
904
982
  SelectorContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
905
983
  Object expression();
984
+
906
985
  };
907
986
 
908
987
  class CompoundStmtContextProxy : public ContextProxy {
@@ -920,6 +999,7 @@ public:
920
999
  Object aggregationTypes();
921
1000
  Object simpleTypes();
922
1001
  Object typeRef();
1002
+
923
1003
  };
924
1004
 
925
1005
  class SimpleTypesContextProxy : public ContextProxy {
@@ -941,6 +1021,7 @@ public:
941
1021
  Object constantId();
942
1022
  Object instantiableType();
943
1023
  Object expression();
1024
+
944
1025
  };
945
1026
 
946
1027
  class ConstantFactorContextProxy : public ContextProxy {
@@ -948,6 +1029,7 @@ public:
948
1029
  ConstantFactorContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
949
1030
  Object builtInConstant();
950
1031
  Object constantRef();
1032
+
951
1033
  };
952
1034
 
953
1035
  class ConstructedTypesContextProxy : public ContextProxy {
@@ -955,6 +1037,7 @@ public:
955
1037
  ConstructedTypesContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
956
1038
  Object enumerationType();
957
1039
  Object selectType();
1040
+
958
1041
  };
959
1042
 
960
1043
  class EnumerationTypeContextProxy : public ContextProxy {
@@ -1029,6 +1112,7 @@ public:
1029
1112
  Object attributeDecl();
1030
1113
  Object parameterType();
1031
1114
  Object expression();
1115
+
1032
1116
  };
1033
1117
 
1034
1118
  class DeriveClauseContextProxy : public ContextProxy {
@@ -1051,6 +1135,7 @@ class RepetitionContextProxy : public ContextProxy {
1051
1135
  public:
1052
1136
  RepetitionContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1053
1137
  Object numericExpression();
1138
+
1054
1139
  };
1055
1140
 
1056
1141
  class EntityBodyContextProxy : public ContextProxy {
@@ -1062,6 +1147,7 @@ public:
1062
1147
  Object inverseClause();
1063
1148
  Object uniqueClause();
1064
1149
  Object whereClause();
1150
+
1065
1151
  };
1066
1152
 
1067
1153
  class ExplicitAttrContextProxy : public ContextProxy {
@@ -1103,6 +1189,7 @@ public:
1103
1189
  Object entityRef();
1104
1190
  Object expression();
1105
1191
  Object expressionAt(size_t i);
1192
+
1106
1193
  };
1107
1194
 
1108
1195
  class EntityHeadContextProxy : public ContextProxy {
@@ -1118,6 +1205,7 @@ public:
1118
1205
  SubsuperContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1119
1206
  Object supertypeConstraint();
1120
1207
  Object subtypeDeclaration();
1208
+
1121
1209
  };
1122
1210
 
1123
1211
  class EnumerationExtensionContextProxy : public ContextProxy {
@@ -1134,12 +1222,14 @@ public:
1134
1222
  EnumerationItemsContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1135
1223
  Object enumerationItem();
1136
1224
  Object enumerationItemAt(size_t i);
1225
+
1137
1226
  };
1138
1227
 
1139
1228
  class EnumerationItemContextProxy : public ContextProxy {
1140
1229
  public:
1141
1230
  EnumerationItemContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1142
1231
  Object enumerationId();
1232
+
1143
1233
  };
1144
1234
 
1145
1235
  class EnumerationReferenceContextProxy : public ContextProxy {
@@ -1147,11 +1237,13 @@ public:
1147
1237
  EnumerationReferenceContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1148
1238
  Object enumerationRef();
1149
1239
  Object typeRef();
1240
+
1150
1241
  };
1151
1242
 
1152
1243
  class EscapeStmtContextProxy : public ContextProxy {
1153
1244
  public:
1154
1245
  EscapeStmtContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1246
+
1155
1247
  Object ESCAPE();
1156
1248
  };
1157
1249
 
@@ -1168,6 +1260,7 @@ public:
1168
1260
  FactorContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1169
1261
  Object simpleFactor();
1170
1262
  Object simpleFactorAt(size_t i);
1263
+
1171
1264
  };
1172
1265
 
1173
1266
  class SimpleFactorContextProxy : public ContextProxy {
@@ -1180,6 +1273,7 @@ public:
1180
1273
  Object queryExpression();
1181
1274
  Object simpleFactorExpression();
1182
1275
  Object simpleFactorUnaryExpression();
1276
+
1183
1277
  };
1184
1278
 
1185
1279
  class FormalParameterContextProxy : public ContextProxy {
@@ -1188,6 +1282,7 @@ public:
1188
1282
  Object parameterId();
1189
1283
  Object parameterIdAt(size_t i);
1190
1284
  Object parameterType();
1285
+
1191
1286
  };
1192
1287
 
1193
1288
  class FunctionCallContextProxy : public ContextProxy {
@@ -1196,6 +1291,7 @@ public:
1196
1291
  Object builtInFunction();
1197
1292
  Object functionRef();
1198
1293
  Object actualParameterList();
1294
+
1199
1295
  };
1200
1296
 
1201
1297
  class FunctionHeadContextProxy : public ContextProxy {
@@ -1215,6 +1311,7 @@ public:
1215
1311
  Object generalAggregationTypes();
1216
1312
  Object genericEntityType();
1217
1313
  Object genericType();
1314
+
1218
1315
  };
1219
1316
 
1220
1317
  class GeneralAggregationTypesContextProxy : public ContextProxy {
@@ -1224,6 +1321,7 @@ public:
1224
1321
  Object generalBagType();
1225
1322
  Object generalListType();
1226
1323
  Object generalSetType();
1324
+
1227
1325
  };
1228
1326
 
1229
1327
  class GenericEntityTypeContextProxy : public ContextProxy {
@@ -1283,6 +1381,7 @@ class GroupQualifierContextProxy : public ContextProxy {
1283
1381
  public:
1284
1382
  GroupQualifierContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1285
1383
  Object entityRef();
1384
+
1286
1385
  };
1287
1386
 
1288
1387
  class IfStmtContextProxy : public ContextProxy {
@@ -1309,6 +1408,7 @@ public:
1309
1408
  IfStmtStatementsContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1310
1409
  Object stmt();
1311
1410
  Object stmtAt(size_t i);
1411
+
1312
1412
  };
1313
1413
 
1314
1414
  class IfStmtElseStatementsContextProxy : public ContextProxy {
@@ -1316,12 +1416,14 @@ public:
1316
1416
  IfStmtElseStatementsContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1317
1417
  Object stmt();
1318
1418
  Object stmtAt(size_t i);
1419
+
1319
1420
  };
1320
1421
 
1321
1422
  class IncrementContextProxy : public ContextProxy {
1322
1423
  public:
1323
1424
  IncrementContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1324
1425
  Object numericExpression();
1426
+
1325
1427
  };
1326
1428
 
1327
1429
  class IncrementControlContextProxy : public ContextProxy {
@@ -1339,18 +1441,21 @@ class IndexContextProxy : public ContextProxy {
1339
1441
  public:
1340
1442
  IndexContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1341
1443
  Object numericExpression();
1444
+
1342
1445
  };
1343
1446
 
1344
1447
  class Index1ContextProxy : public ContextProxy {
1345
1448
  public:
1346
1449
  Index1ContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1347
1450
  Object index();
1451
+
1348
1452
  };
1349
1453
 
1350
1454
  class Index2ContextProxy : public ContextProxy {
1351
1455
  public:
1352
1456
  Index2ContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1353
1457
  Object index();
1458
+
1354
1459
  };
1355
1460
 
1356
1461
  class IndexQualifierContextProxy : public ContextProxy {
@@ -1358,11 +1463,13 @@ public:
1358
1463
  IndexQualifierContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1359
1464
  Object index1();
1360
1465
  Object index2();
1466
+
1361
1467
  };
1362
1468
 
1363
1469
  class IntegerTypeContextProxy : public ContextProxy {
1364
1470
  public:
1365
1471
  IntegerTypeContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1472
+
1366
1473
  Object INTEGER();
1367
1474
  };
1368
1475
 
@@ -1371,6 +1478,7 @@ public:
1371
1478
  InterfaceSpecificationContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1372
1479
  Object referenceClause();
1373
1480
  Object useClause();
1481
+
1374
1482
  };
1375
1483
 
1376
1484
  class ReferenceClauseContextProxy : public ContextProxy {
@@ -1401,29 +1509,35 @@ public:
1401
1509
  Object intervalOpAt(size_t i);
1402
1510
  Object intervalItem();
1403
1511
  Object intervalHigh();
1512
+
1404
1513
  };
1405
1514
 
1406
1515
  class IntervalLowContextProxy : public ContextProxy {
1407
1516
  public:
1408
1517
  IntervalLowContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1409
1518
  Object simpleExpression();
1519
+
1410
1520
  };
1411
1521
 
1412
1522
  class IntervalOpContextProxy : public ContextProxy {
1413
1523
  public:
1414
1524
  IntervalOpContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1525
+
1526
+
1415
1527
  };
1416
1528
 
1417
1529
  class IntervalItemContextProxy : public ContextProxy {
1418
1530
  public:
1419
1531
  IntervalItemContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1420
1532
  Object simpleExpression();
1533
+
1421
1534
  };
1422
1535
 
1423
1536
  class IntervalHighContextProxy : public ContextProxy {
1424
1537
  public:
1425
1538
  IntervalHighContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1426
1539
  Object simpleExpression();
1540
+
1427
1541
  };
1428
1542
 
1429
1543
  class InverseAttrContextProxy : public ContextProxy {
@@ -1459,6 +1573,7 @@ public:
1459
1573
  class LogicalLiteralContextProxy : public ContextProxy {
1460
1574
  public:
1461
1575
  LogicalLiteralContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1576
+
1462
1577
  Object FALSE();
1463
1578
  Object TRUE();
1464
1579
  Object UNKNOWN();
@@ -1467,6 +1582,7 @@ public:
1467
1582
  class StringLiteralContextProxy : public ContextProxy {
1468
1583
  public:
1469
1584
  StringLiteralContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1585
+
1470
1586
  Object SimpleStringLiteral();
1471
1587
  Object EncodedStringLiteral();
1472
1588
  };
@@ -1478,17 +1594,20 @@ public:
1478
1594
  Object variableIdAt(size_t i);
1479
1595
  Object parameterType();
1480
1596
  Object expression();
1597
+
1481
1598
  };
1482
1599
 
1483
1600
  class LogicalTypeContextProxy : public ContextProxy {
1484
1601
  public:
1485
1602
  LogicalTypeContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1603
+
1486
1604
  Object LOGICAL();
1487
1605
  };
1488
1606
 
1489
1607
  class MultiplicationLikeOpContextProxy : public ContextProxy {
1490
1608
  public:
1491
1609
  MultiplicationLikeOpContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1610
+
1492
1611
  Object DIV();
1493
1612
  Object MOD();
1494
1613
  Object AND();
@@ -1514,11 +1633,14 @@ public:
1514
1633
  class NullStmtContextProxy : public ContextProxy {
1515
1634
  public:
1516
1635
  NullStmtContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1636
+
1637
+
1517
1638
  };
1518
1639
 
1519
1640
  class NumberTypeContextProxy : public ContextProxy {
1520
1641
  public:
1521
1642
  NumberTypeContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1643
+
1522
1644
  Object NUMBER();
1523
1645
  };
1524
1646
 
@@ -1543,12 +1665,14 @@ class PopulationContextProxy : public ContextProxy {
1543
1665
  public:
1544
1666
  PopulationContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1545
1667
  Object entityRef();
1668
+
1546
1669
  };
1547
1670
 
1548
1671
  class PrecisionSpecContextProxy : public ContextProxy {
1549
1672
  public:
1550
1673
  PrecisionSpecContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1551
1674
  Object numericExpression();
1675
+
1552
1676
  };
1553
1677
 
1554
1678
  class PrimaryContextProxy : public ContextProxy {
@@ -1558,6 +1682,7 @@ public:
1558
1682
  Object qualifiableFactor();
1559
1683
  Object qualifier();
1560
1684
  Object qualifierAt(size_t i);
1685
+
1561
1686
  };
1562
1687
 
1563
1688
  class QualifiableFactorContextProxy : public ContextProxy {
@@ -1568,6 +1693,7 @@ public:
1568
1693
  Object functionCall();
1569
1694
  Object generalRef();
1570
1695
  Object population();
1696
+
1571
1697
  };
1572
1698
 
1573
1699
  class ProcedureCallStmtContextProxy : public ContextProxy {
@@ -1576,6 +1702,7 @@ public:
1576
1702
  Object builtInProcedure();
1577
1703
  Object procedureRef();
1578
1704
  Object actualParameterList();
1705
+
1579
1706
  };
1580
1707
 
1581
1708
  class ProcedureHeadContextProxy : public ContextProxy {
@@ -1623,6 +1750,7 @@ public:
1623
1750
  ReferencedAttributeContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1624
1751
  Object attributeRef();
1625
1752
  Object qualifiedAttribute();
1753
+
1626
1754
  };
1627
1755
 
1628
1756
  class ResourceOrRenameContextProxy : public ContextProxy {
@@ -1636,6 +1764,8 @@ public:
1636
1764
  class RelOpContextProxy : public ContextProxy {
1637
1765
  public:
1638
1766
  RelOpContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1767
+
1768
+
1639
1769
  };
1640
1770
 
1641
1771
  class RenameIdContextProxy : public ContextProxy {
@@ -1646,6 +1776,7 @@ public:
1646
1776
  Object functionId();
1647
1777
  Object procedureId();
1648
1778
  Object typeId();
1779
+
1649
1780
  };
1650
1781
 
1651
1782
  class RepeatControlContextProxy : public ContextProxy {
@@ -1654,6 +1785,7 @@ public:
1654
1785
  Object incrementControl();
1655
1786
  Object whileControl();
1656
1787
  Object untilControl();
1788
+
1657
1789
  };
1658
1790
 
1659
1791
  class WhileControlContextProxy : public ContextProxy {
@@ -1688,6 +1820,7 @@ public:
1688
1820
  Object functionRef();
1689
1821
  Object procedureRef();
1690
1822
  Object typeRef();
1823
+
1691
1824
  };
1692
1825
 
1693
1826
  class ReturnStmtContextProxy : public ContextProxy {
@@ -1726,6 +1859,7 @@ public:
1726
1859
  Object constantDecl();
1727
1860
  Object schemaBodyDeclaration();
1728
1861
  Object schemaBodyDeclarationAt(size_t i);
1862
+
1729
1863
  };
1730
1864
 
1731
1865
  class SchemaBodyDeclarationContextProxy : public ContextProxy {
@@ -1733,6 +1867,7 @@ public:
1733
1867
  SchemaBodyDeclarationContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1734
1868
  Object declaration();
1735
1869
  Object ruleDecl();
1870
+
1736
1871
  };
1737
1872
 
1738
1873
  class SchemaDeclContextProxy : public ContextProxy {
@@ -1749,6 +1884,7 @@ class SchemaVersionIdContextProxy : public ContextProxy {
1749
1884
  public:
1750
1885
  SchemaVersionIdContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1751
1886
  Object stringLiteral();
1887
+
1752
1888
  };
1753
1889
 
1754
1890
  class SelectExtensionContextProxy : public ContextProxy {
@@ -1765,6 +1901,7 @@ public:
1765
1901
  SelectListContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1766
1902
  Object namedTypes();
1767
1903
  Object namedTypesAt(size_t i);
1904
+
1768
1905
  };
1769
1906
 
1770
1907
  class TermContextProxy : public ContextProxy {
@@ -1774,6 +1911,7 @@ public:
1774
1911
  Object factorAt(size_t i);
1775
1912
  Object multiplicationLikeOp();
1776
1913
  Object multiplicationLikeOpAt(size_t i);
1914
+
1777
1915
  };
1778
1916
 
1779
1917
  class SimpleFactorExpressionContextProxy : public ContextProxy {
@@ -1781,6 +1919,7 @@ public:
1781
1919
  SimpleFactorExpressionContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1782
1920
  Object expression();
1783
1921
  Object primary();
1922
+
1784
1923
  };
1785
1924
 
1786
1925
  class SimpleFactorUnaryExpressionContextProxy : public ContextProxy {
@@ -1788,11 +1927,13 @@ public:
1788
1927
  SimpleFactorUnaryExpressionContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1789
1928
  Object unaryOp();
1790
1929
  Object simpleFactorExpression();
1930
+
1791
1931
  };
1792
1932
 
1793
1933
  class UnaryOpContextProxy : public ContextProxy {
1794
1934
  public:
1795
1935
  UnaryOpContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1936
+
1796
1937
  Object NOT();
1797
1938
  };
1798
1939
 
@@ -1806,6 +1947,7 @@ public:
1806
1947
  class SkipStmtContextProxy : public ContextProxy {
1807
1948
  public:
1808
1949
  SkipStmtContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1950
+
1809
1951
  Object SKIP_();
1810
1952
  };
1811
1953
 
@@ -1815,6 +1957,7 @@ public:
1815
1957
  Object abstractEntityDeclaration();
1816
1958
  Object abstractSupertypeDeclaration();
1817
1959
  Object supertypeRule();
1960
+
1818
1961
  };
1819
1962
 
1820
1963
  class SubtypeDeclarationContextProxy : public ContextProxy {
@@ -1832,6 +1975,7 @@ public:
1832
1975
  Object abstractSupertype();
1833
1976
  Object totalOver();
1834
1977
  Object supertypeExpression();
1978
+
1835
1979
  };
1836
1980
 
1837
1981
  class TotalOverContextProxy : public ContextProxy {
@@ -1873,6 +2017,7 @@ public:
1873
2017
  Object entityRef();
1874
2018
  Object oneOf();
1875
2019
  Object supertypeExpression();
2020
+
1876
2021
  };
1877
2022
 
1878
2023
  class SyntaxContextProxy : public ContextProxy {
@@ -1888,6 +2033,7 @@ public:
1888
2033
  UnderlyingTypeContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1889
2034
  Object concreteTypes();
1890
2035
  Object constructedTypes();
2036
+
1891
2037
  };
1892
2038
 
1893
2039
  class UniqueRuleContextProxy : public ContextProxy {
@@ -1896,12 +2042,14 @@ public:
1896
2042
  Object referencedAttribute();
1897
2043
  Object referencedAttributeAt(size_t i);
1898
2044
  Object ruleLabelId();
2045
+
1899
2046
  };
1900
2047
 
1901
2048
  class WidthContextProxy : public ContextProxy {
1902
2049
  public:
1903
2050
  WidthContextProxy(tree::ParseTree* ctx) : ContextProxy(ctx) {};
1904
2051
  Object numericExpression();
2052
+
1905
2053
  };
1906
2054
 
1907
2055
 
@@ -6517,7 +6665,7 @@ Object ActualParameterListContextProxy::parameter() {
6517
6665
  }
6518
6666
  }
6519
6667
 
6520
- return a;
6668
+ return std::move(a);
6521
6669
  }
6522
6670
 
6523
6671
  Object ActualParameterListContextProxy::parameterAt(size_t i) {
@@ -6601,7 +6749,7 @@ Object AggregateInitializerContextProxy::element() {
6601
6749
  }
6602
6750
  }
6603
6751
 
6604
- return a;
6752
+ return std::move(a);
6605
6753
  }
6606
6754
 
6607
6755
  Object AggregateInitializerContextProxy::elementAt(size_t i) {
@@ -6695,7 +6843,7 @@ Object SimpleExpressionContextProxy::term() {
6695
6843
  }
6696
6844
  }
6697
6845
 
6698
- return a;
6846
+ return std::move(a);
6699
6847
  }
6700
6848
 
6701
6849
  Object SimpleExpressionContextProxy::termAt(size_t i) {
@@ -6729,7 +6877,7 @@ Object SimpleExpressionContextProxy::addLikeOp() {
6729
6877
  }
6730
6878
  }
6731
6879
 
6732
- return a;
6880
+ return std::move(a);
6733
6881
  }
6734
6882
 
6735
6883
  Object SimpleExpressionContextProxy::addLikeOpAt(size_t i) {
@@ -7338,7 +7486,7 @@ Object AlgorithmHeadContextProxy::declaration() {
7338
7486
  }
7339
7487
  }
7340
7488
 
7341
- return a;
7489
+ return std::move(a);
7342
7490
  }
7343
7491
 
7344
7492
  Object AlgorithmHeadContextProxy::declarationAt(size_t i) {
@@ -7512,7 +7660,7 @@ Object ConstantDeclContextProxy::constantBody() {
7512
7660
  }
7513
7661
  }
7514
7662
 
7515
- return a;
7663
+ return std::move(a);
7516
7664
  }
7517
7665
 
7518
7666
  Object ConstantDeclContextProxy::constantBodyAt(size_t i) {
@@ -7576,7 +7724,7 @@ Object LocalDeclContextProxy::localVariable() {
7576
7724
  }
7577
7725
  }
7578
7726
 
7579
- return a;
7727
+ return std::move(a);
7580
7728
  }
7581
7729
 
7582
7730
  Object LocalDeclContextProxy::localVariableAt(size_t i) {
@@ -7680,7 +7828,7 @@ Object AliasStmtContextProxy::stmt() {
7680
7828
  }
7681
7829
  }
7682
7830
 
7683
- return a;
7831
+ return std::move(a);
7684
7832
  }
7685
7833
 
7686
7834
  Object AliasStmtContextProxy::stmtAt(size_t i) {
@@ -7714,7 +7862,7 @@ Object AliasStmtContextProxy::qualifier() {
7714
7862
  }
7715
7863
  }
7716
7864
 
7717
- return a;
7865
+ return std::move(a);
7718
7866
  }
7719
7867
 
7720
7868
  Object AliasStmtContextProxy::qualifierAt(size_t i) {
@@ -8233,7 +8381,7 @@ Object AssignmentStmtContextProxy::qualifier() {
8233
8381
  }
8234
8382
  }
8235
8383
 
8236
- return a;
8384
+ return std::move(a);
8237
8385
  }
8238
8386
 
8239
8387
  Object AssignmentStmtContextProxy::qualifierAt(size_t i) {
@@ -8267,7 +8415,7 @@ Object ExpressionContextProxy::simpleExpression() {
8267
8415
  }
8268
8416
  }
8269
8417
 
8270
- return a;
8418
+ return std::move(a);
8271
8419
  }
8272
8420
 
8273
8421
  Object ExpressionContextProxy::simpleExpressionAt(size_t i) {
@@ -9091,7 +9239,7 @@ Object CaseActionContextProxy::caseLabel() {
9091
9239
  }
9092
9240
  }
9093
9241
 
9094
- return a;
9242
+ return std::move(a);
9095
9243
  }
9096
9244
 
9097
9245
  Object CaseActionContextProxy::caseLabelAt(size_t i) {
@@ -9185,7 +9333,7 @@ Object CaseStmtContextProxy::caseAction() {
9185
9333
  }
9186
9334
  }
9187
9335
 
9188
- return a;
9336
+ return std::move(a);
9189
9337
  }
9190
9338
 
9191
9339
  Object CaseStmtContextProxy::caseActionAt(size_t i) {
@@ -9319,7 +9467,7 @@ Object CompoundStmtContextProxy::stmt() {
9319
9467
  }
9320
9468
  }
9321
9469
 
9322
- return a;
9470
+ return std::move(a);
9323
9471
  }
9324
9472
 
9325
9473
  Object CompoundStmtContextProxy::stmtAt(size_t i) {
@@ -9988,7 +10136,7 @@ Object FunctionDeclContextProxy::stmt() {
9988
10136
  }
9989
10137
  }
9990
10138
 
9991
- return a;
10139
+ return std::move(a);
9992
10140
  }
9993
10141
 
9994
10142
  Object FunctionDeclContextProxy::stmtAt(size_t i) {
@@ -10042,7 +10190,7 @@ Object ProcedureDeclContextProxy::procedureHead() {
10042
10190
  return child;
10043
10191
  }
10044
10192
  }
10045
-
10193
+
10046
10194
  return Nil;
10047
10195
  }
10048
10196
 
@@ -10077,7 +10225,7 @@ Object ProcedureDeclContextProxy::stmt() {
10077
10225
  }
10078
10226
  }
10079
10227
 
10080
- return a;
10228
+ return std::move(a);
10081
10229
  }
10082
10230
 
10083
10231
  Object ProcedureDeclContextProxy::stmtAt(size_t i) {
@@ -10331,7 +10479,7 @@ Object DeriveClauseContextProxy::derivedAttr() {
10331
10479
  }
10332
10480
  }
10333
10481
 
10334
- return a;
10482
+ return std::move(a);
10335
10483
  }
10336
10484
 
10337
10485
  Object DeriveClauseContextProxy::derivedAttrAt(size_t i) {
@@ -10440,7 +10588,7 @@ Object EntityBodyContextProxy::explicitAttr() {
10440
10588
  }
10441
10589
  }
10442
10590
 
10443
- return a;
10591
+ return std::move(a);
10444
10592
  }
10445
10593
 
10446
10594
  Object EntityBodyContextProxy::explicitAttrAt(size_t i) {
@@ -10554,7 +10702,7 @@ Object ExplicitAttrContextProxy::attributeDecl() {
10554
10702
  }
10555
10703
  }
10556
10704
 
10557
- return a;
10705
+ return std::move(a);
10558
10706
  }
10559
10707
 
10560
10708
  Object ExplicitAttrContextProxy::attributeDeclAt(size_t i) {
@@ -10623,7 +10771,7 @@ Object InverseClauseContextProxy::inverseAttr() {
10623
10771
  }
10624
10772
  }
10625
10773
 
10626
- return a;
10774
+ return std::move(a);
10627
10775
  }
10628
10776
 
10629
10777
  Object InverseClauseContextProxy::inverseAttrAt(size_t i) {
@@ -10672,7 +10820,7 @@ Object UniqueClauseContextProxy::uniqueRule() {
10672
10820
  }
10673
10821
  }
10674
10822
 
10675
- return a;
10823
+ return std::move(a);
10676
10824
  }
10677
10825
 
10678
10826
  Object UniqueClauseContextProxy::uniqueRuleAt(size_t i) {
@@ -10721,7 +10869,7 @@ Object WhereClauseContextProxy::domainRule() {
10721
10869
  }
10722
10870
  }
10723
10871
 
10724
- return a;
10872
+ return std::move(a);
10725
10873
  }
10726
10874
 
10727
10875
  Object WhereClauseContextProxy::domainRuleAt(size_t i) {
@@ -10790,7 +10938,7 @@ Object EntityConstructorContextProxy::expression() {
10790
10938
  }
10791
10939
  }
10792
10940
 
10793
- return a;
10941
+ return std::move(a);
10794
10942
  }
10795
10943
 
10796
10944
  Object EntityConstructorContextProxy::expressionAt(size_t i) {
@@ -10989,7 +11137,7 @@ Object EnumerationItemsContextProxy::enumerationItem() {
10989
11137
  }
10990
11138
  }
10991
11139
 
10992
- return a;
11140
+ return std::move(a);
10993
11141
  }
10994
11142
 
10995
11143
  Object EnumerationItemsContextProxy::enumerationItemAt(size_t i) {
@@ -11148,7 +11296,7 @@ Object FactorContextProxy::simpleFactor() {
11148
11296
  }
11149
11297
  }
11150
11298
 
11151
- return a;
11299
+ return std::move(a);
11152
11300
  }
11153
11301
 
11154
11302
  Object FactorContextProxy::simpleFactorAt(size_t i) {
@@ -11322,7 +11470,7 @@ Object FormalParameterContextProxy::parameterId() {
11322
11470
  }
11323
11471
  }
11324
11472
 
11325
- return a;
11473
+ return std::move(a);
11326
11474
  }
11327
11475
 
11328
11476
  Object FormalParameterContextProxy::parameterIdAt(size_t i) {
@@ -11476,7 +11624,7 @@ Object FunctionHeadContextProxy::formalParameter() {
11476
11624
  }
11477
11625
  }
11478
11626
 
11479
- return a;
11627
+ return std::move(a);
11480
11628
  }
11481
11629
 
11482
11630
  Object FunctionHeadContextProxy::formalParameterAt(size_t i) {
@@ -12240,7 +12388,7 @@ Object IfStmtStatementsContextProxy::stmt() {
12240
12388
  }
12241
12389
  }
12242
12390
 
12243
- return a;
12391
+ return std::move(a);
12244
12392
  }
12245
12393
 
12246
12394
  Object IfStmtStatementsContextProxy::stmtAt(size_t i) {
@@ -12274,7 +12422,7 @@ Object IfStmtElseStatementsContextProxy::stmt() {
12274
12422
  }
12275
12423
  }
12276
12424
 
12277
- return a;
12425
+ return std::move(a);
12278
12426
  }
12279
12427
 
12280
12428
  Object IfStmtElseStatementsContextProxy::stmtAt(size_t i) {
@@ -12613,7 +12761,7 @@ Object ReferenceClauseContextProxy::resourceOrRename() {
12613
12761
  }
12614
12762
  }
12615
12763
 
12616
- return a;
12764
+ return std::move(a);
12617
12765
  }
12618
12766
 
12619
12767
  Object ReferenceClauseContextProxy::resourceOrRenameAt(size_t i) {
@@ -12697,7 +12845,7 @@ Object UseClauseContextProxy::namedTypeOrRename() {
12697
12845
  }
12698
12846
  }
12699
12847
 
12700
- return a;
12848
+ return std::move(a);
12701
12849
  }
12702
12850
 
12703
12851
  Object UseClauseContextProxy::namedTypeOrRenameAt(size_t i) {
@@ -12781,7 +12929,7 @@ Object IntervalContextProxy::intervalOp() {
12781
12929
  }
12782
12930
  }
12783
12931
 
12784
- return a;
12932
+ return std::move(a);
12785
12933
  }
12786
12934
 
12787
12935
  Object IntervalContextProxy::intervalOpAt(size_t i) {
@@ -13255,7 +13403,7 @@ Object LocalVariableContextProxy::variableId() {
13255
13403
  }
13256
13404
  }
13257
13405
 
13258
- return a;
13406
+ return std::move(a);
13259
13407
  }
13260
13408
 
13261
13409
  Object LocalVariableContextProxy::variableIdAt(size_t i) {
@@ -13519,7 +13667,7 @@ Object OneOfContextProxy::supertypeExpression() {
13519
13667
  }
13520
13668
  }
13521
13669
 
13522
- return a;
13670
+ return std::move(a);
13523
13671
  }
13524
13672
 
13525
13673
  Object OneOfContextProxy::supertypeExpressionAt(size_t i) {
@@ -13568,7 +13716,7 @@ Object SupertypeExpressionContextProxy::supertypeFactor() {
13568
13716
  }
13569
13717
  }
13570
13718
 
13571
- return a;
13719
+ return std::move(a);
13572
13720
  }
13573
13721
 
13574
13722
  Object SupertypeExpressionContextProxy::supertypeFactorAt(size_t i) {
@@ -13595,7 +13743,7 @@ Object SupertypeExpressionContextProxy::ANDOR() {
13595
13743
  Array a;
13596
13744
 
13597
13745
  if (orig == nullptr) {
13598
- return a;
13746
+ return std::move(a);
13599
13747
  }
13600
13748
 
13601
13749
  auto vec = ((ExpressParser::SupertypeExpressionContext*)orig) -> ANDOR();
@@ -13605,7 +13753,7 @@ Object SupertypeExpressionContextProxy::ANDOR() {
13605
13753
  a.push(detail::To_Ruby<TerminalNodeProxy>().convert(proxy));
13606
13754
  }
13607
13755
 
13608
- return a;
13756
+ return std::move(a);
13609
13757
  }
13610
13758
 
13611
13759
  Object SupertypeExpressionContextProxy::ANDORAt(size_t i) {
@@ -13714,7 +13862,7 @@ Object PrimaryContextProxy::qualifier() {
13714
13862
  }
13715
13863
  }
13716
13864
 
13717
- return a;
13865
+ return std::move(a);
13718
13866
  }
13719
13867
 
13720
13868
  Object PrimaryContextProxy::qualifierAt(size_t i) {
@@ -13928,7 +14076,7 @@ Object ProcedureHeadContextProxy::procedureHeadParameter() {
13928
14076
  }
13929
14077
  }
13930
14078
 
13931
- return a;
14079
+ return std::move(a);
13932
14080
  }
13933
14081
 
13934
14082
  Object ProcedureHeadContextProxy::procedureHeadParameterAt(size_t i) {
@@ -14522,7 +14670,7 @@ Object RepeatStmtContextProxy::stmt() {
14522
14670
  }
14523
14671
  }
14524
14672
 
14525
- return a;
14673
+ return std::move(a);
14526
14674
  }
14527
14675
 
14528
14676
  Object RepeatStmtContextProxy::stmtAt(size_t i) {
@@ -14781,7 +14929,7 @@ Object RuleDeclContextProxy::stmt() {
14781
14929
  }
14782
14930
  }
14783
14931
 
14784
- return a;
14932
+ return std::move(a);
14785
14933
  }
14786
14934
 
14787
14935
  Object RuleDeclContextProxy::stmtAt(size_t i) {
@@ -14850,7 +14998,7 @@ Object RuleHeadContextProxy::entityRef() {
14850
14998
  }
14851
14999
  }
14852
15000
 
14853
- return a;
15001
+ return std::move(a);
14854
15002
  }
14855
15003
 
14856
15004
  Object RuleHeadContextProxy::entityRefAt(size_t i) {
@@ -14914,7 +15062,7 @@ Object SchemaBodyContextProxy::interfaceSpecification() {
14914
15062
  }
14915
15063
  }
14916
15064
 
14917
- return a;
15065
+ return std::move(a);
14918
15066
  }
14919
15067
 
14920
15068
  Object SchemaBodyContextProxy::interfaceSpecificationAt(size_t i) {
@@ -14968,7 +15116,7 @@ Object SchemaBodyContextProxy::schemaBodyDeclaration() {
14968
15116
  }
14969
15117
  }
14970
15118
 
14971
- return a;
15119
+ return std::move(a);
14972
15120
  }
14973
15121
 
14974
15122
  Object SchemaBodyContextProxy::schemaBodyDeclarationAt(size_t i) {
@@ -15222,7 +15370,7 @@ Object SelectListContextProxy::namedTypes() {
15222
15370
  }
15223
15371
  }
15224
15372
 
15225
- return a;
15373
+ return std::move(a);
15226
15374
  }
15227
15375
 
15228
15376
  Object SelectListContextProxy::namedTypesAt(size_t i) {
@@ -15256,7 +15404,7 @@ Object TermContextProxy::factor() {
15256
15404
  }
15257
15405
  }
15258
15406
 
15259
- return a;
15407
+ return std::move(a);
15260
15408
  }
15261
15409
 
15262
15410
  Object TermContextProxy::factorAt(size_t i) {
@@ -15290,7 +15438,7 @@ Object TermContextProxy::multiplicationLikeOp() {
15290
15438
  }
15291
15439
  }
15292
15440
 
15293
- return a;
15441
+ return std::move(a);
15294
15442
  }
15295
15443
 
15296
15444
  Object TermContextProxy::multiplicationLikeOpAt(size_t i) {
@@ -15529,7 +15677,7 @@ Object SubtypeDeclarationContextProxy::entityRef() {
15529
15677
  }
15530
15678
  }
15531
15679
 
15532
- return a;
15680
+ return std::move(a);
15533
15681
  }
15534
15682
 
15535
15683
  Object SubtypeDeclarationContextProxy::entityRefAt(size_t i) {
@@ -15653,7 +15801,7 @@ Object TotalOverContextProxy::entityRef() {
15653
15801
  }
15654
15802
  }
15655
15803
 
15656
- return a;
15804
+ return std::move(a);
15657
15805
  }
15658
15806
 
15659
15807
  Object TotalOverContextProxy::entityRefAt(size_t i) {
@@ -15807,7 +15955,7 @@ Object SupertypeFactorContextProxy::supertypeTerm() {
15807
15955
  }
15808
15956
  }
15809
15957
 
15810
- return a;
15958
+ return std::move(a);
15811
15959
  }
15812
15960
 
15813
15961
  Object SupertypeFactorContextProxy::supertypeTermAt(size_t i) {
@@ -15834,7 +15982,7 @@ Object SupertypeFactorContextProxy::AND() {
15834
15982
  Array a;
15835
15983
 
15836
15984
  if (orig == nullptr) {
15837
- return a;
15985
+ return std::move(a);
15838
15986
  }
15839
15987
 
15840
15988
  auto vec = ((ExpressParser::SupertypeFactorContext*)orig) -> AND();
@@ -15844,7 +15992,7 @@ Object SupertypeFactorContextProxy::AND() {
15844
15992
  a.push(detail::To_Ruby<TerminalNodeProxy>().convert(proxy));
15845
15993
  }
15846
15994
 
15847
- return a;
15995
+ return std::move(a);
15848
15996
  }
15849
15997
 
15850
15998
  Object SupertypeFactorContextProxy::ANDAt(size_t i) {
@@ -15933,7 +16081,7 @@ Object SyntaxContextProxy::schemaDecl() {
15933
16081
  }
15934
16082
  }
15935
16083
 
15936
- return a;
16084
+ return std::move(a);
15937
16085
  }
15938
16086
 
15939
16087
  Object SyntaxContextProxy::schemaDeclAt(size_t i) {
@@ -16022,7 +16170,7 @@ Object UniqueRuleContextProxy::referencedAttribute() {
16022
16170
  }
16023
16171
  }
16024
16172
 
16025
- return a;
16173
+ return std::move(a);
16026
16174
  }
16027
16175
 
16028
16176
  Object UniqueRuleContextProxy::referencedAttributeAt(size_t i) {
@@ -16092,12 +16240,20 @@ public:
16092
16240
 
16093
16241
  Object ruby_visit(ContextProxy* proxy) {
16094
16242
  auto result = visit(proxy -> getOriginal());
16095
- return result.as<Object>();
16243
+ try {
16244
+ return std::any_cast<Object>(result);
16245
+ } catch(std::bad_cast) {
16246
+ return Qnil;
16247
+ }
16096
16248
  }
16097
16249
 
16098
16250
  Object ruby_visitChildren(ContextProxy* proxy) {
16099
16251
  auto result = visitChildren(proxy -> getOriginal());
16100
- return result.as<Object>();
16252
+ try {
16253
+ return std::any_cast<Object>(result);
16254
+ } catch(std::bad_cast) {
16255
+ return Qnil;
16256
+ }
16101
16257
  }
16102
16258
 
16103
16259
  virtual antlrcpp::Any visitAttributeRef(ExpressParser::AttributeRefContext *ctx) override {
@@ -17124,18 +17280,6 @@ public:
17124
17280
  return detail::To_Ruby<SyntaxContextProxy>().convert(proxy);
17125
17281
  }
17126
17282
 
17127
- Array getTokens() {
17128
- Array a;
17129
-
17130
- std::vector<Token*> tokens = this -> tokens -> getTokens();
17131
-
17132
- for (auto &token : tokens) {
17133
- a.push(token);
17134
- }
17135
-
17136
- return a;
17137
- }
17138
-
17139
17283
  Object visit(VisitorProxy* visitor) {
17140
17284
  auto result = visitor -> visit(this -> parser -> syntax());
17141
17285
 
@@ -17143,7 +17287,7 @@ public:
17143
17287
  this -> lexer -> reset();
17144
17288
  this -> parser -> reset();
17145
17289
 
17146
- return result;
17290
+ return std::any_cast<Object>(result);
17147
17291
  }
17148
17292
 
17149
17293
  ~ParserProxy() {
@@ -17161,6 +17305,7 @@ private:
17161
17305
  parser -> lexer = new ExpressLexer(parser -> input);
17162
17306
  parser -> tokens = new CommonTokenStream(parser -> lexer);
17163
17307
  parser -> parser = new ExpressParser(parser -> tokens);
17308
+
17164
17309
  return parser;
17165
17310
  }
17166
17311
 
@@ -17989,10 +18134,63 @@ Object ContextProxy::wrapParseTree(tree::ParseTree* node) {
17989
18134
  }
17990
18135
  }
17991
18136
 
18137
+ class ParserProxyExt : public Object {
18138
+ public:
18139
+ ParserProxyExt(Object self, string file) {
18140
+ ifstream stream;
18141
+ stream.open(file);
18142
+ input = new ANTLRInputStream(stream);
18143
+ lexer = new ExpressLexer(input);
18144
+ tokens = new CommonTokenStream(lexer);
18145
+ parser = new ExpressParser(tokens);
18146
+ stream.close();
18147
+ };
18148
+
18149
+ ~ParserProxyExt() {
18150
+ delete parser;
18151
+ delete tokens;
18152
+ delete lexer;
18153
+ delete input;
18154
+ }
18155
+
18156
+ Object syntax() {
18157
+ auto ctx = parser -> syntax();
18158
+
18159
+ SyntaxContextProxy proxy((ExpressParser::SyntaxContext*) ctx);
18160
+ return detail::To_Ruby<SyntaxContextProxy>().convert(proxy);
18161
+ }
18162
+
18163
+ Array getTokens() {
18164
+ Array a;
18165
+ for (auto token : tokens -> getTokens()) {
18166
+ a.push(new TokenProxy(token));
18167
+ }
18168
+ return a;
18169
+ }
18170
+
18171
+ Object visit(VisitorProxy* visitor) {
18172
+ auto result = visitor -> visit(parser -> syntax());
18173
+
18174
+ lexer -> reset();
18175
+ parser -> reset();
18176
+
18177
+ try {
18178
+ return std::any_cast<Object>(result);
18179
+ } catch(std::bad_cast) {
18180
+ return Qnil;
18181
+ }
18182
+ }
18183
+
18184
+ private:
18185
+ ANTLRInputStream* input;
18186
+ ExpressLexer* lexer;
18187
+ CommonTokenStream* tokens;
18188
+ ExpressParser* parser;
18189
+ };
17992
18190
 
17993
18191
  extern "C"
17994
18192
  void Init_express_parser() {
17995
- rb_mExpressParser = define_module("ExpressParser");
18193
+ Module rb_mExpressParser = define_module("ExpressParser");
17996
18194
 
17997
18195
  rb_cToken = define_class_under<Token>(rb_mExpressParser, "Token")
17998
18196
  .define_method("text", &Token::getText)
@@ -18221,9 +18419,19 @@ void Init_express_parser() {
18221
18419
  .define_singleton_function("parse", &ParserProxy::parse)
18222
18420
  .define_singleton_function("parse_file", &ParserProxy::parseFile)
18223
18421
  .define_method("syntax", &ParserProxy::syntax, Return().keepAlive())
18224
- .define_method("tokens", &ParserProxy::getTokens, Return().takeOwnership())
18225
18422
  .define_method("visit", &ParserProxy::visit, Return().keepAlive());
18226
18423
 
18424
+ rb_cTokenExt = define_class_under<TokenProxy>(rb_mExpressParser, "TokenExt")
18425
+ .define_method("text", &TokenProxy::getText)
18426
+ .define_method("channel", &TokenProxy::getChannel)
18427
+ .define_method("token_index", &TokenProxy::getTokenIndex);
18428
+
18429
+ rb_cParserExt = define_class_under<ParserProxyExt>(rb_mExpressParser, "ParserExt")
18430
+ .define_constructor(Constructor<ParserProxyExt, Object, string>())
18431
+ .define_method("syntax", &ParserProxyExt::syntax, Return().keepAlive())
18432
+ .define_method("tokens", &ParserProxyExt::getTokens)
18433
+ .define_method("visit", &ParserProxyExt::visit, Return().keepAlive());
18434
+
18227
18435
  rb_cAttributeRefContext = define_class_under<AttributeRefContextProxy, ContextProxy>(rb_mExpressParser, "AttributeRefContext")
18228
18436
  .define_method("attribute_id", &AttributeRefContextProxy::attributeId);
18229
18437