expressir 0.2.2 → 0.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 (450) hide show
  1. checksums.yaml +4 -4
  2. data/.cross_rubies +30 -0
  3. data/.github/workflows/rake.yml +45 -0
  4. data/.github/workflows/release.yml +84 -0
  5. data/.gitignore +4 -2
  6. data/.gitmodules +3 -0
  7. data/Rakefile +5 -0
  8. data/exe/generate-parser +48 -0
  9. data/expressir.gemspec +12 -4
  10. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +118 -0
  11. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj +637 -0
  12. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj.filters +984 -0
  13. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj +652 -0
  14. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj.filters +990 -0
  15. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj +652 -0
  16. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj.filters +990 -0
  17. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +652 -0
  18. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +990 -0
  19. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +26 -0
  20. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +17 -0
  21. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +3024 -0
  22. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  23. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  24. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +76 -0
  25. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +80 -0
  26. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +80 -0
  27. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +10 -0
  28. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +167 -0
  29. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +10 -0
  30. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +121 -0
  31. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +34 -0
  32. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +27 -0
  33. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +155 -0
  34. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +69 -0
  35. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +61 -0
  36. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +59 -0
  37. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +25 -0
  38. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +36 -0
  39. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +414 -0
  40. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +200 -0
  41. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +11 -0
  42. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +37 -0
  43. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +195 -0
  44. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +158 -0
  45. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +39 -0
  46. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +74 -0
  47. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +78 -0
  48. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +79 -0
  49. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +15 -0
  50. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +35 -0
  51. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +333 -0
  52. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +466 -0
  53. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +84 -0
  54. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +80 -0
  55. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +64 -0
  56. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +99 -0
  57. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +51 -0
  58. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +32 -0
  59. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +18 -0
  60. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +24 -0
  61. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +12 -0
  62. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +218 -0
  63. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +19 -0
  64. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +45 -0
  65. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +295 -0
  66. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +196 -0
  67. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +75 -0
  68. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +52 -0
  69. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +36 -0
  70. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +31 -0
  71. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +92 -0
  72. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +88 -0
  73. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +46 -0
  74. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +42 -0
  75. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +648 -0
  76. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +467 -0
  77. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +306 -0
  78. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +179 -0
  79. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +141 -0
  80. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +147 -0
  81. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +53 -0
  82. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +38 -0
  83. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +66 -0
  84. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +98 -0
  85. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +167 -0
  86. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +164 -0
  87. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +143 -0
  88. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +137 -0
  89. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +27 -0
  90. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +32 -0
  91. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +53 -0
  92. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +155 -0
  93. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +9 -0
  94. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +92 -0
  95. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +30 -0
  96. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +9 -0
  97. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +85 -0
  98. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +11 -0
  99. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +137 -0
  100. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +425 -0
  101. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +293 -0
  102. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +211 -0
  103. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +123 -0
  104. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +270 -0
  105. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +115 -0
  106. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +104 -0
  107. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +193 -0
  108. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +9 -0
  109. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +23 -0
  110. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +137 -0
  111. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +167 -0
  112. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +209 -0
  113. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +112 -0
  114. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +113 -0
  115. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +148 -0
  116. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +228 -0
  117. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +110 -0
  118. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +64 -0
  119. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +50 -0
  120. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +758 -0
  121. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +85 -0
  122. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp +621 -0
  123. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.h +61 -0
  124. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +63 -0
  125. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +87 -0
  126. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +72 -0
  127. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +133 -0
  128. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +20 -0
  129. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp +14 -0
  130. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h +24 -0
  131. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +33 -0
  132. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +33 -0
  133. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +16 -0
  134. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +68 -0
  135. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +82 -0
  136. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +43 -0
  137. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +31 -0
  138. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +30 -0
  139. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp +12 -0
  140. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +22 -0
  141. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.cpp +12 -0
  142. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +21 -0
  143. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.cpp +15 -0
  144. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +24 -0
  145. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.cpp +9 -0
  146. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +21 -0
  147. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
  148. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +47 -0
  149. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +14 -0
  150. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +70 -0
  151. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +25 -0
  152. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +227 -0
  153. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +17 -0
  154. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +30 -0
  155. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp +35 -0
  156. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h +27 -0
  157. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +35 -0
  158. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +39 -0
  159. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +15 -0
  160. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +43 -0
  161. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +158 -0
  162. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +109 -0
  163. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +84 -0
  164. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +44 -0
  165. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +628 -0
  166. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +210 -0
  167. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +9 -0
  168. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +66 -0
  169. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +107 -0
  170. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +115 -0
  171. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +55 -0
  172. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +55 -0
  173. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +63 -0
  174. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +62 -0
  175. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +87 -0
  176. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +63 -0
  177. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +82 -0
  178. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +56 -0
  179. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +61 -0
  180. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +47 -0
  181. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +57 -0
  182. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +47 -0
  183. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +57 -0
  184. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +56 -0
  185. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +61 -0
  186. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +47 -0
  187. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +55 -0
  188. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +56 -0
  189. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +55 -0
  190. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
  191. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +42 -0
  192. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.cpp +12 -0
  193. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +22 -0
  194. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Makefile +67 -0
  195. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +27 -0
  196. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +25 -0
  197. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +12 -0
  198. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +20 -0
  199. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +102 -0
  200. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +102 -0
  201. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +1366 -0
  202. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +904 -0
  203. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp +12 -0
  204. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +25 -0
  205. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp +12 -0
  206. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +22 -0
  207. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +32 -0
  208. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +29 -0
  209. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
  210. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +62 -0
  211. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +34 -0
  212. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +39 -0
  213. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +662 -0
  214. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +254 -0
  215. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +201 -0
  216. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +436 -0
  217. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
  218. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +60 -0
  219. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +30 -0
  220. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +29 -0
  221. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.cpp +16 -0
  222. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +25 -0
  223. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.cpp +12 -0
  224. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +25 -0
  225. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +37 -0
  226. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +40 -0
  227. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +377 -0
  228. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +222 -0
  229. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +32 -0
  230. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +30 -0
  231. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +81 -0
  232. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +36 -0
  233. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp +12 -0
  234. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +21 -0
  235. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp +15 -0
  236. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +35 -0
  237. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +19 -0
  238. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +21 -0
  239. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.cpp +12 -0
  240. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +21 -0
  241. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +44 -0
  242. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +76 -0
  243. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +25 -0
  244. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +25 -0
  245. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +127 -0
  246. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +91 -0
  247. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +67 -0
  248. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +32 -0
  249. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +100 -0
  250. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +144 -0
  251. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +20 -0
  252. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +23 -0
  253. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +124 -0
  254. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +31 -0
  255. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +89 -0
  256. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +84 -0
  257. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +521 -0
  258. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +198 -0
  259. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +134 -0
  260. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +76 -0
  261. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +4 -0
  262. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +21 -0
  263. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +13 -0
  264. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +170 -0
  265. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +43 -0
  266. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +110 -0
  267. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +76 -0
  268. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +248 -0
  269. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +78 -0
  270. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +163 -0
  271. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +36 -0
  272. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +54 -0
  273. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.cpp +303 -0
  274. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.h +112 -0
  275. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +128 -0
  276. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.cpp +9 -0
  277. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +19 -0
  278. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +23 -0
  279. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +33 -0
  280. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +71 -0
  281. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
  282. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +15 -0
  283. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +102 -0
  284. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +9 -0
  285. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +39 -0
  286. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +50 -0
  287. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
  288. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +57 -0
  289. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +49 -0
  290. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +31 -0
  291. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.cpp +9 -0
  292. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +32 -0
  293. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +57 -0
  294. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +33 -0
  295. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +241 -0
  296. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +78 -0
  297. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +9 -0
  298. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +44 -0
  299. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
  300. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
  301. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
  302. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
  303. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +371 -0
  304. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
  305. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
  306. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +117 -0
  307. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +39 -0
  308. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +86 -0
  309. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +28 -0
  310. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +51 -0
  311. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
  312. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +80 -0
  313. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +154 -0
  314. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +86 -0
  315. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +31 -0
  316. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +40 -0
  317. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +173 -0
  318. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +64 -0
  319. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +56 -0
  320. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +12 -0
  321. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
  322. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
  323. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
  324. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
  325. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
  326. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
  327. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
  328. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
  329. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
  330. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
  331. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
  332. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
  333. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
  334. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
  335. data/ext/express-parser/antlrgen/Express.interp +532 -0
  336. data/ext/express-parser/antlrgen/Express.tokens +190 -0
  337. data/ext/express-parser/antlrgen/ExpressBaseListener.cpp +7 -0
  338. data/ext/express-parser/antlrgen/ExpressBaseListener.h +623 -0
  339. data/ext/express-parser/antlrgen/ExpressBaseVisitor.cpp +7 -0
  340. data/ext/express-parser/antlrgen/ExpressBaseVisitor.h +816 -0
  341. data/ext/express-parser/antlrgen/ExpressLexer.cpp +1169 -0
  342. data/ext/express-parser/antlrgen/ExpressLexer.h +85 -0
  343. data/ext/express-parser/antlrgen/ExpressLexer.interp +534 -0
  344. data/ext/express-parser/antlrgen/ExpressLexer.tokens +190 -0
  345. data/ext/express-parser/antlrgen/ExpressListener.cpp +7 -0
  346. data/ext/express-parser/antlrgen/ExpressListener.h +616 -0
  347. data/ext/express-parser/antlrgen/ExpressParser.cpp +17284 -0
  348. data/ext/express-parser/antlrgen/ExpressParser.h +3696 -0
  349. data/ext/express-parser/antlrgen/ExpressVisitor.cpp +7 -0
  350. data/ext/express-parser/antlrgen/ExpressVisitor.h +422 -0
  351. data/ext/express-parser/express_parser.cpp +17933 -0
  352. data/ext/express-parser/extconf.rb +57 -0
  353. data/lib/expressir/express_exp/formatter.rb +1450 -0
  354. data/lib/expressir/express_exp/parser.rb +17 -6
  355. data/lib/expressir/express_exp/visitor.rb +1527 -1197
  356. data/lib/expressir/model.rb +16 -42
  357. data/lib/expressir/model/{derived.rb → attribute.rb} +12 -4
  358. data/lib/expressir/model/constant.rb +3 -3
  359. data/lib/expressir/model/entity.rb +24 -19
  360. data/lib/expressir/model/enumeration_item.rb +1 -3
  361. data/lib/expressir/model/expressions/aggregate_initializer.rb +9 -9
  362. data/lib/expressir/model/expressions/aggregate_item.rb +15 -0
  363. data/lib/expressir/model/expressions/{attribute_qualifier.rb → attribute_reference.rb} +3 -1
  364. data/lib/expressir/model/expressions/binary_expression.rb +40 -0
  365. data/lib/expressir/model/expressions/{function_call.rb → call.rb} +3 -3
  366. data/lib/expressir/model/expressions/entity_constructor.rb +11 -11
  367. data/lib/expressir/model/expressions/{group_qualifier.rb → group_reference.rb} +3 -1
  368. data/lib/expressir/model/expressions/{index_qualifier.rb → index_reference.rb} +3 -1
  369. data/lib/expressir/model/expressions/interval.rb +17 -17
  370. data/lib/expressir/model/expressions/query_expression.rb +26 -0
  371. data/lib/expressir/model/expressions/simple_reference.rb +13 -0
  372. data/lib/expressir/model/expressions/{expression.rb → unary_expression.rb} +7 -3
  373. data/lib/expressir/model/function.rb +16 -8
  374. data/lib/expressir/model/identifier.rb +10 -0
  375. data/lib/expressir/model/{reference.rb → interface.rb} +6 -1
  376. data/lib/expressir/model/literals/logical.rb +4 -0
  377. data/lib/expressir/model/parameter.rb +5 -5
  378. data/lib/expressir/model/procedure.rb +16 -8
  379. data/lib/expressir/model/repository.rb +3 -1
  380. data/lib/expressir/model/rule.rb +18 -10
  381. data/lib/expressir/model/schema.rb +24 -8
  382. data/lib/expressir/model/scope.rb +17 -0
  383. data/lib/expressir/model/statements/alias.rb +5 -4
  384. data/lib/expressir/model/statements/{procedure_call.rb → call.rb} +3 -3
  385. data/lib/expressir/model/statements/case.rb +2 -2
  386. data/lib/expressir/model/statements/case_action.rb +2 -2
  387. data/lib/expressir/model/statements/repeat.rb +5 -4
  388. data/lib/expressir/model/subtype_constraint.rb +13 -7
  389. data/lib/expressir/model/type.rb +5 -4
  390. data/lib/expressir/model/types/aggregate.rb +4 -4
  391. data/lib/expressir/model/types/generic.rb +2 -4
  392. data/lib/expressir/model/types/generic_entity.rb +2 -4
  393. data/lib/expressir/model/unique.rb +3 -3
  394. data/lib/expressir/model/{local.rb → variable.rb} +4 -4
  395. data/lib/expressir/model/where.rb +3 -3
  396. data/lib/expressir/version.rb +1 -1
  397. data/original/examples/syntax/remark.exp +127 -108
  398. data/original/examples/syntax/remark_formatted.exp +175 -0
  399. data/original/examples/syntax/syntax.exp +288 -277
  400. data/original/examples/syntax/syntax_formatted.exp +1191 -0
  401. data/rakelib/cross-ruby.rake +308 -0
  402. data/spec/expressir/express_exp/ap233_spec.rb +1 -1
  403. data/spec/expressir/express_exp/format_remark_spec.rb +28 -0
  404. data/spec/expressir/express_exp/format_syntax_spec.rb +28 -0
  405. data/spec/expressir/express_exp/{remark_spec.rb → parse_remark_spec.rb} +81 -36
  406. data/spec/expressir/express_exp/parse_syntax_spec.rb +3003 -0
  407. data/spec/expressir/model/find_spec.rb +110 -0
  408. metadata +429 -66
  409. data/.github/workflows/macos.yml +0 -38
  410. data/.github/workflows/ubuntu.yml +0 -56
  411. data/.github/workflows/windows.yml +0 -40
  412. data/generate-parser.sh +0 -29
  413. data/lib/expressir/express_exp/generated/ExpressBaseVisitor.rb +0 -779
  414. data/lib/expressir/express_exp/generated/ExpressLexer.rb +0 -844
  415. data/lib/expressir/express_exp/generated/ExpressParser.rb +0 -12162
  416. data/lib/expressir/express_exp/generated/ExpressVisitor.rb +0 -394
  417. data/lib/expressir/model/explicit.rb +0 -19
  418. data/lib/expressir/model/expressions/aggregate_element.rb +0 -15
  419. data/lib/expressir/model/expressions/qualified_ref.rb +0 -15
  420. data/lib/expressir/model/expressions/query.rb +0 -25
  421. data/lib/expressir/model/inverse.rb +0 -19
  422. data/lib/expressir/model/operators/addition.rb +0 -8
  423. data/lib/expressir/model/operators/and.rb +0 -8
  424. data/lib/expressir/model/operators/andor.rb +0 -8
  425. data/lib/expressir/model/operators/combine.rb +0 -8
  426. data/lib/expressir/model/operators/equal.rb +0 -8
  427. data/lib/expressir/model/operators/exponentiation.rb +0 -8
  428. data/lib/expressir/model/operators/greater_than.rb +0 -8
  429. data/lib/expressir/model/operators/greater_than_or_equal.rb +0 -8
  430. data/lib/expressir/model/operators/in.rb +0 -8
  431. data/lib/expressir/model/operators/instance_equal.rb +0 -8
  432. data/lib/expressir/model/operators/instance_not_equal.rb +0 -8
  433. data/lib/expressir/model/operators/integer_division.rb +0 -8
  434. data/lib/expressir/model/operators/less_than.rb +0 -8
  435. data/lib/expressir/model/operators/less_than_or_equal.rb +0 -8
  436. data/lib/expressir/model/operators/like.rb +0 -8
  437. data/lib/expressir/model/operators/modulo.rb +0 -8
  438. data/lib/expressir/model/operators/multiplication.rb +0 -8
  439. data/lib/expressir/model/operators/not.rb +0 -8
  440. data/lib/expressir/model/operators/not_equal.rb +0 -8
  441. data/lib/expressir/model/operators/oneof.rb +0 -8
  442. data/lib/expressir/model/operators/or.rb +0 -8
  443. data/lib/expressir/model/operators/real_division.rb +0 -8
  444. data/lib/expressir/model/operators/subtraction.rb +0 -8
  445. data/lib/expressir/model/operators/unary_minus.rb +0 -8
  446. data/lib/expressir/model/operators/unary_plus.rb +0 -8
  447. data/lib/expressir/model/operators/xor.rb +0 -8
  448. data/lib/expressir/model/ref.rb +0 -11
  449. data/lib/expressir/model/use.rb +0 -13
  450. data/spec/expressir/express_exp/syntax_spec.rb +0 -2992
