did_parser 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +12 -0
  3. data/Rakefile +28 -0
  4. data/did_parser.gemspec +31 -0
  5. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +10 -0
  6. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +167 -0
  7. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +10 -0
  8. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +121 -0
  9. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +23 -0
  10. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +30 -0
  11. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +180 -0
  12. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +79 -0
  13. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +61 -0
  14. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +59 -0
  15. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +25 -0
  16. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +36 -0
  17. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +414 -0
  18. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +200 -0
  19. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +11 -0
  20. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +37 -0
  21. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +193 -0
  22. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +158 -0
  23. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +39 -0
  24. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +74 -0
  25. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +78 -0
  26. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +79 -0
  27. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +15 -0
  28. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +35 -0
  29. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +336 -0
  30. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +466 -0
  31. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +84 -0
  32. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +80 -0
  33. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +64 -0
  34. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +99 -0
  35. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +52 -0
  36. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +32 -0
  37. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +18 -0
  38. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +24 -0
  39. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +12 -0
  40. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +218 -0
  41. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +19 -0
  42. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +45 -0
  43. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +294 -0
  44. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +196 -0
  45. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +60 -0
  46. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +46 -0
  47. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +36 -0
  48. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +31 -0
  49. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +92 -0
  50. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +88 -0
  51. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +46 -0
  52. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +42 -0
  53. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +668 -0
  54. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +461 -0
  55. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +294 -0
  56. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +173 -0
  57. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +138 -0
  58. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +147 -0
  59. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +53 -0
  60. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +38 -0
  61. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +65 -0
  62. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +98 -0
  63. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +156 -0
  64. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +159 -0
  65. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +144 -0
  66. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +141 -0
  67. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +27 -0
  68. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +32 -0
  69. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +54 -0
  70. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +155 -0
  71. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +9 -0
  72. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +92 -0
  73. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +30 -0
  74. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +9 -0
  75. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +85 -0
  76. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +11 -0
  77. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +137 -0
  78. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +425 -0
  79. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +295 -0
  80. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +208 -0
  81. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +117 -0
  82. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +270 -0
  83. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +115 -0
  84. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Version.h +42 -0
  85. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +64 -0
  86. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +177 -0
  87. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +9 -0
  88. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +23 -0
  89. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +98 -0
  90. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +169 -0
  91. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +158 -0
  92. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +132 -0
  93. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +106 -0
  94. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +157 -0
  95. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +232 -0
  96. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +156 -0
  97. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +54 -0
  98. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +48 -0
  99. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +629 -0
  100. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +32 -0
  101. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +33 -0
  102. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +71 -0
  103. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +56 -0
  104. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +139 -0
  105. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.cpp +33 -0
  106. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.h +36 -0
  107. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +20 -0
  108. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +29 -0
  109. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +35 -0
  110. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +16 -0
  111. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +68 -0
  112. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +109 -0
  113. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +51 -0
  114. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +27 -0
  115. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +33 -0
  116. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +24 -0
  117. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +23 -0
  118. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +26 -0
  119. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +30 -0
  120. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
  121. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +47 -0
  122. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +14 -0
  123. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +70 -0
  124. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +25 -0
  125. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +227 -0
  126. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +12 -0
  127. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +34 -0
  128. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +31 -0
  129. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +42 -0
  130. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +15 -0
  131. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +43 -0
  132. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +189 -0
  133. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +76 -0
  134. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +67 -0
  135. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +44 -0
  136. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +615 -0
  137. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +199 -0
  138. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +15 -0
  139. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +100 -0
  140. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +111 -0
  141. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +128 -0
  142. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +57 -0
  143. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +43 -0
  144. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +59 -0
  145. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +45 -0
  146. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +75 -0
  147. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +57 -0
  148. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +76 -0
  149. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +43 -0
  150. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +57 -0
  151. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +36 -0
  152. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +53 -0
  153. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +36 -0
  154. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +53 -0
  155. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +43 -0
  156. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +57 -0
  157. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +36 -0
  158. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +51 -0
  159. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +43 -0
  160. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +51 -0
  161. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
  162. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +42 -0
  163. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +26 -0
  164. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +22 -0
  165. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +27 -0
  166. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +16 -0
  167. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +25 -0
  168. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +102 -0
  169. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +102 -0
  170. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +1383 -0
  171. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +911 -0
  172. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulatorOptions.h +50 -0
  173. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +29 -0
  174. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +25 -0
  175. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +23 -0
  176. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +35 -0
  177. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
  178. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +62 -0
  179. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +24 -0
  180. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +50 -0
  181. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +579 -0
  182. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +225 -0
  183. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp +56 -0
  184. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.h +64 -0
  185. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp +167 -0
  186. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h +101 -0
  187. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCacheOptions.h +71 -0
  188. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextType.h +21 -0
  189. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +202 -0
  190. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +436 -0
  191. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
  192. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +60 -0
  193. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +26 -0
  194. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +31 -0
  195. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +26 -0
  196. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +27 -0
  197. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +33 -0
  198. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +42 -0
  199. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +418 -0
  200. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +233 -0
  201. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContextType.h +23 -0
  202. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SerializedATNView.h +101 -0
  203. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +28 -0
  204. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +38 -0
  205. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +86 -0
  206. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +43 -0
  207. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +24 -0
  208. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +37 -0
  209. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +19 -0
  210. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +25 -0
  211. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +24 -0
  212. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +36 -0
  213. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +65 -0
  214. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.cpp +27 -0
  215. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.h +33 -0
  216. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +21 -0
  217. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +27 -0
  218. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +115 -0
  219. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +96 -0
  220. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +60 -0
  221. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +32 -0
  222. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +59 -0
  223. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +153 -0
  224. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +17 -0
  225. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +22 -0
  226. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +124 -0
  227. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +33 -0
  228. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +61 -0
  229. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +84 -0
  230. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +508 -0
  231. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +190 -0
  232. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +120 -0
  233. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +102 -0
  234. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +4 -0
  235. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +21 -0
  236. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +8 -0
  237. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +16 -0
  238. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +43 -0
  239. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +149 -0
  240. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +76 -0
  241. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +207 -0
  242. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +65 -0
  243. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Casts.h +34 -0
  244. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +161 -0
  245. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +38 -0
  246. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +16 -0
  247. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Unicode.h +28 -0
  248. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.cpp +242 -0
  249. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.h +54 -0
  250. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +129 -0
  251. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +24 -0
  252. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +54 -0
  253. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +43 -0
  254. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +66 -0
  255. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
  256. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +12 -0
  257. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +111 -0
  258. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +9 -0
  259. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +39 -0
  260. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +50 -0
  261. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeType.h +22 -0
  262. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
  263. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +57 -0
  264. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +48 -0
  265. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +55 -0
  266. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +40 -0
  267. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +54 -0
  268. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +32 -0
  269. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +241 -0
  270. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +78 -0
  271. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +9 -0
  272. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +44 -0
  273. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
  274. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
  275. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
  276. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
  277. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +370 -0
  278. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
  279. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
  280. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +117 -0
  281. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +39 -0
  282. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +86 -0
  283. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +28 -0
  284. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +51 -0
  285. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
  286. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +80 -0
  287. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +154 -0
  288. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +86 -0
  289. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +31 -0
  290. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +40 -0
  291. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +182 -0
  292. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +47 -0
  293. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
  294. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
  295. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
  296. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
  297. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
  298. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
  299. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
  300. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
  301. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
  302. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
  303. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
  304. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
  305. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
  306. data/ext/did_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
  307. data/ext/did_parser/antlrgen/DIDLexer.cpp +225 -0
  308. data/ext/did_parser/antlrgen/DIDLexer.h +52 -0
  309. data/ext/did_parser/antlrgen/DIDLexer.interp +93 -0
  310. data/ext/did_parser/antlrgen/DIDLexer.tokens +42 -0
  311. data/ext/did_parser/antlrgen/DIDParser.cpp +2042 -0
  312. data/ext/did_parser/antlrgen/DIDParser.h +537 -0
  313. data/ext/did_parser/antlrgen/DIDParser.interp +74 -0
  314. data/ext/did_parser/antlrgen/DIDParser.tokens +42 -0
  315. data/ext/did_parser/antlrgen/DIDParserBaseListener.cpp +7 -0
  316. data/ext/did_parser/antlrgen/DIDParserBaseListener.h +104 -0
  317. data/ext/did_parser/antlrgen/DIDParserBaseVisitor.cpp +7 -0
  318. data/ext/did_parser/antlrgen/DIDParserBaseVisitor.h +124 -0
  319. data/ext/did_parser/antlrgen/DIDParserListener.cpp +7 -0
  320. data/ext/did_parser/antlrgen/DIDParserListener.h +97 -0
  321. data/ext/did_parser/antlrgen/DIDParserVisitor.cpp +7 -0
  322. data/ext/did_parser/antlrgen/DIDParserVisitor.h +76 -0
  323. data/ext/did_parser/did_parser.cpp +2996 -0
  324. data/ext/did_parser/extconf.rb +38 -0
  325. data/lib/did_parser/version.rb +3 -0
  326. data/lib/did_parser.rb +2 -0
  327. metadata +382 -0
