expressir 1.2.4 → 1.2.7

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 (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