expressir 1.4.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (399) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codeql.yml +2 -14
  3. data/.github/workflows/rake.yml +6 -364
  4. data/.github/workflows/release.yml +15 -178
  5. data/.github/workflows/stress.yml +1 -18
  6. data/.rubocop.yml +1 -0
  7. data/.rubocop_todo.yml +7 -0
  8. data/Gemfile +13 -0
  9. data/README.adoc +6 -19
  10. data/Rakefile +6 -7
  11. data/expressir.gemspec +23 -32
  12. data/expressir_wrapped.txt +23068 -0
  13. data/lib/expressir/cli.rb +3 -2
  14. data/lib/expressir/express/formatter.rb +661 -661
  15. data/lib/expressir/express/parser.rb +299 -33
  16. data/lib/expressir/express/visitor.rb +238 -133
  17. data/lib/expressir/model/declarations/interface_item.rb +1 -1
  18. data/lib/expressir/version.rb +1 -1
  19. metadata +15 -573
  20. data/.cross_rubies +0 -28
  21. data/.gitmodules +0 -6
  22. data/.yardopts +0 -11
  23. data/exe/generate-parser +0 -51
  24. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +0 -191
  25. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +0 -652
  26. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +0 -948
  27. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2022.vcxproj +0 -652
  28. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2022.vcxproj.filters +0 -948
  29. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +0 -26
  30. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +0 -17
  31. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +0 -3040
  32. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  33. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  34. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +0 -76
  35. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +0 -76
  36. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +0 -76
  37. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.nuspec +0 -23
  38. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.targets +0 -8
  39. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.nuspec +0 -30
  40. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.props +0 -21
  41. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.targets +0 -44
  42. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.nuspec +0 -29
  43. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.targets +0 -44
  44. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/antlr4.jpg +0 -0
  45. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/pack.cmd +0 -93
  46. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +0 -10
  47. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +0 -167
  48. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +0 -10
  49. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +0 -121
  50. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +0 -23
  51. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +0 -30
  52. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +0 -180
  53. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +0 -79
  54. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +0 -61
  55. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +0 -59
  56. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +0 -25
  57. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +0 -36
  58. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +0 -414
  59. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +0 -200
  60. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +0 -11
  61. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +0 -37
  62. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +0 -193
  63. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +0 -158
  64. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +0 -39
  65. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +0 -74
  66. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +0 -78
  67. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +0 -79
  68. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +0 -15
  69. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +0 -35
  70. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +0 -336
  71. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +0 -466
  72. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +0 -84
  73. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +0 -80
  74. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +0 -64
  75. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +0 -99
  76. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +0 -52
  77. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +0 -32
  78. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashMap.h +0 -57
  79. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashSet.h +0 -57
  80. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +0 -18
  81. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +0 -24
  82. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +0 -12
  83. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +0 -218
  84. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +0 -19
  85. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +0 -45
  86. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +0 -294
  87. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +0 -196
  88. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +0 -60
  89. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +0 -46
  90. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +0 -36
  91. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +0 -31
  92. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +0 -92
  93. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +0 -88
  94. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +0 -46
  95. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +0 -42
  96. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +0 -670
  97. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +0 -461
  98. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +0 -294
  99. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +0 -173
  100. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +0 -138
  101. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +0 -147
  102. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +0 -53
  103. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +0 -38
  104. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +0 -65
  105. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +0 -98
  106. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +0 -157
  107. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +0 -160
  108. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +0 -144
  109. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +0 -141
  110. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +0 -27
  111. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +0 -32
  112. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +0 -54
  113. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +0 -155
  114. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +0 -9
  115. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +0 -92
  116. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +0 -30
  117. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +0 -9
  118. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +0 -85
  119. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +0 -11
  120. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +0 -137
  121. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +0 -425
  122. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +0 -295
  123. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +0 -208
  124. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +0 -117
  125. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +0 -270
  126. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +0 -115
  127. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Version.h +0 -42
  128. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +0 -64
  129. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +0 -177
  130. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +0 -9
  131. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +0 -23
  132. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +0 -101
  133. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +0 -168
  134. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +0 -159
  135. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +0 -133
  136. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +0 -106
  137. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +0 -157
  138. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +0 -233
  139. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +0 -157
  140. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +0 -39
  141. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +0 -48
  142. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +0 -628
  143. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +0 -32
  144. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +0 -33
  145. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +0 -71
  146. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +0 -56
  147. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +0 -139
  148. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.cpp +0 -33
  149. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.h +0 -36
  150. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +0 -20
  151. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +0 -29
  152. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +0 -35
  153. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +0 -16
  154. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +0 -68
  155. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +0 -129
  156. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +0 -51
  157. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +0 -27
  158. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +0 -33
  159. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +0 -24
  160. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +0 -23
  161. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +0 -26
  162. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +0 -30
  163. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +0 -14
  164. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +0 -47
  165. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +0 -14
  166. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +0 -70
  167. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +0 -25
  168. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +0 -227
  169. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +0 -12
  170. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +0 -34
  171. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +0 -31
  172. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +0 -42
  173. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +0 -15
  174. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +0 -43
  175. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/HashUtils.h +0 -18
  176. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +0 -189
  177. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +0 -76
  178. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +0 -67
  179. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +0 -44
  180. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +0 -621
  181. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +0 -199
  182. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +0 -15
  183. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +0 -100
  184. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +0 -108
  185. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +0 -128
  186. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +0 -57
  187. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +0 -43
  188. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +0 -59
  189. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +0 -45
  190. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +0 -75
  191. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +0 -50
  192. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +0 -76
  193. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +0 -43
  194. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +0 -57
  195. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +0 -36
  196. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +0 -53
  197. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +0 -36
  198. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +0 -53
  199. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +0 -43
  200. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +0 -57
  201. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +0 -36
  202. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +0 -51
  203. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +0 -43
  204. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +0 -51
  205. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +0 -16
  206. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +0 -42
  207. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +0 -26
  208. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +0 -22
  209. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +0 -27
  210. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +0 -16
  211. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +0 -25
  212. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +0 -102
  213. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +0 -102
  214. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +0 -1413
  215. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +0 -911
  216. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulatorOptions.h +0 -50
  217. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +0 -29
  218. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +0 -25
  219. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +0 -23
  220. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +0 -35
  221. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +0 -17
  222. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +0 -62
  223. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +0 -24
  224. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +0 -50
  225. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +0 -601
  226. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +0 -225
  227. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp +0 -56
  228. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.h +0 -63
  229. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp +0 -167
  230. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h +0 -101
  231. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCacheOptions.h +0 -71
  232. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextType.h +0 -21
  233. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +0 -202
  234. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +0 -436
  235. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +0 -179
  236. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +0 -60
  237. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +0 -26
  238. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +0 -31
  239. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +0 -26
  240. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +0 -27
  241. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +0 -33
  242. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +0 -42
  243. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +0 -418
  244. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +0 -237
  245. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContextType.h +0 -23
  246. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SerializedATNView.h +0 -101
  247. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +0 -28
  248. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +0 -38
  249. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +0 -79
  250. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +0 -43
  251. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +0 -24
  252. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +0 -37
  253. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +0 -19
  254. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +0 -25
  255. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +0 -24
  256. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +0 -36
  257. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +0 -65
  258. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.cpp +0 -27
  259. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.h +0 -33
  260. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +0 -21
  261. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +0 -27
  262. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +0 -115
  263. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +0 -96
  264. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +0 -60
  265. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +0 -32
  266. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +0 -59
  267. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +0 -154
  268. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +0 -17
  269. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +0 -22
  270. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.cpp +0 -100
  271. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.h +0 -154
  272. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +0 -124
  273. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +0 -33
  274. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +0 -61
  275. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +0 -84
  276. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +0 -508
  277. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +0 -190
  278. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +0 -120
  279. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +0 -102
  280. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +0 -4
  281. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +0 -21
  282. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +0 -8
  283. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +0 -16
  284. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +0 -43
  285. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +0 -149
  286. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +0 -76
  287. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +0 -207
  288. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +0 -65
  289. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Casts.h +0 -34
  290. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +0 -161
  291. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +0 -38
  292. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +0 -16
  293. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Unicode.h +0 -28
  294. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.cpp +0 -242
  295. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.h +0 -54
  296. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +0 -129
  297. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +0 -24
  298. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +0 -54
  299. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +0 -43
  300. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +0 -66
  301. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +0 -53
  302. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +0 -12
  303. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +0 -111
  304. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +0 -9
  305. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +0 -39
  306. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +0 -50
  307. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeType.h +0 -22
  308. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +0 -9
  309. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +0 -57
  310. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +0 -48
  311. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +0 -55
  312. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +0 -40
  313. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +0 -54
  314. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +0 -32
  315. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +0 -241
  316. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +0 -78
  317. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +0 -9
  318. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +0 -44
  319. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +0 -69
  320. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +0 -132
  321. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +0 -64
  322. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +0 -105
  323. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +0 -370
  324. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +0 -185
  325. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +0 -77
  326. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +0 -117
  327. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +0 -39
  328. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +0 -86
  329. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +0 -28
  330. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +0 -51
  331. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +0 -36
  332. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +0 -80
  333. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +0 -154
  334. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +0 -86
  335. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +0 -31
  336. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +0 -40
  337. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +0 -180
  338. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +0 -64
  339. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +0 -53
  340. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +0 -12
  341. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +0 -13
  342. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +0 -22
  343. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +0 -20
  344. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +0 -27
  345. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +0 -30
  346. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +0 -26
  347. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +0 -20
  348. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +0 -25
  349. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +0 -33
  350. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +0 -26
  351. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +0 -23
  352. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +0 -23
  353. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +0 -24
  354. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +0 -23
  355. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/tests/Utf8Test.cpp +0 -110
  356. data/ext/express_parser/antlrgen/Express.interp +0 -532
  357. data/ext/express_parser/antlrgen/Express.tokens +0 -190
  358. data/ext/express_parser/antlrgen/ExpressBaseListener.cpp +0 -7
  359. data/ext/express_parser/antlrgen/ExpressBaseListener.h +0 -623
  360. data/ext/express_parser/antlrgen/ExpressBaseVisitor.cpp +0 -7
  361. data/ext/express_parser/antlrgen/ExpressBaseVisitor.h +0 -816
  362. data/ext/express_parser/antlrgen/ExpressLexer.cpp +0 -685
  363. data/ext/express_parser/antlrgen/ExpressLexer.h +0 -78
  364. data/ext/express_parser/antlrgen/ExpressLexer.interp +0 -534
  365. data/ext/express_parser/antlrgen/ExpressLexer.tokens +0 -190
  366. data/ext/express_parser/antlrgen/ExpressListener.cpp +0 -7
  367. data/ext/express_parser/antlrgen/ExpressListener.h +0 -616
  368. data/ext/express_parser/antlrgen/ExpressParser.cpp +0 -17591
  369. data/ext/express_parser/antlrgen/ExpressParser.h +0 -3692
  370. data/ext/express_parser/antlrgen/ExpressVisitor.cpp +0 -7
  371. data/ext/express_parser/antlrgen/ExpressVisitor.h +0 -422
  372. data/ext/express_parser/express_parser.cpp +0 -19405
  373. data/ext/express_parser/extconf.rb +0 -63
  374. data/rakelib/antlr4-native.rake +0 -173
  375. data/rakelib/cross-ruby.rake +0 -403
  376. data/spec/acceptance/version_spec.rb +0 -30
  377. data/spec/expressir/express/cache_spec.rb +0 -89
  378. data/spec/expressir/express/formatter_spec.rb +0 -171
  379. data/spec/expressir/express/parser_spec.rb +0 -141
  380. data/spec/expressir/model/model_element_spec.rb +0 -343
  381. data/spec/spec_helper.rb +0 -24
  382. data/spec/support/console_helper.rb +0 -29
  383. data/spec/syntax/multiple.exp +0 -23
  384. data/spec/syntax/multiple.yaml +0 -198
  385. data/spec/syntax/multiple_formatted.exp +0 -71
  386. data/spec/syntax/multiple_hyperlink_formatted.exp +0 -71
  387. data/spec/syntax/multiple_schema_head_hyperlink_formatted.exp +0 -13
  388. data/spec/syntax/remark.exp +0 -193
  389. data/spec/syntax/remark.yaml +0 -471
  390. data/spec/syntax/remark_formatted.exp +0 -228
  391. data/spec/syntax/single.exp +0 -4
  392. data/spec/syntax/single.yaml +0 -18
  393. data/spec/syntax/single_formatted.exp +0 -10
  394. data/spec/syntax/single_formatted.yaml +0 -36
  395. data/spec/syntax/syntax.exp +0 -333
  396. data/spec/syntax/syntax.yaml +0 -3509
  397. data/spec/syntax/syntax_formatted.exp +0 -902
  398. data/spec/syntax/syntax_hyperlink_formatted.exp +0 -902
  399. data/spec/syntax/syntax_schema_head_formatted.exp +0 -18