@@ -0,0 +1,137 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #pragma once
7
+
8
+ #include "tree/ParseTree.h"
9
+
10
+ namespace antlr4 {
11
+
12
+ /** A rule context is a record of a single rule invocation.
13
+ *
14
+ * We form a stack of these context objects using the parent
15
+ * pointer. A parent pointer of null indicates that the current
16
+ * context is the bottom of the stack. The ParserRuleContext subclass
17
+ * as a children list so that we can turn this data structure into a
18
+ * tree.
19
+ *
20
+ * The root node always has a null pointer and invokingState of -1.
21
+ *
22
+ * Upon entry to parsing, the first invoked rule function creates a
23
+ * context object (asubclass specialized for that rule such as
24
+ * SContext) and makes it the root of a parse tree, recorded by field
25
+ * Parser._ctx.
26
+ *
27
+ * public final SContext s() throws RecognitionException {
28
+ * SContext _localctx = new SContext(_ctx, getState()); <-- create new node
29
+ * enterRule(_localctx, 0, RULE_s); <-- push it
30
+ * ...
31
+ * exitRule(); <-- pop back to _localctx
32
+ * return _localctx;
33
+ * }
34
+ *
35
+ * A subsequent rule invocation of r from the start rule s pushes a
36
+ * new context object for r whose parent points at s and use invoking
37
+ * state is the state with r emanating as edge label.
38
+ *
39
+ * The invokingState fields from a context object to the root
40
+ * together form a stack of rule indication states where the root
41
+ * (bottom of the stack) has a -1 sentinel value. If we invoke start
42
+ * symbol s then call r1, which calls r2, the would look like
43
+ * this:
44
+ *
45
+ * SContext[-1] <- root node (bottom of the stack)
46
+ * R1Context[p] <- p in rule s called r1
47
+ * R2Context[q] <- q in rule r1 called r2
48
+ *
49
+ * So the top of the stack, _ctx, represents a call to the current
50
+ * rule and it holds the return address from another rule that invoke
51
+ * to this rule. To invoke a rule, we must always have a current context.
52
+ *
53
+ * The parent contexts are useful for computing lookahead sets and
54
+ * getting error information.
55
+ *
56
+ * These objects are used during parsing and prediction.
57
+ * For the special case of parsers, we use the subclass
58
+ * ParserRuleContext.
59
+ *
60
+ * @see ParserRuleContext
61
+ */
62
+ class ANTLR4CPP_PUBLIC RuleContext : public tree::ParseTree {
63
+ public:
64
+ /// What state invoked the rule associated with this context?
65
+ /// The "return address" is the followState of invokingState
66
+ /// If parent is null, this should be -1 and this context object represents the start rule.
67
+ size_t invokingState;
68
+
69
+ RuleContext();
70
+ RuleContext(RuleContext *parent, size_t invokingState);
71
+
72
+ virtual int depth();
73
+
74
+ /// A context is empty if there is no invoking state; meaning nobody called current context.
75
+ virtual bool isEmpty();
76
+
77
+ // satisfy the ParseTree / SyntaxTree interface
78
+
79
+ virtual misc::Interval getSourceInterval() override;
80
+
81
+ virtual std::string getText() override;
82
+
83
+ virtual size_t getRuleIndex() const;
84
+
85
+ /** For rule associated with this parse tree internal node, return
86
+ * the outer alternative number used to match the input. Default
87
+ * implementation does not compute nor store this alt num. Create
88
+ * a subclass of ParserRuleContext with backing field and set
89
+ * option contextSuperClass.
90
+ * to set it.
91
+ *
92
+ * @since 4.5.3
93
+ */
94
+ virtual size_t getAltNumber() const;
95
+
96
+ /** Set the outer alternative number for this context node. Default
97
+ * implementation does nothing to avoid backing field overhead for
98
+ * trees that don't need it. Create
99
+ * a subclass of ParserRuleContext with backing field and set
100
+ * option contextSuperClass.
101
+ *
102
+ * @since 4.5.3
103
+ */
104
+ virtual void setAltNumber(size_t altNumber);
105
+
106
+ virtual antlrcpp::Any accept(tree::ParseTreeVisitor *visitor) override;
107
+
108
+ /// <summary>
109
+ /// Print out a whole tree, not just a node, in LISP format
110
+ /// (root child1 .. childN). Print just a node if this is a leaf.
111
+ /// We have to know the recognizer so we can get rule names.
112
+ /// </summary>
113
+ virtual std::string toStringTree(Parser *recog, bool pretty = false) override;
114
+
115
+ /// <summary>
116
+ /// Print out a whole tree, not just a node, in LISP format
117
+ /// (root child1 .. childN). Print just a node if this is a leaf.
118
+ /// </summary>
119
+ virtual std::string toStringTree(std::vector<std::string> &ruleNames, bool pretty = false);
120
+
121
+ virtual std::string toStringTree(bool pretty = false) override;
122
+ virtual std::string toString() override;
123
+ std::string toString(Recognizer *recog);
124
+ std::string toString(const std::vector<std::string> &ruleNames);
125
+
126
+ // recog null unless ParserRuleContext, in which case we use subclass toString(...)
127
+ std::string toString(Recognizer *recog, RuleContext *stop);
128
+
129
+ virtual std::string toString(const std::vector<std::string> &ruleNames, RuleContext *stop);
130
+
131
+ bool operator == (const RuleContext &other) { return this == &other; } // Simple address comparison.
132
+
133
+ private:
134
+ void InitializeInstanceFields();
135
+ };
136
+
137
+ } // namespace antlr4
@@ -0,0 +1,27 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #include "atn/ATN.h"
7
+
8
+ #include "RuleContextWithAltNum.h"
9
+
10
+ using namespace antlr4;
11
+ using namespace antlr4::atn;
12
+
13
+ RuleContextWithAltNum::RuleContextWithAltNum() : ParserRuleContext() {
14
+ altNum = ATN::INVALID_ALT_NUMBER;
15
+ }
16
+
17
+ RuleContextWithAltNum::RuleContextWithAltNum(ParserRuleContext *parent, int invokingStateNumber)
18
+ : ParserRuleContext(parent, invokingStateNumber) {
19
+ }
20
+
21
+ size_t RuleContextWithAltNum::getAltNumber() const {
22
+ return altNum;
23
+ }
24
+
25
+ void RuleContextWithAltNum::setAltNumber(size_t number) {
26
+ altNum = number;
27
+ }
@@ -0,0 +1,32 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #pragma once
7
+
8
+ #include "ParserRuleContext.h"
9
+
10
+ namespace antlr4 {
11
+
12
+ /// A handy class for use with
13
+ ///
14
+ /// options {contextSuperClass=org.antlr.v4.runtime.RuleContextWithAltNum;}
15
+ ///
16
+ /// that provides a backing field / impl for the outer alternative number
17
+ /// matched for an internal parse tree node.
18
+ ///
19
+ /// I'm only putting into Java runtime as I'm certain I'm the only one that
20
+ /// will really every use this.
21
+ class ANTLR4CPP_PUBLIC RuleContextWithAltNum : public ParserRuleContext {
22
+ public:
23
+ size_t altNum = 0;
24
+
25
+ RuleContextWithAltNum();
26
+ RuleContextWithAltNum(ParserRuleContext *parent, int invokingStateNumber);
27
+
28
+ virtual size_t getAltNumber() const override;
29
+ virtual void setAltNumber(size_t altNum) override;
30
+ };
31
+
32
+ } // namespace antlr4
@@ -0,0 +1,53 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #include "RuntimeMetaData.h"
7
+
8
+ using namespace antlr4;
9
+
10
+ const std::string RuntimeMetaData::VERSION = "4.8";
11
+
12
+ std::string RuntimeMetaData::getRuntimeVersion() {
13
+ return VERSION;
14
+ }
15
+
16
+ void RuntimeMetaData::checkVersion(const std::string &generatingToolVersion, const std::string &compileTimeVersion) {
17
+ std::string runtimeVersion = VERSION;
18
+ bool runtimeConflictsWithGeneratingTool = false;
19
+ bool runtimeConflictsWithCompileTimeTool = false;
20
+
21
+ if (generatingToolVersion != "") {
22
+ runtimeConflictsWithGeneratingTool = runtimeVersion != generatingToolVersion
23
+ && getMajorMinorVersion(runtimeVersion) != getMajorMinorVersion(generatingToolVersion);
24
+ }
25
+
26
+ runtimeConflictsWithCompileTimeTool = runtimeVersion != compileTimeVersion
27
+ && getMajorMinorVersion(runtimeVersion) != getMajorMinorVersion(compileTimeVersion);
28
+
29
+ if (runtimeConflictsWithGeneratingTool) {
30
+ std::cerr << "ANTLR Tool version " << generatingToolVersion << " used for code generation does not match "
31
+ "the current runtime version " << runtimeVersion << std::endl;
32
+ }
33
+ if (runtimeConflictsWithCompileTimeTool) {
34
+ std::cerr << "ANTLR Runtime version " << compileTimeVersion << " used for parser compilation does not match "
35
+ "the current runtime version " << runtimeVersion << std::endl;
36
+ }
37
+ }
38
+
39
+ std::string RuntimeMetaData::getMajorMinorVersion(const std::string &version) {
40
+ size_t firstDot = version.find('.');
41
+ size_t secondDot = firstDot != std::string::npos ? version.find('.', firstDot + 1) : std::string::npos;
42
+ size_t firstDash = version.find('-');
43
+ size_t referenceLength = version.size();
44
+ if (secondDot != std::string::npos) {
45
+ referenceLength = std::min(referenceLength, secondDot);
46
+ }
47
+
48
+ if (firstDash != std::string::npos) {
49
+ referenceLength = std::min(referenceLength, firstDash);
50
+ }
51
+
52
+ return version.substr(0, referenceLength);
53
+ }
@@ -0,0 +1,155 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #pragma once
7
+
8
+ #include "antlr4-common.h"
9
+
10
+ namespace antlr4 {
11
+
12
+ /// <summary>
13
+ /// This class provides access to the current version of the ANTLR 4 runtime
14
+ /// library as compile-time and runtime constants, along with methods for
15
+ /// checking for matching version numbers and notifying listeners in the case
16
+ /// where a version mismatch is detected.
17
+ ///
18
+ /// <para>
19
+ /// The runtime version information is provided by <seealso cref="#VERSION"/> and
20
+ /// <seealso cref="#getRuntimeVersion()"/>. Detailed information about these values is
21
+ /// provided in the documentation for each member.</para>
22
+ ///
23
+ /// <para>
24
+ /// The runtime version check is implemented by <seealso cref="#checkVersion"/>. Detailed
25
+ /// information about incorporating this call into user code, as well as its use
26
+ /// in generated code, is provided in the documentation for the method.</para>
27
+ ///
28
+ /// <para>
29
+ /// Version strings x.y and x.y.z are considered "compatible" and no error
30
+ /// would be generated. Likewise, version strings x.y-SNAPSHOT and x.y.z are
31
+ /// considered "compatible" because the major and minor components x.y
32
+ /// are the same in each.</para>
33
+ ///
34
+ /// <para>
35
+ /// To trap any error messages issued by this code, use System.setErr()
36
+ /// in your main() startup code.
37
+ /// </para>
38
+ ///
39
+ /// @since 4.3
40
+ /// </summary>
41
+ class ANTLR4CPP_PUBLIC RuntimeMetaData {
42
+ public:
43
+ /// A compile-time constant containing the current version of the ANTLR 4
44
+ /// runtime library.
45
+ ///
46
+ /// <para>
47
+ /// This compile-time constant value allows generated parsers and other
48
+ /// libraries to include a literal reference to the version of the ANTLR 4
49
+ /// runtime library the code was compiled against. At each release, we
50
+ /// change this value.</para>
51
+ ///
52
+ /// <para>Version numbers are assumed to have the form
53
+ ///
54
+ /// <em>major</em>.<em>minor</em>.<em>patch</em>.<em>revision</em>-<em>suffix</em>,
55
+ ///
56
+ /// with the individual components defined as follows.</para>
57
+ ///
58
+ /// <ul>
59
+ /// <li><em>major</em> is a required non-negative integer, and is equal to
60
+ /// {@code 4} for ANTLR 4.</li>
61
+ /// <li><em>minor</em> is a required non-negative integer.</li>
62
+ /// <li><em>patch</em> is an optional non-negative integer. When
63
+ /// <em>patch</em> is omitted, the {@code .} (dot) appearing before it is
64
+ /// also omitted.</li>
65
+ /// <li><em>revision</em> is an optional non-negative integer, and may only
66
+ /// be included when <em>patch</em> is also included. When <em>revision</em>
67
+ /// is omitted, the {@code .} (dot) appearing before it is also omitted.</li>
68
+ /// <li><em>suffix</em> is an optional string. When <em>suffix</em> is
69
+ /// omitted, the {@code -} (hyphen-minus) appearing before it is also
70
+ /// omitted.</li>
71
+ /// </ul>
72
+ static const std::string VERSION;
73
+
74
+ /// <summary>
75
+ /// Gets the currently executing version of the ANTLR 4 runtime library.
76
+ ///
77
+ /// <para>
78
+ /// This method provides runtime access to the <seealso cref="#VERSION"/> field, as
79
+ /// opposed to directly referencing the field as a compile-time constant.</para>
80
+ /// </summary>
81
+ /// <returns> The currently executing version of the ANTLR 4 library </returns>
82
+
83
+ static std::string getRuntimeVersion();
84
+
85
+ /// <summary>
86
+ /// This method provides the ability to detect mismatches between the version
87
+ /// of ANTLR 4 used to generate a parser, the version of the ANTLR runtime a
88
+ /// parser was compiled against, and the version of the ANTLR runtime which
89
+ /// is currently executing.
90
+ ///
91
+ /// <para>
92
+ /// The version check is designed to detect the following two specific
93
+ /// scenarios.</para>
94
+ ///
95
+ /// <ul>
96
+ /// <li>The ANTLR Tool version used for code generation does not match the
97
+ /// currently executing runtime version.</li>
98
+ /// <li>The ANTLR Runtime version referenced at the time a parser was
99
+ /// compiled does not match the currently executing runtime version.</li>
100
+ /// </ul>
101
+ ///
102
+ /// <para>
103
+ /// Starting with ANTLR 4.3, the code generator emits a call to this method
104
+ /// using two constants in each generated lexer and parser: a hard-coded
105
+ /// constant indicating the version of the tool used to generate the parser
106
+ /// and a reference to the compile-time constant <seealso cref="#VERSION"/>. At
107
+ /// runtime, this method is called during the initialization of the generated
108
+ /// parser to detect mismatched versions, and notify the registered listeners
109
+ /// prior to creating instances of the parser.</para>
110
+ ///
111
+ /// <para>
112
+ /// This method does not perform any detection or filtering of semantic
113
+ /// changes between tool and runtime versions. It simply checks for a
114
+ /// version match and emits an error to stderr if a difference
115
+ /// is detected.</para>
116
+ ///
117
+ /// <para>
118
+ /// Note that some breaking changes between releases could result in other
119
+ /// types of runtime exceptions, such as a <seealso cref="LinkageError"/>, prior to
120
+ /// calling this method. In these cases, the underlying version mismatch will
121
+ /// not be reported here. This method is primarily intended to
122
+ /// notify users of potential semantic changes between releases that do not
123
+ /// result in binary compatibility problems which would be detected by the
124
+ /// class loader. As with semantic changes, changes that break binary
125
+ /// compatibility between releases are mentioned in the release notes
126
+ /// accompanying the affected release.</para>
127
+ ///
128
+ /// <para>
129
+ /// <strong>Additional note for target developers:</strong> The version check
130
+ /// implemented by this class is designed to address specific compatibility
131
+ /// concerns that may arise during the execution of Java applications. Other
132
+ /// targets should consider the implementation of this method in the context
133
+ /// of that target's known execution environment, which may or may not
134
+ /// resemble the design provided for the Java target.</para>
135
+ /// </summary>
136
+ /// <param name="generatingToolVersion"> The version of the tool used to generate a parser.
137
+ /// This value may be null when called from user code that was not generated
138
+ /// by, and does not reference, the ANTLR 4 Tool itself. </param>
139
+ /// <param name="compileTimeVersion"> The version of the runtime the parser was
140
+ /// compiled against. This should always be passed using a direct reference
141
+ /// to <seealso cref="#VERSION"/>. </param>
142
+ static void checkVersion(const std::string &generatingToolVersion, const std::string &compileTimeVersion);
143
+
144
+ /// <summary>
145
+ /// Gets the major and minor version numbers from a version string. For
146
+ /// details about the syntax of the input {@code version}.
147
+ /// E.g., from x.y.z return x.y.
148
+ /// </summary>
149
+ /// <param name="version"> The complete version string. </param>
150
+ /// <returns> A string of the form <em>major</em>.<em>minor</em> containing
151
+ /// only the major and minor components of the version string. </returns>
152
+ static std::string getMajorMinorVersion(const std::string &version);
153
+ };
154
+
155
+ } // namespace antlr4
@@ -0,0 +1,9 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #include "Token.h"
7
+
8
+ antlr4::Token::~Token() {
9
+ }
@@ -0,0 +1,92 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #pragma once
7
+
8
+ #include "IntStream.h"
9
+
10
+ namespace antlr4 {
11
+
12
+ /// A token has properties: text, type, line, character position in the line
13
+ /// (so we can ignore tabs), token channel, index, and source from which
14
+ /// we obtained this token.
15
+ class ANTLR4CPP_PUBLIC Token {
16
+ public:
17
+ static const size_t INVALID_TYPE = 0;
18
+
19
+ /// During lookahead operations, this "token" signifies we hit rule end ATN state
20
+ /// and did not follow it despite needing to.
21
+ static const size_t EPSILON = static_cast<size_t>(-2);
22
+ static const size_t MIN_USER_TOKEN_TYPE = 1;
23
+ static const size_t EOF = IntStream::EOF;
24
+
25
+ virtual ~Token();
26
+
27
+ /// All tokens go to the parser (unless skip() is called in that rule)
28
+ /// on a particular "channel". The parser tunes to a particular channel
29
+ /// so that whitespace etc... can go to the parser on a "hidden" channel.
30
+ static const size_t DEFAULT_CHANNEL = 0;
31
+
32
+ /// Anything on different channel than DEFAULT_CHANNEL is not parsed
33
+ /// by parser.
34
+ static const size_t HIDDEN_CHANNEL = 1;
35
+
36
+ /**
37
+ * This is the minimum constant value which can be assigned to a
38
+ * user-defined token channel.
39
+ *
40
+ * <p>
41
+ * The non-negative numbers less than {@link #MIN_USER_CHANNEL_VALUE} are
42
+ * assigned to the predefined channels {@link #DEFAULT_CHANNEL} and
43
+ * {@link #HIDDEN_CHANNEL}.</p>
44
+ *
45
+ * @see Token#getChannel()
46
+ */
47
+ static const size_t MIN_USER_CHANNEL_VALUE = 2;
48
+
49
+ /// Get the text of the token.
50
+ virtual std::string getText() const = 0;
51
+
52
+ /// Get the token type of the token
53
+ virtual size_t getType() const = 0;
54
+
55
+ /// The line number on which the 1st character of this token was matched, line=1..n
56
+ virtual size_t getLine() const = 0;
57
+
58
+ /// The index of the first character of this token relative to the
59
+ /// beginning of the line at which it occurs, 0..n-1
60
+ virtual size_t getCharPositionInLine() const = 0;
61
+
62
+ /// Return the channel this token. Each token can arrive at the parser
63
+ /// on a different channel, but the parser only "tunes" to a single channel.
64
+ /// The parser ignores everything not on DEFAULT_CHANNEL.
65
+ virtual size_t getChannel() const = 0;
66
+
67
+ /// An index from 0..n-1 of the token object in the input stream.
68
+ /// This must be valid in order to print token streams and
69
+ /// use TokenRewriteStream.
70
+ ///
71
+ /// Return INVALID_INDEX to indicate that this token was conjured up since
72
+ /// it doesn't have a valid index.
73
+ virtual size_t getTokenIndex() const = 0;
74
+
75
+ /// The starting character index of the token
76
+ /// This method is optional; return INVALID_INDEX if not implemented.
77
+ virtual size_t getStartIndex() const = 0;
78
+
79
+ /// The last character index of the token.
80
+ /// This method is optional; return INVALID_INDEX if not implemented.
81
+ virtual size_t getStopIndex() const = 0;
82
+
83
+ /// Gets the <seealso cref="TokenSource"/> which created this token.
84
+ virtual TokenSource *getTokenSource() const = 0;
85
+
86
+ /// Gets the <seealso cref="CharStream"/> from which this token was derived.
87
+ virtual CharStream *getInputStream() const = 0;
88
+
89
+ virtual std::string toString() const = 0;
90
+ };
91
+
92
+ } // namespace antlr4