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,270 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #include "Token.h"
7
+ #include "Exceptions.h"
8
+ #include "assert.h"
9
+ #include "TokenSource.h"
10
+ #include "support/Arrays.h"
11
+ #include "misc/Interval.h"
12
+ #include "RuleContext.h"
13
+ #include "WritableToken.h"
14
+
15
+ #include "UnbufferedTokenStream.h"
16
+
17
+ using namespace antlr4;
18
+
19
+ UnbufferedTokenStream::UnbufferedTokenStream(TokenSource *tokenSource) : UnbufferedTokenStream(tokenSource, 256) {
20
+ }
21
+
22
+ UnbufferedTokenStream::UnbufferedTokenStream(TokenSource *tokenSource, int /*bufferSize*/)
23
+ : _tokenSource(tokenSource), _lastToken(nullptr), _lastTokenBufferStart(nullptr)
24
+ {
25
+ InitializeInstanceFields();
26
+ fill(1); // prime the pump
27
+ }
28
+
29
+ UnbufferedTokenStream::~UnbufferedTokenStream() {
30
+ }
31
+
32
+ Token* UnbufferedTokenStream::get(size_t i) const
33
+ { // get absolute index
34
+ size_t bufferStartIndex = getBufferStartIndex();
35
+ if (i < bufferStartIndex || i >= bufferStartIndex + _tokens.size()) {
36
+ throw IndexOutOfBoundsException(std::string("get(") + std::to_string(i) + std::string(") outside buffer: ")
37
+ + std::to_string(bufferStartIndex) + std::string("..") + std::to_string(bufferStartIndex + _tokens.size()));
38
+ }
39
+ return _tokens[i - bufferStartIndex].get();
40
+ }
41
+
42
+ Token* UnbufferedTokenStream::LT(ssize_t i)
43
+ {
44
+ if (i == -1) {
45
+ return _lastToken;
46
+ }
47
+
48
+ sync(i);
49
+ ssize_t index = static_cast<ssize_t>(_p) + i - 1;
50
+ if (index < 0) {
51
+ throw IndexOutOfBoundsException(std::string("LT(") + std::to_string(i) + std::string(") gives negative index"));
52
+ }
53
+
54
+ if (index >= static_cast<ssize_t>(_tokens.size())) {
55
+ assert(_tokens.size() > 0 && _tokens.back()->getType() == EOF);
56
+ return _tokens.back().get();
57
+ }
58
+
59
+ return _tokens[static_cast<size_t>(index)].get();
60
+ }
61
+
62
+ size_t UnbufferedTokenStream::LA(ssize_t i)
63
+ {
64
+ return LT(i)->getType();
65
+ }
66
+
67
+ TokenSource* UnbufferedTokenStream::getTokenSource() const
68
+ {
69
+ return _tokenSource;
70
+ }
71
+
72
+ std::string UnbufferedTokenStream::getText()
73
+ {
74
+ return "";
75
+ }
76
+
77
+ std::string UnbufferedTokenStream::getText(RuleContext* ctx)
78
+ {
79
+ return getText(ctx->getSourceInterval());
80
+ }
81
+
82
+ std::string UnbufferedTokenStream::getText(Token *start, Token *stop)
83
+ {
84
+ return getText(misc::Interval(start->getTokenIndex(), stop->getTokenIndex()));
85
+ }
86
+
87
+ void UnbufferedTokenStream::consume()
88
+ {
89
+ if (LA(1) == EOF) {
90
+ throw IllegalStateException("cannot consume EOF");
91
+ }
92
+
93
+ // buf always has at least tokens[p==0] in this method due to ctor
94
+ _lastToken = _tokens[_p].get(); // track last token for LT(-1)
95
+
96
+ // if we're at last token and no markers, opportunity to flush buffer
97
+ if (_p == _tokens.size() - 1 && _numMarkers == 0) {
98
+ _tokens.clear();
99
+ _p = 0;
100
+ _lastTokenBufferStart = _lastToken;
101
+ } else {
102
+ ++_p;
103
+ }
104
+
105
+ ++_currentTokenIndex;
106
+ sync(1);
107
+ }
108
+
109
+ /// <summary>
110
+ /// Make sure we have 'need' elements from current position <seealso cref="#p p"/>. Last valid
111
+ /// {@code p} index is {@code tokens.length-1}. {@code p+need-1} is the tokens index 'need' elements
112
+ /// ahead. If we need 1 element, {@code (p+1-1)==p} must be less than {@code tokens.length}.
113
+ /// </summary>
114
+ void UnbufferedTokenStream::sync(ssize_t want)
115
+ {
116
+ ssize_t need = (static_cast<ssize_t>(_p) + want - 1) - static_cast<ssize_t>(_tokens.size()) + 1; // how many more elements we need?
117
+ if (need > 0) {
118
+ fill(static_cast<size_t>(need));
119
+ }
120
+ }
121
+
122
+ /// <summary>
123
+ /// Add {@code n} elements to the buffer. Returns the number of tokens
124
+ /// actually added to the buffer. If the return value is less than {@code n},
125
+ /// then EOF was reached before {@code n} tokens could be added.
126
+ /// </summary>
127
+ size_t UnbufferedTokenStream::fill(size_t n)
128
+ {
129
+ for (size_t i = 0; i < n; i++) {
130
+ if (_tokens.size() > 0 && _tokens.back()->getType() == EOF) {
131
+ return i;
132
+ }
133
+
134
+ add(_tokenSource->nextToken());
135
+ }
136
+
137
+ return n;
138
+ }
139
+
140
+ void UnbufferedTokenStream::add(std::unique_ptr<Token> t)
141
+ {
142
+ WritableToken *writable = dynamic_cast<WritableToken *>(t.get());
143
+ if (writable != nullptr) {
144
+ writable->setTokenIndex(int(getBufferStartIndex() + _tokens.size()));
145
+ }
146
+
147
+ _tokens.push_back(std::move(t));
148
+ }
149
+
150
+ /// <summary>
151
+ /// Return a marker that we can release later.
152
+ /// <p/>
153
+ /// The specific marker value used for this class allows for some level of
154
+ /// protection against misuse where {@code seek()} is called on a mark or
155
+ /// {@code release()} is called in the wrong order.
156
+ /// </summary>
157
+ ssize_t UnbufferedTokenStream::mark()
158
+ {
159
+ if (_numMarkers == 0) {
160
+ _lastTokenBufferStart = _lastToken;
161
+ }
162
+
163
+ int mark = -_numMarkers - 1;
164
+ _numMarkers++;
165
+ return mark;
166
+ }
167
+
168
+ void UnbufferedTokenStream::release(ssize_t marker)
169
+ {
170
+ ssize_t expectedMark = -_numMarkers;
171
+ if (marker != expectedMark) {
172
+ throw IllegalStateException("release() called with an invalid marker.");
173
+ }
174
+
175
+ _numMarkers--;
176
+ if (_numMarkers == 0) { // can we release buffer?
177
+ if (_p > 0) {
178
+ // Copy tokens[p]..tokens[n-1] to tokens[0]..tokens[(n-1)-p], reset ptrs
179
+ // p is last valid token; move nothing if p==n as we have no valid char
180
+ _tokens.erase(_tokens.begin(), _tokens.begin() + static_cast<ssize_t>(_p));
181
+ _p = 0;
182
+ }
183
+
184
+ _lastTokenBufferStart = _lastToken;
185
+ }
186
+ }
187
+
188
+ size_t UnbufferedTokenStream::index()
189
+ {
190
+ return _currentTokenIndex;
191
+ }
192
+
193
+ void UnbufferedTokenStream::seek(size_t index)
194
+ { // seek to absolute index
195
+ if (index == _currentTokenIndex) {
196
+ return;
197
+ }
198
+
199
+ if (index > _currentTokenIndex) {
200
+ sync(ssize_t(index - _currentTokenIndex));
201
+ index = std::min(index, getBufferStartIndex() + _tokens.size() - 1);
202
+ }
203
+
204
+ size_t bufferStartIndex = getBufferStartIndex();
205
+ if (bufferStartIndex > index) {
206
+ throw IllegalArgumentException(std::string("cannot seek to negative index ") + std::to_string(index));
207
+ }
208
+
209
+ size_t i = index - bufferStartIndex;
210
+ if (i >= _tokens.size()) {
211
+ throw UnsupportedOperationException(std::string("seek to index outside buffer: ") + std::to_string(index) +
212
+ " not in " + std::to_string(bufferStartIndex) + ".." + std::to_string(bufferStartIndex + _tokens.size()));
213
+ }
214
+
215
+ _p = i;
216
+ _currentTokenIndex = index;
217
+ if (_p == 0) {
218
+ _lastToken = _lastTokenBufferStart;
219
+ } else {
220
+ _lastToken = _tokens[_p - 1].get();
221
+ }
222
+ }
223
+
224
+ size_t UnbufferedTokenStream::size()
225
+ {
226
+ throw UnsupportedOperationException("Unbuffered stream cannot know its size");
227
+ }
228
+
229
+ std::string UnbufferedTokenStream::getSourceName() const
230
+ {
231
+ return _tokenSource->getSourceName();
232
+ }
233
+
234
+ std::string UnbufferedTokenStream::getText(const misc::Interval &interval)
235
+ {
236
+ size_t bufferStartIndex = getBufferStartIndex();
237
+ size_t bufferStopIndex = bufferStartIndex + _tokens.size() - 1;
238
+
239
+ size_t start = interval.a;
240
+ size_t stop = interval.b;
241
+ if (start < bufferStartIndex || stop > bufferStopIndex) {
242
+ throw UnsupportedOperationException(std::string("interval ") + interval.toString() +
243
+ " not in token buffer window: " + std::to_string(bufferStartIndex) + ".." + std::to_string(bufferStopIndex));
244
+ }
245
+
246
+ size_t a = start - bufferStartIndex;
247
+ size_t b = stop - bufferStartIndex;
248
+
249
+ std::stringstream ss;
250
+ for (size_t i = a; i <= b; i++) {
251
+ Token *t = _tokens[i].get();
252
+ if (i > 0)
253
+ ss << ", ";
254
+ ss << t->getText();
255
+ }
256
+
257
+ return ss.str();
258
+ }
259
+
260
+ size_t UnbufferedTokenStream::getBufferStartIndex() const
261
+ {
262
+ return _currentTokenIndex - _p;
263
+ }
264
+
265
+ void UnbufferedTokenStream::InitializeInstanceFields()
266
+ {
267
+ _p = 0;
268
+ _numMarkers = 0;
269
+ _currentTokenIndex = 0;
270
+ }
@@ -0,0 +1,115 @@
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 "TokenStream.h"
9
+
10
+ namespace antlr4 {
11
+
12
+ class ANTLR4CPP_PUBLIC UnbufferedTokenStream : public TokenStream {
13
+ public:
14
+ UnbufferedTokenStream(TokenSource *tokenSource);
15
+ UnbufferedTokenStream(TokenSource *tokenSource, int bufferSize);
16
+ UnbufferedTokenStream(const UnbufferedTokenStream& other) = delete;
17
+ virtual ~UnbufferedTokenStream();
18
+
19
+ UnbufferedTokenStream& operator = (const UnbufferedTokenStream& other) = delete;
20
+
21
+ virtual Token* get(size_t i) const override;
22
+ virtual Token* LT(ssize_t i) override;
23
+ virtual size_t LA(ssize_t i) override;
24
+
25
+ virtual TokenSource* getTokenSource() const override;
26
+
27
+ virtual std::string getText(const misc::Interval &interval) override;
28
+ virtual std::string getText() override;
29
+ virtual std::string getText(RuleContext *ctx) override;
30
+ virtual std::string getText(Token *start, Token *stop) override;
31
+
32
+ virtual void consume() override;
33
+
34
+ /// <summary>
35
+ /// Return a marker that we can release later.
36
+ /// <p/>
37
+ /// The specific marker value used for this class allows for some level of
38
+ /// protection against misuse where {@code seek()} is called on a mark or
39
+ /// {@code release()} is called in the wrong order.
40
+ /// </summary>
41
+ virtual ssize_t mark() override;
42
+ virtual void release(ssize_t marker) override;
43
+ virtual size_t index() override;
44
+ virtual void seek(size_t index) override;
45
+ virtual size_t size() override;
46
+ virtual std::string getSourceName() const override;
47
+
48
+ protected:
49
+ /// Make sure we have 'need' elements from current position p. Last valid
50
+ /// p index is tokens.length - 1. p + need - 1 is the tokens index 'need' elements
51
+ /// ahead. If we need 1 element, (p+1-1)==p must be less than tokens.length.
52
+ TokenSource *_tokenSource;
53
+
54
+ /// <summary>
55
+ /// A moving window buffer of the data being scanned. While there's a marker,
56
+ /// we keep adding to buffer. Otherwise, <seealso cref="#consume consume()"/> resets so
57
+ /// we start filling at index 0 again.
58
+ /// </summary>
59
+
60
+ std::vector<std::unique_ptr<Token>> _tokens;
61
+
62
+ /// <summary>
63
+ /// 0..n-1 index into <seealso cref="#tokens tokens"/> of next token.
64
+ /// <p/>
65
+ /// The {@code LT(1)} token is {@code tokens[p]}. If {@code p == n}, we are
66
+ /// out of buffered tokens.
67
+ /// </summary>
68
+ size_t _p;
69
+
70
+ /// <summary>
71
+ /// Count up with <seealso cref="#mark mark()"/> and down with
72
+ /// <seealso cref="#release release()"/>. When we {@code release()} the last mark,
73
+ /// {@code numMarkers} reaches 0 and we reset the buffer. Copy
74
+ /// {@code tokens[p]..tokens[n-1]} to {@code tokens[0]..tokens[(n-1)-p]}.
75
+ /// </summary>
76
+ int _numMarkers;
77
+
78
+ /// <summary>
79
+ /// This is the {@code LT(-1)} token for the current position.
80
+ /// </summary>
81
+ Token *_lastToken;
82
+
83
+ /// <summary>
84
+ /// When {@code numMarkers > 0}, this is the {@code LT(-1)} token for the
85
+ /// first token in <seealso cref="#tokens"/>. Otherwise, this is {@code null}.
86
+ /// </summary>
87
+ Token *_lastTokenBufferStart;
88
+
89
+ /// <summary>
90
+ /// Absolute token index. It's the index of the token about to be read via
91
+ /// {@code LT(1)}. Goes from 0 to the number of tokens in the entire stream,
92
+ /// although the stream size is unknown before the end is reached.
93
+ /// <p/>
94
+ /// This value is used to set the token indexes if the stream provides tokens
95
+ /// that implement <seealso cref="WritableToken"/>.
96
+ /// </summary>
97
+ size_t _currentTokenIndex;
98
+
99
+ virtual void sync(ssize_t want);
100
+
101
+ /// <summary>
102
+ /// Add {@code n} elements to the buffer. Returns the number of tokens
103
+ /// actually added to the buffer. If the return value is less than {@code n},
104
+ /// then EOF was reached before {@code n} tokens could be added.
105
+ /// </summary>
106
+ virtual size_t fill(size_t n);
107
+ virtual void add(std::unique_ptr<Token> t);
108
+
109
+ size_t getBufferStartIndex() const;
110
+
111
+ private:
112
+ void InitializeInstanceFields();
113
+ };
114
+
115
+ } // namespace antlr4
@@ -0,0 +1,42 @@
1
+ // Copyright 2012-2022 The ANTLR Project
2
+ //
3
+ // Redistribution and use in source and binary forms, with or without modification, are permitted
4
+ // provided that the following conditions are met:
5
+ //
6
+ // 1. Redistributions of source code must retain the above copyright notice, this list of conditions
7
+ // and the following disclaimer.
8
+ //
9
+ // 2. Redistributions in binary form must reproduce the above copyright notice, this list of
10
+ // conditions and the following disclaimer in the documentation and/or other materials provided
11
+ // with the distribution.
12
+ //
13
+ // 3. Neither the name of the copyright holder nor the names of its contributors may be used to
14
+ // endorse or promote products derived from this software without specific prior written
15
+ // permission.
16
+ //
17
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
18
+ // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
19
+ // FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
20
+ // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
+ // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23
+ // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
24
+ // WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+
26
+ #pragma once
27
+
28
+ #include "antlr4-common.h"
29
+
30
+ #define ANTLRCPP_VERSION_MAJOR 4
31
+ #define ANTLRCPP_VERSION_MINOR 10
32
+ #define ANTLRCPP_VERSION_PATCH 1
33
+
34
+ #define ANTLRCPP_MAKE_VERSION(major, minor, patch) ((major) * 100000 + (minor) * 1000 + (patch))
35
+
36
+ #define ANTLRCPP_VERSION \
37
+ ANTLRCPP_MAKE_VERSION(ANTLR4CPP_VERSION_MAJOR, ANTLR4CPP_VERSION_MINOR, ANTLR4CPP_VERSION_PATCH)
38
+
39
+ #define ANTLRCPP_VERSION_STRING \
40
+ ANTLR4CPP_STRINGIFY(ANTLR4CPP_VERSION_MAJOR) "." \
41
+ ANTLR4CPP_STRINGIFY(ANTLR4CPP_VERSION_MINOR) "." \
42
+ ANTLR4CPP_STRINGIFY(ANTLR4CPP_VERSION_PATCH)
@@ -0,0 +1,64 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #include "Token.h"
7
+
8
+ #include "Vocabulary.h"
9
+
10
+ using namespace antlr4::dfa;
11
+
12
+ const Vocabulary Vocabulary::EMPTY_VOCABULARY;
13
+
14
+ Vocabulary::Vocabulary(std::vector<std::string> literalNames, std::vector<std::string> symbolicNames)
15
+ : Vocabulary(std::move(literalNames), std::move(symbolicNames), {}) {
16
+ }
17
+
18
+ Vocabulary::Vocabulary(std::vector<std::string> literalNames,
19
+ std::vector<std::string> symbolicNames, std::vector<std::string> displayNames)
20
+ : _literalNames(std::move(literalNames)), _symbolicNames(std::move(symbolicNames)), _displayNames(std::move(displayNames)),
21
+ _maxTokenType(std::max(_displayNames.size(), std::max(_literalNames.size(), _symbolicNames.size())) - 1) {
22
+ // See note here on -1 part: https://github.com/antlr/antlr4/pull/1146
23
+ }
24
+
25
+ std::string_view Vocabulary::getLiteralName(size_t tokenType) const {
26
+ if (tokenType < _literalNames.size()) {
27
+ return _literalNames[tokenType];
28
+ }
29
+
30
+ return "";
31
+ }
32
+
33
+ std::string_view Vocabulary::getSymbolicName(size_t tokenType) const {
34
+ if (tokenType == Token::EOF) {
35
+ return "EOF";
36
+ }
37
+
38
+ if (tokenType < _symbolicNames.size()) {
39
+ return _symbolicNames[tokenType];
40
+ }
41
+
42
+ return "";
43
+ }
44
+
45
+ std::string Vocabulary::getDisplayName(size_t tokenType) const {
46
+ if (tokenType < _displayNames.size()) {
47
+ std::string_view displayName = _displayNames[tokenType];
48
+ if (!displayName.empty()) {
49
+ return std::string(displayName);
50
+ }
51
+ }
52
+
53
+ std::string_view literalName = getLiteralName(tokenType);
54
+ if (!literalName.empty()) {
55
+ return std::string(literalName);
56
+ }
57
+
58
+ std::string_view symbolicName = getSymbolicName(tokenType);
59
+ if (!symbolicName.empty()) {
60
+ return std::string(symbolicName);
61
+ }
62
+
63
+ return std::to_string(tokenType);
64
+ }
@@ -0,0 +1,177 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #pragma once
7
+
8
+ #include "antlr4-common.h"
9
+
10
+ namespace antlr4 {
11
+ namespace dfa {
12
+
13
+ /// This class provides a default implementation of the <seealso cref="Vocabulary"/>
14
+ /// interface.
15
+ class ANTLR4CPP_PUBLIC Vocabulary final {
16
+ public:
17
+ /// Gets an empty <seealso cref="Vocabulary"/> instance.
18
+ ///
19
+ /// <para>
20
+ /// No literal or symbol names are assigned to token types, so
21
+ /// <seealso cref="#getDisplayName(int)"/> returns the numeric value for all tokens
22
+ /// except <seealso cref="Token#EOF"/>.</para>
23
+ [[deprecated("Use the default constructor of Vocabulary instead.")]] static const Vocabulary EMPTY_VOCABULARY;
24
+
25
+ Vocabulary() {}
26
+
27
+ Vocabulary(const Vocabulary&) = default;
28
+
29
+ /// <summary>
30
+ /// Constructs a new instance of <seealso cref="Vocabulary"/> from the specified
31
+ /// literal and symbolic token names.
32
+ /// </summary>
33
+ /// <param name="literalNames"> The literal names assigned to tokens, or {@code null}
34
+ /// if no literal names are assigned. </param>
35
+ /// <param name="symbolicNames"> The symbolic names assigned to tokens, or
36
+ /// {@code null} if no symbolic names are assigned.
37
+ /// </param>
38
+ /// <seealso cref= #getLiteralName(int) </seealso>
39
+ /// <seealso cref= #getSymbolicName(int) </seealso>
40
+ Vocabulary(std::vector<std::string> literalNames, std::vector<std::string> symbolicNames);
41
+
42
+ /// <summary>
43
+ /// Constructs a new instance of <seealso cref="Vocabulary"/> from the specified
44
+ /// literal, symbolic, and display token names.
45
+ /// </summary>
46
+ /// <param name="literalNames"> The literal names assigned to tokens, or {@code null}
47
+ /// if no literal names are assigned. </param>
48
+ /// <param name="symbolicNames"> The symbolic names assigned to tokens, or
49
+ /// {@code null} if no symbolic names are assigned. </param>
50
+ /// <param name="displayNames"> The display names assigned to tokens, or {@code null}
51
+ /// to use the values in {@code literalNames} and {@code symbolicNames} as
52
+ /// the source of display names, as described in
53
+ /// <seealso cref="#getDisplayName(int)"/>.
54
+ /// </param>
55
+ /// <seealso cref= #getLiteralName(int) </seealso>
56
+ /// <seealso cref= #getSymbolicName(int) </seealso>
57
+ /// <seealso cref= #getDisplayName(int) </seealso>
58
+ Vocabulary(std::vector<std::string> literalNames, std::vector<std::string> symbolicNames,
59
+ std::vector<std::string> displayNames);
60
+
61
+ /// <summary>
62
+ /// Returns the highest token type value. It can be used to iterate from
63
+ /// zero to that number, inclusively, thus querying all stored entries. </summary>
64
+ /// <returns> the highest token type value </returns>
65
+ constexpr size_t getMaxTokenType() const { return _maxTokenType; }
66
+
67
+ /// <summary>
68
+ /// Gets the string literal associated with a token type. The string returned
69
+ /// by this method, when not {@code null}, can be used unaltered in a parser
70
+ /// grammar to represent this token type.
71
+ ///
72
+ /// <para>The following table shows examples of lexer rules and the literal
73
+ /// names assigned to the corresponding token types.</para>
74
+ ///
75
+ /// <table>
76
+ /// <tr>
77
+ /// <th>Rule</th>
78
+ /// <th>Literal Name</th>
79
+ /// <th>Java String Literal</th>
80
+ /// </tr>
81
+ /// <tr>
82
+ /// <td>{@code THIS : 'this';}</td>
83
+ /// <td>{@code 'this'}</td>
84
+ /// <td>{@code "'this'"}</td>
85
+ /// </tr>
86
+ /// <tr>
87
+ /// <td>{@code SQUOTE : '\'';}</td>
88
+ /// <td>{@code '\''}</td>
89
+ /// <td>{@code "'\\''"}</td>
90
+ /// </tr>
91
+ /// <tr>
92
+ /// <td>{@code ID : [A-Z]+;}</td>
93
+ /// <td>n/a</td>
94
+ /// <td>{@code null}</td>
95
+ /// </tr>
96
+ /// </table>
97
+ /// </summary>
98
+ /// <param name="tokenType"> The token type.
99
+ /// </param>
100
+ /// <returns> The string literal associated with the specified token type, or
101
+ /// {@code null} if no string literal is associated with the type. </returns>
102
+ std::string_view getLiteralName(size_t tokenType) const;
103
+
104
+ /// <summary>
105
+ /// Gets the symbolic name associated with a token type. The string returned
106
+ /// by this method, when not {@code null}, can be used unaltered in a parser
107
+ /// grammar to represent this token type.
108
+ ///
109
+ /// <para>This method supports token types defined by any of the following
110
+ /// methods:</para>
111
+ ///
112
+ /// <ul>
113
+ /// <li>Tokens created by lexer rules.</li>
114
+ /// <li>Tokens defined in a <code>tokens{}</code> block in a lexer or parser
115
+ /// grammar.</li>
116
+ /// <li>The implicitly defined {@code EOF} token, which has the token type
117
+ /// <seealso cref="Token#EOF"/>.</li>
118
+ /// </ul>
119
+ ///
120
+ /// <para>The following table shows examples of lexer rules and the literal
121
+ /// names assigned to the corresponding token types.</para>
122
+ ///
123
+ /// <table>
124
+ /// <tr>
125
+ /// <th>Rule</th>
126
+ /// <th>Symbolic Name</th>
127
+ /// </tr>
128
+ /// <tr>
129
+ /// <td>{@code THIS : 'this';}</td>
130
+ /// <td>{@code THIS}</td>
131
+ /// </tr>
132
+ /// <tr>
133
+ /// <td>{@code SQUOTE : '\'';}</td>
134
+ /// <td>{@code SQUOTE}</td>
135
+ /// </tr>
136
+ /// <tr>
137
+ /// <td>{@code ID : [A-Z]+;}</td>
138
+ /// <td>{@code ID}</td>
139
+ /// </tr>
140
+ /// </table>
141
+ /// </summary>
142
+ /// <param name="tokenType"> The token type.
143
+ /// </param>
144
+ /// <returns> The symbolic name associated with the specified token type, or
145
+ /// {@code null} if no symbolic name is associated with the type. </returns>
146
+ std::string_view getSymbolicName(size_t tokenType) const;
147
+
148
+ /// <summary>
149
+ /// Gets the display name of a token type.
150
+ ///
151
+ /// <para>ANTLR provides a default implementation of this method, but
152
+ /// applications are free to override the behavior in any manner which makes
153
+ /// sense for the application. The default implementation returns the first
154
+ /// result from the following list which produces a non-{@code null}
155
+ /// result.</para>
156
+ ///
157
+ /// <ol>
158
+ /// <li>The result of <seealso cref="#getLiteralName"/></li>
159
+ /// <li>The result of <seealso cref="#getSymbolicName"/></li>
160
+ /// <li>The result of <seealso cref="Integer#toString"/></li>
161
+ /// </ol>
162
+ /// </summary>
163
+ /// <param name="tokenType"> The token type.
164
+ /// </param>
165
+ /// <returns> The display name of the token type, for use in error reporting or
166
+ /// other user-visible messages which reference specific token types. </returns>
167
+ std::string getDisplayName(size_t tokenType) const;
168
+
169
+ private:
170
+ std::vector<std::string> const _literalNames;
171
+ std::vector<std::string> const _symbolicNames;
172
+ std::vector<std::string> const _displayNames;
173
+ const size_t _maxTokenType = 0;
174
+ };
175
+
176
+ } // namespace atn
177
+ } // namespace antlr4
@@ -0,0 +1,9 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #include "WritableToken.h"
7
+
8
+ antlr4::WritableToken::~WritableToken() {
9
+ }