@@ -1,418 +0,0 @@
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 <functional>
7
- #include <unordered_set>
8
-
9
- #include "misc/MurmurHash.h"
10
- #include "support/Casts.h"
11
- #include "support/CPPUtils.h"
12
- #include "support/Arrays.h"
13
-
14
- #include "SemanticContext.h"
15
-
16
- using namespace antlr4;
17
- using namespace antlr4::atn;
18
- using namespace antlrcpp;
19
-
20
- namespace {
21
-
22
- struct SemanticContextHasher final {
23
- size_t operator()(const SemanticContext *semanticContext) const {
24
- return semanticContext->hashCode();
25
- }
26
- };
27
-
28
- struct SemanticContextComparer final {
29
- bool operator()(const SemanticContext *lhs, const SemanticContext *rhs) const {
30
- return *lhs == *rhs;
31
- }
32
- };
33
-
34
- template <typename Comparer>
35
- void insertSemanticContext(const Ref<const SemanticContext> &semanticContext,
36
- std::unordered_set<const SemanticContext*, SemanticContextHasher, SemanticContextComparer> &operandSet,
37
- std::vector<Ref<const SemanticContext>> &operandList,
38
- Ref<const SemanticContext::PrecedencePredicate> &precedencePredicate,
39
- Comparer comparer) {
40
- if (semanticContext != nullptr) {
41
- if (semanticContext->getContextType() == SemanticContextType::PRECEDENCE) {
42
- if (precedencePredicate == nullptr || comparer(downCast<const SemanticContext::PrecedencePredicate*>(semanticContext.get())->precedence, precedencePredicate->precedence)) {
43
- precedencePredicate = std::static_pointer_cast<const SemanticContext::PrecedencePredicate>(semanticContext);
44
- }
45
- } else {
46
- auto [existing, inserted] = operandSet.insert(semanticContext.get());
47
- if (inserted) {
48
- operandList.push_back(semanticContext);
49
- }
50
- }
51
- }
52
- }
53
-
54
- template <typename Comparer>
55
- void insertSemanticContext(Ref<const SemanticContext> &&semanticContext,
56
- std::unordered_set<const SemanticContext*, SemanticContextHasher, SemanticContextComparer> &operandSet,
57
- std::vector<Ref<const SemanticContext>> &operandList,
58
- Ref<const SemanticContext::PrecedencePredicate> &precedencePredicate,
59
- Comparer comparer) {
60
- if (semanticContext != nullptr) {
61
- if (semanticContext->getContextType() == SemanticContextType::PRECEDENCE) {
62
- if (precedencePredicate == nullptr || comparer(downCast<const SemanticContext::PrecedencePredicate*>(semanticContext.get())->precedence, precedencePredicate->precedence)) {
63
- precedencePredicate = std::static_pointer_cast<const SemanticContext::PrecedencePredicate>(std::move(semanticContext));
64
- }
65
- } else {
66
- auto [existing, inserted] = operandSet.insert(semanticContext.get());
67
- if (inserted) {
68
- operandList.push_back(std::move(semanticContext));
69
- }
70
- }
71
- }
72
- }
73
-
74
- size_t predictOperandCapacity(const Ref<const SemanticContext> &x) {
75
- switch (x->getContextType()) {
76
- case SemanticContextType::AND:
77
- return downCast<const SemanticContext::AND&>(*x).getOperands().size();
78
- case SemanticContextType::OR:
79
- return downCast<const SemanticContext::OR&>(*x).getOperands().size();
80
- default:
81
- return 1;
82
- }
83
- }
84
-
85
- size_t predictOperandCapacity(const Ref<const SemanticContext> &a, const Ref<const SemanticContext> &b) {
86
- return predictOperandCapacity(a) + predictOperandCapacity(b);
87
- }
88
-
89
- }
90
-
91
- //------------------ Predicate -----------------------------------------------------------------------------------------
92
-
93
- SemanticContext::Predicate::Predicate(size_t ruleIndex, size_t predIndex, bool isCtxDependent)
94
- : SemanticContext(SemanticContextType::PREDICATE), ruleIndex(ruleIndex), predIndex(predIndex), isCtxDependent(isCtxDependent) {}
95
-
96
- bool SemanticContext::Predicate::eval(Recognizer *parser, RuleContext *parserCallStack) const {
97
- RuleContext *localctx = nullptr;
98
- if (isCtxDependent) {
99
- localctx = parserCallStack;
100
- }
101
- return parser->sempred(localctx, ruleIndex, predIndex);
102
- }
103
-
104
- size_t SemanticContext::Predicate::hashCode() const {
105
- size_t hashCode = misc::MurmurHash::initialize();
106
- hashCode = misc::MurmurHash::update(hashCode, static_cast<size_t>(getContextType()));
107
- hashCode = misc::MurmurHash::update(hashCode, ruleIndex);
108
- hashCode = misc::MurmurHash::update(hashCode, predIndex);
109
- hashCode = misc::MurmurHash::update(hashCode, isCtxDependent ? 1 : 0);
110
- hashCode = misc::MurmurHash::finish(hashCode, 4);
111
- return hashCode;
112
- }
113
-
114
- bool SemanticContext::Predicate::equals(const SemanticContext &other) const {
115
- if (this == &other) {
116
- return true;
117
- }
118
- if (getContextType() != other.getContextType()) {
119
- return false;
120
- }
121
- const Predicate &p = downCast<const Predicate&>(other);
122
- return ruleIndex == p.ruleIndex && predIndex == p.predIndex && isCtxDependent == p.isCtxDependent;
123
- }
124
-
125
- std::string SemanticContext::Predicate::toString() const {
126
- return std::string("{") + std::to_string(ruleIndex) + std::string(":") + std::to_string(predIndex) + std::string("}?");
127
- }
128
-
129
- //------------------ PrecedencePredicate -------------------------------------------------------------------------------
130
-
131
- SemanticContext::PrecedencePredicate::PrecedencePredicate(int precedence) : SemanticContext(SemanticContextType::PRECEDENCE), precedence(precedence) {}
132
-
133
- bool SemanticContext::PrecedencePredicate::eval(Recognizer *parser, RuleContext *parserCallStack) const {
134
- return parser->precpred(parserCallStack, precedence);
135
- }
136
-
137
- Ref<const SemanticContext> SemanticContext::PrecedencePredicate::evalPrecedence(Recognizer *parser,
138
- RuleContext *parserCallStack) const {
139
- if (parser->precpred(parserCallStack, precedence)) {
140
- return SemanticContext::Empty::Instance;
141
- }
142
- return nullptr;
143
- }
144
-
145
- size_t SemanticContext::PrecedencePredicate::hashCode() const {
146
- size_t hashCode = misc::MurmurHash::initialize();
147
- hashCode = misc::MurmurHash::update(hashCode, static_cast<size_t>(getContextType()));
148
- hashCode = misc::MurmurHash::update(hashCode, static_cast<size_t>(precedence));
149
- return misc::MurmurHash::finish(hashCode, 2);
150
- }
151
-
152
- bool SemanticContext::PrecedencePredicate::equals(const SemanticContext &other) const {
153
- if (this == &other) {
154
- return true;
155
- }
156
- if (getContextType() != other.getContextType()) {
157
- return false;
158
- }
159
- const PrecedencePredicate &predicate = downCast<const PrecedencePredicate&>(other);
160
- return precedence == predicate.precedence;
161
- }
162
-
163
- std::string SemanticContext::PrecedencePredicate::toString() const {
164
- return "{" + std::to_string(precedence) + ">=prec}?";
165
- }
166
-
167
- //------------------ AND -----------------------------------------------------------------------------------------------
168
-
169
- SemanticContext::AND::AND(Ref<const SemanticContext> a, Ref<const SemanticContext> b) : Operator(SemanticContextType::AND) {
170
- std::unordered_set<const SemanticContext*, SemanticContextHasher, SemanticContextComparer> operands;
171
- Ref<const SemanticContext::PrecedencePredicate> precedencePredicate;
172
-
173
- _opnds.reserve(predictOperandCapacity(a, b) + 1);
174
-
175
- if (a->getContextType() == SemanticContextType::AND) {
176
- for (const auto &operand : downCast<const AND*>(a.get())->getOperands()) {
177
- insertSemanticContext(operand, operands, _opnds, precedencePredicate, std::less<int>{});
178
- }
179
- } else {
180
- insertSemanticContext(std::move(a), operands, _opnds, precedencePredicate, std::less<int>{});
181
- }
182
-
183
- if (b->getContextType() == SemanticContextType::AND) {
184
- for (const auto &operand : downCast<const AND*>(b.get())->getOperands()) {
185
- insertSemanticContext(operand, operands, _opnds, precedencePredicate, std::less<int>{});
186
- }
187
- } else {
188
- insertSemanticContext(std::move(b), operands, _opnds, precedencePredicate, std::less<int>{});
189
- }
190
-
191
- if (precedencePredicate != nullptr) {
192
- // interested in the transition with the lowest precedence
193
- auto [existing, inserted] = operands.insert(precedencePredicate.get());
194
- if (inserted) {
195
- _opnds.push_back(std::move(precedencePredicate));
196
- }
197
- }
198
- }
199
-
200
- const std::vector<Ref<const SemanticContext>>& SemanticContext::AND::getOperands() const {
201
- return _opnds;
202
- }
203
-
204
- bool SemanticContext::AND::equals(const SemanticContext &other) const {
205
- if (this == &other) {
206
- return true;
207
- }
208
- if (getContextType() != other.getContextType()) {
209
- return false;
210
- }
211
- const AND &context = downCast<const AND&>(other);
212
- return Arrays::equals(getOperands(), context.getOperands());
213
- }
214
-
215
- size_t SemanticContext::AND::hashCode() const {
216
- size_t hash = misc::MurmurHash::initialize();
217
- hash = misc::MurmurHash::update(hash, static_cast<size_t>(getContextType()));
218
- return misc::MurmurHash::hashCode(getOperands(), hash);
219
- }
220
-
221
- bool SemanticContext::AND::eval(Recognizer *parser, RuleContext *parserCallStack) const {
222
- for (const auto &opnd : getOperands()) {
223
- if (!opnd->eval(parser, parserCallStack)) {
224
- return false;
225
- }
226
- }
227
- return true;
228
- }
229
-
230
- Ref<const SemanticContext> SemanticContext::AND::evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const {
231
- bool differs = false;
232
- std::vector<Ref<const SemanticContext>> operands;
233
- for (const auto &context : getOperands()) {
234
- auto evaluated = context->evalPrecedence(parser, parserCallStack);
235
- differs |= (evaluated != context);
236
- if (evaluated == nullptr) {
237
- // The AND context is false if any element is false.
238
- return nullptr;
239
- }
240
- if (evaluated != Empty::Instance) {
241
- // Reduce the result by skipping true elements.
242
- operands.push_back(std::move(evaluated));
243
- }
244
- }
245
-
246
- if (!differs) {
247
- return shared_from_this();
248
- }
249
-
250
- if (operands.empty()) {
251
- // All elements were true, so the AND context is true.
252
- return Empty::Instance;
253
- }
254
-
255
- Ref<const SemanticContext> result = std::move(operands[0]);
256
- for (size_t i = 1; i < operands.size(); ++i) {
257
- result = SemanticContext::And(std::move(result), std::move(operands[i]));
258
- }
259
-
260
- return result;
261
- }
262
-
263
- std::string SemanticContext::AND::toString() const {
264
- std::string tmp;
265
- for (const auto &var : getOperands()) {
266
- tmp += var->toString() + " && ";
267
- }
268
- return tmp;
269
- }
270
-
271
- //------------------ OR ------------------------------------------------------------------------------------------------
272
-
273
- SemanticContext::OR::OR(Ref<const SemanticContext> a, Ref<const SemanticContext> b) : Operator(SemanticContextType::OR) {
274
- std::unordered_set<const SemanticContext*, SemanticContextHasher, SemanticContextComparer> operands;
275
- Ref<const SemanticContext::PrecedencePredicate> precedencePredicate;
276
-
277
- _opnds.reserve(predictOperandCapacity(a, b) + 1);
278
-
279
- if (a->getContextType() == SemanticContextType::OR) {
280
- for (const auto &operand : downCast<const OR*>(a.get())->getOperands()) {
281
- insertSemanticContext(operand, operands, _opnds, precedencePredicate, std::greater<int>{});
282
- }
283
- } else {
284
- insertSemanticContext(std::move(a), operands, _opnds, precedencePredicate, std::greater<int>{});
285
- }
286
-
287
- if (b->getContextType() == SemanticContextType::OR) {
288
- for (const auto &operand : downCast<const OR*>(b.get())->getOperands()) {
289
- insertSemanticContext(operand, operands, _opnds, precedencePredicate, std::greater<int>{});
290
- }
291
- } else {
292
- insertSemanticContext(std::move(b), operands, _opnds, precedencePredicate, std::greater<int>{});
293
- }
294
-
295
- if (precedencePredicate != nullptr) {
296
- // interested in the transition with the highest precedence
297
- auto [existing, inserted] = operands.insert(precedencePredicate.get());
298
- if (inserted) {
299
- _opnds.push_back(std::move(precedencePredicate));
300
- }
301
- }
302
- }
303
-
304
- const std::vector<Ref<const SemanticContext>>& SemanticContext::OR::getOperands() const {
305
- return _opnds;
306
- }
307
-
308
- bool SemanticContext::OR::equals(const SemanticContext &other) const {
309
- if (this == &other) {
310
- return true;
311
- }
312
- if (getContextType() != other.getContextType()) {
313
- return false;
314
- }
315
- const OR &context = downCast<const OR&>(other);
316
- return Arrays::equals(getOperands(), context.getOperands());
317
- }
318
-
319
- size_t SemanticContext::OR::hashCode() const {
320
- size_t hash = misc::MurmurHash::initialize();
321
- hash = misc::MurmurHash::update(hash, static_cast<size_t>(getContextType()));
322
- return misc::MurmurHash::hashCode(getOperands(), hash);
323
- }
324
-
325
- bool SemanticContext::OR::eval(Recognizer *parser, RuleContext *parserCallStack) const {
326
- for (const auto &opnd : getOperands()) {
327
- if (opnd->eval(parser, parserCallStack)) {
328
- return true;
329
- }
330
- }
331
- return false;
332
- }
333
-
334
- Ref<const SemanticContext> SemanticContext::OR::evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const {
335
- bool differs = false;
336
- std::vector<Ref<const SemanticContext>> operands;
337
- for (const auto &context : getOperands()) {
338
- auto evaluated = context->evalPrecedence(parser, parserCallStack);
339
- differs |= (evaluated != context);
340
- if (evaluated == Empty::Instance) {
341
- // The OR context is true if any element is true.
342
- return Empty::Instance;
343
- }
344
- if (evaluated != nullptr) {
345
- // Reduce the result by skipping false elements.
346
- operands.push_back(std::move(evaluated));
347
- }
348
- }
349
-
350
- if (!differs) {
351
- return shared_from_this();
352
- }
353
-
354
- if (operands.empty()) {
355
- // All elements were false, so the OR context is false.
356
- return nullptr;
357
- }
358
-
359
- Ref<const SemanticContext> result = std::move(operands[0]);
360
- for (size_t i = 1; i < operands.size(); ++i) {
361
- result = SemanticContext::Or(std::move(result), std::move(operands[i]));
362
- }
363
-
364
- return result;
365
- }
366
-
367
- std::string SemanticContext::OR::toString() const {
368
- std::string tmp;
369
- for(const auto &var : getOperands()) {
370
- tmp += var->toString() + " || ";
371
- }
372
- return tmp;
373
- }
374
-
375
- //------------------ SemanticContext -----------------------------------------------------------------------------------
376
-
377
- const Ref<const SemanticContext> SemanticContext::Empty::Instance = std::make_shared<Predicate>(INVALID_INDEX, INVALID_INDEX, false);
378
-
379
- Ref<const SemanticContext> SemanticContext::evalPrecedence(Recognizer * /*parser*/, RuleContext * /*parserCallStack*/) const {
380
- return shared_from_this();
381
- }
382
-
383
- Ref<const SemanticContext> SemanticContext::And(Ref<const SemanticContext> a, Ref<const SemanticContext> b) {
384
- if (!a || a == Empty::Instance) {
385
- return b;
386
- }
387
-
388
- if (!b || b == Empty::Instance) {
389
- return a;
390
- }
391
-
392
- Ref<AND> result = std::make_shared<AND>(std::move(a), std::move(b));
393
- if (result->getOperands().size() == 1) {
394
- return result->getOperands()[0];
395
- }
396
-
397
- return result;
398
- }
399
-
400
- Ref<const SemanticContext> SemanticContext::Or(Ref<const SemanticContext> a, Ref<const SemanticContext> b) {
401
- if (!a) {
402
- return b;
403
- }
404
- if (!b) {
405
- return a;
406
- }
407
-
408
- if (a == Empty::Instance || b == Empty::Instance) {
409
- return Empty::Instance;
410
- }
411
-
412
- Ref<OR> result = std::make_shared<OR>(std::move(a), std::move(b));
413
- if (result->getOperands().size() == 1) {
414
- return result->getOperands()[0];
415
- }
416
-
417
- return result;
418
- }
@@ -1,237 +0,0 @@
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 "Recognizer.h"
9
- #include "support/CPPUtils.h"
10
- #include "atn/SemanticContextType.h"
11
-
12
- namespace antlr4 {
13
- namespace atn {
14
-
15
- /// A tree structure used to record the semantic context in which
16
- /// an ATN configuration is valid. It's either a single predicate,
17
- /// a conjunction "p1 && p2", or a sum of products "p1||p2".
18
- ///
19
- /// I have scoped the AND, OR, and Predicate subclasses of
20
- /// SemanticContext within the scope of this outer class.
21
- class ANTLR4CPP_PUBLIC SemanticContext : public std::enable_shared_from_this<SemanticContext> {
22
- public:
23
- virtual ~SemanticContext() = default;
24
-
25
- SemanticContextType getContextType() const { return _contextType; }
26
-
27
- /// <summary>
28
- /// For context independent predicates, we evaluate them without a local
29
- /// context (i.e., null context). That way, we can evaluate them without
30
- /// having to create proper rule-specific context during prediction (as
31
- /// opposed to the parser, which creates them naturally). In a practical
32
- /// sense, this avoids a cast exception from RuleContext to myruleContext.
33
- /// <p/>
34
- /// For context dependent predicates, we must pass in a local context so that
35
- /// references such as $arg evaluate properly as _localctx.arg. We only
36
- /// capture context dependent predicates in the context in which we begin
37
- /// prediction, so we passed in the outer context here in case of context
38
- /// dependent predicate evaluation.
39
- /// </summary>
40
- virtual bool eval(Recognizer *parser, RuleContext *parserCallStack) const = 0;
41
-
42
- /**
43
- * Evaluate the precedence predicates for the context and reduce the result.
44
- *
45
- * @param parser The parser instance.
46
- * @param parserCallStack
47
- * @return The simplified semantic context after precedence predicates are
48
- * evaluated, which will be one of the following values.
49
- * <ul>
50
- * <li>{@link #NONE}: if the predicate simplifies to {@code true} after
51
- * precedence predicates are evaluated.</li>
52
- * <li>{@code null}: if the predicate simplifies to {@code false} after
53
- * precedence predicates are evaluated.</li>
54
- * <li>{@code this}: if the semantic context is not changed as a result of
55
- * precedence predicate evaluation.</li>
56
- * <li>A non-{@code null} {@link SemanticContext}: the new simplified
57
- * semantic context after precedence predicates are evaluated.</li>
58
- * </ul>
59
- */
60
- virtual Ref<const SemanticContext> evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const;
61
-
62
- virtual size_t hashCode() const = 0;
63
-
64
- virtual bool equals(const SemanticContext &other) const = 0;
65
-
66
- virtual std::string toString() const = 0;
67
-
68
- static Ref<const SemanticContext> And(Ref<const SemanticContext> a, Ref<const SemanticContext> b);
69
-
70
- /// See also: ParserATNSimulator::getPredsForAmbigAlts.
71
- static Ref<const SemanticContext> Or(Ref<const SemanticContext> a, Ref<const SemanticContext> b);
72
-
73
- class Empty;
74
- class Predicate;
75
- class PrecedencePredicate;
76
- class Operator;
77
- class AND;
78
- class OR;
79
-
80
- protected:
81
- explicit SemanticContext(SemanticContextType contextType) : _contextType(contextType) {}
82
-
83
- private:
84
- const SemanticContextType _contextType;
85
- };
86
-
87
- inline bool operator==(const SemanticContext &lhs, const SemanticContext &rhs) {
88
- return lhs.equals(rhs);
89
- }
90
-
91
- inline bool operator!=(const SemanticContext &lhs, const SemanticContext &rhs) {
92
- return !operator==(lhs, rhs);
93
- }
94
-
95
- class ANTLR4CPP_PUBLIC SemanticContext::Empty : public SemanticContext{
96
- public:
97
- /**
98
- * The default {@link SemanticContext}, which is semantically equivalent to
99
- * a predicate of the form {@code {true}?}.
100
- */
101
- static const Ref<const SemanticContext> Instance;
102
- };
103
-
104
- class ANTLR4CPP_PUBLIC SemanticContext::Predicate final : public SemanticContext {
105
- public:
106
- static bool is(const SemanticContext &semanticContext) { return semanticContext.getContextType() == SemanticContextType::PREDICATE; }
107
-
108
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
109
-
110
- const size_t ruleIndex;
111
- const size_t predIndex;
112
- const bool isCtxDependent; // e.g., $i ref in pred
113
-
114
- Predicate(size_t ruleIndex, size_t predIndex, bool isCtxDependent);
115
-
116
- bool eval(Recognizer *parser, RuleContext *parserCallStack) const override;
117
- size_t hashCode() const override;
118
- bool equals(const SemanticContext &other) const override;
119
- std::string toString() const override;
120
- };
121
-
122
- class ANTLR4CPP_PUBLIC SemanticContext::PrecedencePredicate final : public SemanticContext {
123
- public:
124
- static bool is(const SemanticContext &semanticContext) { return semanticContext.getContextType() == SemanticContextType::PRECEDENCE; }
125
-
126
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
127
-
128
- const int precedence;
129
-
130
- explicit PrecedencePredicate(int precedence);
131
-
132
- bool eval(Recognizer *parser, RuleContext *parserCallStack) const override;
133
- Ref<const SemanticContext> evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const override;
134
- size_t hashCode() const override;
135
- bool equals(const SemanticContext &other) const override;
136
- std::string toString() const override;
137
- };
138
-
139
- /**
140
- * This is the base class for semantic context "operators", which operate on
141
- * a collection of semantic context "operands".
142
- *
143
- * @since 4.3
144
- */
145
- class ANTLR4CPP_PUBLIC SemanticContext::Operator : public SemanticContext {
146
- public:
147
- static bool is(const SemanticContext &semanticContext) {
148
- const auto contextType = semanticContext.getContextType();
149
- return contextType == SemanticContextType::AND || contextType == SemanticContextType::OR;
150
- }
151
-
152
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
153
-
154
- /**
155
- * Gets the operands for the semantic context operator.
156
- *
157
- * @return a collection of {@link SemanticContext} operands for the
158
- * operator.
159
- *
160
- * @since 4.3
161
- */
162
-
163
- virtual const std::vector<Ref<const SemanticContext>>& getOperands() const = 0;
164
-
165
- protected:
166
- using SemanticContext::SemanticContext;
167
- };
168
-
169
- /**
170
- * A semantic context which is true whenever none of the contained contexts
171
- * is false.
172
- */
173
- class ANTLR4CPP_PUBLIC SemanticContext::AND final : public SemanticContext::Operator {
174
- public:
175
- static bool is(const SemanticContext &semanticContext) { return semanticContext.getContextType() == SemanticContextType::AND; }
176
-
177
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
178
-
179
- AND(Ref<const SemanticContext> a, Ref<const SemanticContext> b) ;
180
-
181
- const std::vector<Ref<const SemanticContext>>& getOperands() const override;
182
-
183
- /**
184
- * The evaluation of predicates by this context is short-circuiting, but
185
- * unordered.</p>
186
- */
187
- bool eval(Recognizer *parser, RuleContext *parserCallStack) const override;
188
- Ref<const SemanticContext> evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const override;
189
- size_t hashCode() const override;
190
- bool equals(const SemanticContext &other) const override;
191
- std::string toString() const override;
192
-
193
- private:
194
- std::vector<Ref<const SemanticContext>> _opnds;
195
- };
196
-
197
- /**
198
- * A semantic context which is true whenever at least one of the contained
199
- * contexts is true.
200
- */
201
- class ANTLR4CPP_PUBLIC SemanticContext::OR final : public SemanticContext::Operator {
202
- public:
203
- static bool is(const SemanticContext &semanticContext) { return semanticContext.getContextType() == SemanticContextType::OR; }
204
-
205
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
206
-
207
- OR(Ref<const SemanticContext> a, Ref<const SemanticContext> b);
208
-
209
- const std::vector<Ref<const SemanticContext>>& getOperands() const override;
210
-
211
- /**
212
- * The evaluation of predicates by this context is short-circuiting, but
213
- * unordered.
214
- */
215
- bool eval(Recognizer *parser, RuleContext *parserCallStack) const override;
216
- Ref<const SemanticContext> evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const override;
217
- size_t hashCode() const override;
218
- bool equals(const SemanticContext &other) const override;
219
- std::string toString() const override;
220
-
221
- private:
222
- std::vector<Ref<const SemanticContext>> _opnds;
223
- };
224
-
225
- } // namespace atn
226
- } // namespace antlr4
227
-
228
- namespace std {
229
-
230
- template <>
231
- struct hash<::antlr4::atn::SemanticContext> {
232
- size_t operator()(const ::antlr4::atn::SemanticContext &semanticContext) const {
233
- return semanticContext.hashCode();
234
- }
235
- };
236
-
237
- } // namespace std
@@ -1,23 +0,0 @@
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 <cstddef>
9
-
10
- #include "antlr4-common.h"
11
-
12
- namespace antlr4 {
13
- namespace atn {
14
-
15
- enum class SemanticContextType : size_t {
16
- PREDICATE = 1,
17
- PRECEDENCE = 2,
18
- AND = 3,
19
- OR = 4,
20
- };
21
-
22
- } // namespace atn
23
- } // namespace antlr4