@@ -0,0 +1,59 @@
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 "atn/LexerAction.h"
9
+ #include "atn/LexerActionType.h"
10
+
11
+ namespace antlr4 {
12
+ namespace atn {
13
+
14
+ using antlr4::Lexer;
15
+
16
+ /// <summary>
17
+ /// Implements the {@code channel} lexer action by calling
18
+ /// <seealso cref="Lexer#setChannel"/> with the assigned channel.
19
+ ///
20
+ /// @author Sam Harwell
21
+ /// @since 4.2
22
+ /// </summary>
23
+ class ANTLR4CPP_PUBLIC LexerChannelAction final : public LexerAction {
24
+ public:
25
+ static bool is(const LexerAction &lexerAction) { return lexerAction.getActionType() == LexerActionType::CHANNEL; }
26
+
27
+ static bool is(const LexerAction *lexerAction) { return lexerAction != nullptr && is(*lexerAction); }
28
+
29
+ /// <summary>
30
+ /// Constructs a new {@code channel} action with the specified channel value. </summary>
31
+ /// <param name="channel"> The channel value to pass to <seealso cref="Lexer#setChannel"/>. </param>
32
+ explicit LexerChannelAction(int channel);
33
+
34
+ /// <summary>
35
+ /// Gets the channel to use for the <seealso cref="Token"/> created by the lexer.
36
+ /// </summary>
37
+ /// <returns> The channel to use for the <seealso cref="Token"/> created by the lexer. </returns>
38
+ int getChannel() const { return _channel; }
39
+
40
+ /// <summary>
41
+ /// {@inheritDoc}
42
+ ///
43
+ /// <para>This action is implemented by calling <seealso cref="Lexer#setChannel"/> with the
44
+ /// value provided by <seealso cref="#getChannel"/>.</para>
45
+ /// </summary>
46
+ void execute(Lexer *lexer) const override;
47
+
48
+ bool equals(const LexerAction &other) const override;
49
+ std::string toString() const override;
50
+
51
+ protected:
52
+ size_t hashCodeImpl() const override;
53
+
54
+ private:
55
+ const int _channel;
56
+ };
57
+
58
+ } // namespace atn
59
+ } // namespace antlr4
@@ -0,0 +1,45 @@
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 "misc/MurmurHash.h"
7
+ #include "Lexer.h"
8
+ #include "support/Casts.h"
9
+
10
+ #include "atn/LexerCustomAction.h"
11
+
12
+ using namespace antlr4;
13
+ using namespace antlr4::atn;
14
+ using namespace antlr4::misc;
15
+ using namespace antlrcpp;
16
+
17
+ LexerCustomAction::LexerCustomAction(size_t ruleIndex, size_t actionIndex)
18
+ : LexerAction(LexerActionType::CUSTOM, true), _ruleIndex(ruleIndex), _actionIndex(actionIndex) {}
19
+
20
+ void LexerCustomAction::execute(Lexer *lexer) const {
21
+ lexer->action(nullptr, getRuleIndex(), getActionIndex());
22
+ }
23
+
24
+ size_t LexerCustomAction::hashCodeImpl() const {
25
+ size_t hash = MurmurHash::initialize();
26
+ hash = MurmurHash::update(hash, static_cast<size_t>(getActionType()));
27
+ hash = MurmurHash::update(hash, getRuleIndex());
28
+ hash = MurmurHash::update(hash, getActionIndex());
29
+ return MurmurHash::finish(hash, 3);
30
+ }
31
+
32
+ bool LexerCustomAction::equals(const LexerAction &other) const {
33
+ if (this == std::addressof(other)) {
34
+ return true;
35
+ }
36
+ if (getActionType() != other.getActionType()) {
37
+ return false;
38
+ }
39
+ const auto &lexerAction = downCast<const LexerCustomAction&>(other);
40
+ return getRuleIndex() == lexerAction.getRuleIndex() && getActionIndex() == lexerAction.getActionIndex();
41
+ }
42
+
43
+ std::string LexerCustomAction::toString() const {
44
+ return "custom(" + std::to_string(getRuleIndex()) + ", " + std::to_string(getActionIndex()) + ")";
45
+ }
@@ -0,0 +1,75 @@
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 "atn/LexerAction.h"
9
+ #include "atn/LexerActionType.h"
10
+
11
+ namespace antlr4 {
12
+ namespace atn {
13
+
14
+ /// <summary>
15
+ /// Executes a custom lexer action by calling <seealso cref="Recognizer#action"/> with the
16
+ /// rule and action indexes assigned to the custom action. The implementation of
17
+ /// a custom action is added to the generated code for the lexer in an override
18
+ /// of <seealso cref="Recognizer#action"/> when the grammar is compiled.
19
+ ///
20
+ /// <para>This class may represent embedded actions created with the <code>{...}</code>
21
+ /// syntax in ANTLR 4, as well as actions created for lexer commands where the
22
+ /// command argument could not be evaluated when the grammar was compiled.</para>
23
+ ///
24
+ /// @author Sam Harwell
25
+ /// @since 4.2
26
+ /// </summary>
27
+ class ANTLR4CPP_PUBLIC LexerCustomAction final : public LexerAction {
28
+ public:
29
+ static bool is(const LexerAction &lexerAction) { return lexerAction.getActionType() == LexerActionType::CUSTOM; }
30
+
31
+ static bool is(const LexerAction *lexerAction) { return lexerAction != nullptr && is(*lexerAction); }
32
+
33
+ /// <summary>
34
+ /// Constructs a custom lexer action with the specified rule and action
35
+ /// indexes.
36
+ /// </summary>
37
+ /// <param name="ruleIndex"> The rule index to use for calls to
38
+ /// <seealso cref="Recognizer#action"/>. </param>
39
+ /// <param name="actionIndex"> The action index to use for calls to
40
+ /// <seealso cref="Recognizer#action"/>. </param>
41
+ LexerCustomAction(size_t ruleIndex, size_t actionIndex);
42
+
43
+ /// <summary>
44
+ /// Gets the rule index to use for calls to <seealso cref="Recognizer#action"/>.
45
+ /// </summary>
46
+ /// <returns> The rule index for the custom action. </returns>
47
+ size_t getRuleIndex() const { return _ruleIndex; }
48
+
49
+ /// <summary>
50
+ /// Gets the action index to use for calls to <seealso cref="Recognizer#action"/>.
51
+ /// </summary>
52
+ /// <returns> The action index for the custom action. </returns>
53
+ size_t getActionIndex() const { return _actionIndex; }
54
+
55
+ /// <summary>
56
+ /// {@inheritDoc}
57
+ ///
58
+ /// <para>Custom actions are implemented by calling <seealso cref="Lexer#action"/> with the
59
+ /// appropriate rule and action indexes.</para>
60
+ /// </summary>
61
+ void execute(Lexer *lexer) const override;
62
+
63
+ bool equals(const LexerAction &other) const override;
64
+ std::string toString() const override;
65
+
66
+ protected:
67
+ size_t hashCodeImpl() const override;
68
+
69
+ private:
70
+ const size_t _ruleIndex;
71
+ const size_t _actionIndex;
72
+ };
73
+
74
+ } // namespace atn
75
+ } // namespace antlr4
@@ -0,0 +1,57 @@
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 "misc/MurmurHash.h"
7
+ #include "Lexer.h"
8
+ #include "support/CPPUtils.h"
9
+ #include "support/Casts.h"
10
+
11
+ #include "atn/LexerIndexedCustomAction.h"
12
+
13
+ using namespace antlr4;
14
+ using namespace antlr4::atn;
15
+ using namespace antlr4::misc;
16
+ using namespace antlrcpp;
17
+
18
+ namespace {
19
+
20
+ bool cachedHashCodeEqual(size_t lhs, size_t rhs) {
21
+ return lhs == rhs || lhs == 0 || rhs == 0;
22
+ }
23
+
24
+ }
25
+
26
+ LexerIndexedCustomAction::LexerIndexedCustomAction(int offset, Ref<const LexerAction> action)
27
+ : LexerAction(LexerActionType::INDEXED_CUSTOM, true), _action(std::move(action)), _offset(offset) {}
28
+
29
+ void LexerIndexedCustomAction::execute(Lexer *lexer) const {
30
+ // assume the input stream position was properly set by the calling code
31
+ getAction()->execute(lexer);
32
+ }
33
+
34
+ size_t LexerIndexedCustomAction::hashCodeImpl() const {
35
+ size_t hash = MurmurHash::initialize();
36
+ hash = MurmurHash::update(hash, static_cast<size_t>(getActionType()));
37
+ hash = MurmurHash::update(hash, getOffset());
38
+ hash = MurmurHash::update(hash, getAction());
39
+ return MurmurHash::finish(hash, 3);
40
+ }
41
+
42
+ bool LexerIndexedCustomAction::equals(const LexerAction &other) const {
43
+ if (this == std::addressof(other)) {
44
+ return true;
45
+ }
46
+ if (getActionType() != other.getActionType()) {
47
+ return false;
48
+ }
49
+ const auto &lexerAction = downCast<const LexerIndexedCustomAction&>(other);
50
+ return getOffset() == lexerAction.getOffset() &&
51
+ cachedHashCodeEqual(cachedHashCode(), lexerAction.cachedHashCode()) &&
52
+ *getAction() == *lexerAction.getAction();
53
+ }
54
+
55
+ std::string LexerIndexedCustomAction::toString() const {
56
+ return "indexedCustom(" + std::to_string(getOffset()) + ", " + getAction()->toString() + ")";
57
+ }
@@ -0,0 +1,76 @@
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 "RuleContext.h"
9
+ #include "atn/LexerAction.h"
10
+
11
+ namespace antlr4 {
12
+ namespace atn {
13
+
14
+ /// <summary>
15
+ /// This implementation of <seealso cref="LexerAction"/> is used for tracking input offsets
16
+ /// for position-dependent actions within a <seealso cref="LexerActionExecutor"/>.
17
+ ///
18
+ /// <para>This action is not serialized as part of the ATN, and is only required for
19
+ /// position-dependent lexer actions which appear at a location other than the
20
+ /// end of a rule. For more information about DFA optimizations employed for
21
+ /// lexer actions, see <seealso cref="LexerActionExecutor#append"/> and
22
+ /// <seealso cref="LexerActionExecutor#fixOffsetBeforeMatch"/>.</para>
23
+ ///
24
+ /// @author Sam Harwell
25
+ /// @since 4.2
26
+ /// </summary>
27
+ class ANTLR4CPP_PUBLIC LexerIndexedCustomAction final : public LexerAction {
28
+ public:
29
+ static bool is(const LexerAction &lexerAction) { return lexerAction.getActionType() == LexerActionType::INDEXED_CUSTOM; }
30
+
31
+ static bool is(const LexerAction *lexerAction) { return lexerAction != nullptr && is(*lexerAction); }
32
+
33
+ /// <summary>
34
+ /// Constructs a new indexed custom action by associating a character offset
35
+ /// with a <seealso cref="LexerAction"/>.
36
+ ///
37
+ /// <para>Note: This class is only required for lexer actions for which
38
+ /// <seealso cref="LexerAction#isPositionDependent"/> returns {@code true}.</para>
39
+ /// </summary>
40
+ /// <param name="offset"> The offset into the input <seealso cref="CharStream"/>, relative to
41
+ /// the token start index, at which the specified lexer action should be
42
+ /// executed. </param>
43
+ /// <param name="action"> The lexer action to execute at a particular offset in the
44
+ /// input <seealso cref="CharStream"/>. </param>
45
+ LexerIndexedCustomAction(int offset, Ref<const LexerAction> action);
46
+
47
+ /// <summary>
48
+ /// Gets the location in the input <seealso cref="CharStream"/> at which the lexer
49
+ /// action should be executed. The value is interpreted as an offset relative
50
+ /// to the token start index.
51
+ /// </summary>
52
+ /// <returns> The location in the input <seealso cref="CharStream"/> at which the lexer
53
+ /// action should be executed. </returns>
54
+ int getOffset() const { return _offset; }
55
+
56
+ /// <summary>
57
+ /// Gets the lexer action to execute.
58
+ /// </summary>
59
+ /// <returns> A <seealso cref="LexerAction"/> object which executes the lexer action. </returns>
60
+ const Ref<const LexerAction>& getAction() const { return _action; }
61
+
62
+ void execute(Lexer *lexer) const override;
63
+ bool equals(const LexerAction &other) const override;
64
+ std::string toString() const override;
65
+
66
+ protected:
67
+ size_t hashCodeImpl() const override;
68
+
69
+ private:
70
+ const Ref<const LexerAction> _action;
71
+ const int _offset;
72
+ };
73
+
74
+ } // namespace atn
75
+ } // namespace antlr4
76
+
@@ -0,0 +1,43 @@
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 "misc/MurmurHash.h"
7
+ #include "Lexer.h"
8
+ #include "support/Casts.h"
9
+
10
+ #include "atn/LexerModeAction.h"
11
+
12
+ using namespace antlr4;
13
+ using namespace antlr4::atn;
14
+ using namespace antlr4::misc;
15
+ using namespace antlrcpp;
16
+
17
+ LexerModeAction::LexerModeAction(int mode) : LexerAction(LexerActionType::MODE, false), _mode(mode) {}
18
+
19
+ void LexerModeAction::execute(Lexer *lexer) const {
20
+ lexer->setMode(getMode());
21
+ }
22
+
23
+ size_t LexerModeAction::hashCodeImpl() const {
24
+ size_t hash = MurmurHash::initialize();
25
+ hash = MurmurHash::update(hash, static_cast<size_t>(getActionType()));
26
+ hash = MurmurHash::update(hash, getMode());
27
+ return MurmurHash::finish(hash, 2);
28
+ }
29
+
30
+ bool LexerModeAction::equals(const LexerAction &other) const {
31
+ if (this == std::addressof(other)) {
32
+ return true;
33
+ }
34
+ if (getActionType() != other.getActionType()) {
35
+ return false;
36
+ }
37
+ const auto &lexerAction = downCast<const LexerModeAction&>(other);
38
+ return getMode() == lexerAction.getMode();
39
+ }
40
+
41
+ std::string LexerModeAction::toString() const {
42
+ return "mode(" + std::to_string(getMode()) + ")";
43
+ }
@@ -0,0 +1,57 @@
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 "atn/LexerAction.h"
9
+ #include "atn/LexerActionType.h"
10
+
11
+ namespace antlr4 {
12
+ namespace atn {
13
+
14
+ /// <summary>
15
+ /// Implements the {@code mode} lexer action by calling <seealso cref="Lexer#mode"/> with
16
+ /// the assigned mode.
17
+ ///
18
+ /// @author Sam Harwell
19
+ /// @since 4.2
20
+ /// </summary>
21
+ class ANTLR4CPP_PUBLIC LexerModeAction final : public LexerAction {
22
+ public:
23
+ static bool is(const LexerAction &lexerAction) { return lexerAction.getActionType() == LexerActionType::MODE; }
24
+
25
+ static bool is(const LexerAction *lexerAction) { return lexerAction != nullptr && is(*lexerAction); }
26
+
27
+ /// <summary>
28
+ /// Constructs a new {@code mode} action with the specified mode value. </summary>
29
+ /// <param name="mode"> The mode value to pass to <seealso cref="Lexer#mode"/>. </param>
30
+ explicit LexerModeAction(int mode);
31
+
32
+ /// <summary>
33
+ /// Get the lexer mode this action should transition the lexer to.
34
+ /// </summary>
35
+ /// <returns> The lexer mode for this {@code mode} command. </returns>
36
+ int getMode() const { return _mode; }
37
+
38
+ /// <summary>
39
+ /// {@inheritDoc}
40
+ ///
41
+ /// <para>This action is implemented by calling <seealso cref="Lexer#mode"/> with the
42
+ /// value provided by <seealso cref="#getMode"/>.</para>
43
+ /// </summary>
44
+ void execute(Lexer *lexer) const override;
45
+
46
+ bool equals(const LexerAction &obj) const override;
47
+ std::string toString() const override;
48
+
49
+ protected:
50
+ size_t hashCodeImpl() const override;
51
+
52
+ private:
53
+ const int _mode;
54
+ };
55
+
56
+ } // namespace atn
57
+ } // namespace antlr4
@@ -0,0 +1,36 @@
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 "misc/MurmurHash.h"
7
+ #include "Lexer.h"
8
+
9
+ #include "atn/LexerMoreAction.h"
10
+
11
+ using namespace antlr4;
12
+ using namespace antlr4::atn;
13
+ using namespace antlr4::misc;
14
+
15
+ const Ref<const LexerMoreAction>& LexerMoreAction::getInstance() {
16
+ static const Ref<const LexerMoreAction> instance(new LexerMoreAction());
17
+ return instance;
18
+ }
19
+
20
+ void LexerMoreAction::execute(Lexer *lexer) const {
21
+ lexer->more();
22
+ }
23
+
24
+ size_t LexerMoreAction::hashCodeImpl() const {
25
+ size_t hash = MurmurHash::initialize();
26
+ hash = MurmurHash::update(hash, static_cast<size_t>(getActionType()));
27
+ return MurmurHash::finish(hash, 1);
28
+ }
29
+
30
+ bool LexerMoreAction::equals(const LexerAction &other) const {
31
+ return this == std::addressof(other);
32
+ }
33
+
34
+ std::string LexerMoreAction::toString() const {
35
+ return "more";
36
+ }
@@ -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
+ #pragma once
7
+
8
+ #include "atn/LexerAction.h"
9
+ #include "atn/LexerActionType.h"
10
+
11
+ namespace antlr4 {
12
+ namespace atn {
13
+
14
+ /// <summary>
15
+ /// Implements the {@code more} lexer action by calling <seealso cref="Lexer#more"/>.
16
+ ///
17
+ /// <para>The {@code more} command does not have any parameters, so this action is
18
+ /// implemented as a singleton instance exposed by <seealso cref="#INSTANCE"/>.</para>
19
+ ///
20
+ /// @author Sam Harwell
21
+ /// @since 4.2
22
+ /// </summary>
23
+ class ANTLR4CPP_PUBLIC LexerMoreAction final : public LexerAction {
24
+ public:
25
+ static bool is(const LexerAction &lexerAction) { return lexerAction.getActionType() == LexerActionType::MORE; }
26
+
27
+ static bool is(const LexerAction *lexerAction) { return lexerAction != nullptr && is(*lexerAction); }
28
+
29
+ /// <summary>
30
+ /// Provides a singleton instance of this parameterless lexer action.
31
+ /// </summary>
32
+ static const Ref<const LexerMoreAction>& getInstance();
33
+
34
+ /// <summary>
35
+ /// {@inheritDoc}
36
+ ///
37
+ /// <para>This action is implemented by calling <seealso cref="Lexer#more"/>.</para>
38
+ /// </summary>
39
+ void execute(Lexer *lexer) const override;
40
+
41
+ bool equals(const LexerAction &obj) const override;
42
+ std::string toString() const override;
43
+
44
+ protected:
45
+ size_t hashCodeImpl() const override;
46
+
47
+ private:
48
+ /// Constructs the singleton instance of the lexer {@code more} command.
49
+ LexerMoreAction() : LexerAction(LexerActionType::MORE, false) {}
50
+ };
51
+
52
+ } // namespace atn
53
+ } // namespace antlr4
@@ -0,0 +1,36 @@
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 "misc/MurmurHash.h"
7
+ #include "Lexer.h"
8
+
9
+ #include "atn/LexerPopModeAction.h"
10
+
11
+ using namespace antlr4;
12
+ using namespace antlr4::atn;
13
+ using namespace antlr4::misc;
14
+
15
+ const Ref<const LexerPopModeAction>& LexerPopModeAction::getInstance() {
16
+ static const Ref<const LexerPopModeAction> instance(new LexerPopModeAction());
17
+ return instance;
18
+ }
19
+
20
+ void LexerPopModeAction::execute(Lexer *lexer) const {
21
+ lexer->popMode();
22
+ }
23
+
24
+ size_t LexerPopModeAction::hashCodeImpl() const {
25
+ size_t hash = MurmurHash::initialize();
26
+ hash = MurmurHash::update(hash, static_cast<size_t>(getActionType()));
27
+ return MurmurHash::finish(hash, 1);
28
+ }
29
+
30
+ bool LexerPopModeAction::equals(const LexerAction &other) const {
31
+ return this == std::addressof(other);
32
+ }
33
+
34
+ std::string LexerPopModeAction::toString() const {
35
+ return "popMode";
36
+ }
@@ -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
+ #pragma once
7
+
8
+ #include "atn/LexerAction.h"
9
+ #include "atn/LexerActionType.h"
10
+
11
+ namespace antlr4 {
12
+ namespace atn {
13
+
14
+ /// <summary>
15
+ /// Implements the {@code popMode} lexer action by calling <seealso cref="Lexer#popMode"/>.
16
+ ///
17
+ /// <para>The {@code popMode} command does not have any parameters, so this action is
18
+ /// implemented as a singleton instance exposed by <seealso cref="#INSTANCE"/>.</para>
19
+ ///
20
+ /// @author Sam Harwell
21
+ /// @since 4.2
22
+ /// </summary>
23
+ class ANTLR4CPP_PUBLIC LexerPopModeAction final : public LexerAction {
24
+ public:
25
+ static bool is(const LexerAction &lexerAction) { return lexerAction.getActionType() == LexerActionType::POP_MODE; }
26
+
27
+ static bool is(const LexerAction *lexerAction) { return lexerAction != nullptr && is(*lexerAction); }
28
+
29
+ /// <summary>
30
+ /// Provides a singleton instance of this parameterless lexer action.
31
+ /// </summary>
32
+ static const Ref<const LexerPopModeAction>& getInstance();
33
+
34
+ /// <summary>
35
+ /// {@inheritDoc}
36
+ ///
37
+ /// <para>This action is implemented by calling <seealso cref="Lexer#popMode"/>.</para>
38
+ /// </summary>
39
+ void execute(Lexer *lexer) const override;
40
+
41
+ bool equals(const LexerAction &other) const override;
42
+ std::string toString() const override;
43
+
44
+ protected:
45
+ size_t hashCodeImpl() const override;
46
+
47
+ private:
48
+ /// Constructs the singleton instance of the lexer {@code popMode} command.
49
+ LexerPopModeAction() : LexerAction(LexerActionType::POP_MODE, false) {}
50
+ };
51
+
52
+ } // namespace atn
53
+ } // namespace antlr4
@@ -0,0 +1,43 @@
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 "misc/MurmurHash.h"
7
+ #include "Lexer.h"
8
+ #include "support/Casts.h"
9
+
10
+ #include "atn/LexerPushModeAction.h"
11
+
12
+ using namespace antlr4;
13
+ using namespace antlr4::atn;
14
+ using namespace antlr4::misc;
15
+ using namespace antlrcpp;
16
+
17
+ LexerPushModeAction::LexerPushModeAction(int mode) : LexerAction(LexerActionType::PUSH_MODE, false), _mode(mode) {}
18
+
19
+ void LexerPushModeAction::execute(Lexer *lexer) const {
20
+ lexer->pushMode(getMode());
21
+ }
22
+
23
+ size_t LexerPushModeAction::hashCodeImpl() const {
24
+ size_t hash = MurmurHash::initialize();
25
+ hash = MurmurHash::update(hash, static_cast<size_t>(getActionType()));
26
+ hash = MurmurHash::update(hash, getMode());
27
+ return MurmurHash::finish(hash, 2);
28
+ }
29
+
30
+ bool LexerPushModeAction::equals(const LexerAction &other) const {
31
+ if (this == std::addressof(other)) {
32
+ return true;
33
+ }
34
+ if (getActionType() != other.getActionType()) {
35
+ return false;
36
+ }
37
+ const auto &lexerAction = downCast<const LexerPushModeAction&>(other);
38
+ return getMode() == lexerAction.getMode();
39
+ }
40
+
41
+ std::string LexerPushModeAction::toString() const {
42
+ return "pushMode(" + std::to_string(getMode()) + ")";
43
+ }