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,79 @@
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 <string_view>
9
+
10
+ #include "CharStream.h"
11
+
12
+ namespace antlr4 {
13
+
14
+ // Vacuum all input from a stream and then treat it
15
+ // like a string. Can also pass in a string or char[] to use.
16
+ // Input is expected to be encoded in UTF-8 and converted to UTF-32 internally.
17
+ class ANTLR4CPP_PUBLIC ANTLRInputStream : public CharStream {
18
+ protected:
19
+ /// The data being scanned.
20
+ // UTF-32
21
+ std::u32string _data;
22
+
23
+ /// 0..n-1 index into string of next char </summary>
24
+ size_t p;
25
+
26
+ public:
27
+ /// What is name or source of this char stream?
28
+ std::string name;
29
+
30
+ ANTLRInputStream();
31
+
32
+ ANTLRInputStream(std::string_view input);
33
+
34
+ ANTLRInputStream(const char *data, size_t length);
35
+ ANTLRInputStream(std::istream &stream);
36
+
37
+ virtual void load(const std::string &input, bool lenient);
38
+ virtual void load(const char *data, size_t length, bool lenient);
39
+ virtual void load(std::istream &stream, bool lenient);
40
+
41
+ virtual void load(const std::string &input) { load(input, false); }
42
+ virtual void load(const char *data, size_t length) { load(data, length, false); }
43
+ virtual void load(std::istream &stream) { load(stream, false); }
44
+
45
+ /// Reset the stream so that it's in the same state it was
46
+ /// when the object was created *except* the data array is not
47
+ /// touched.
48
+ virtual void reset();
49
+ virtual void consume() override;
50
+ virtual size_t LA(ssize_t i) override;
51
+ virtual size_t LT(ssize_t i);
52
+
53
+ /// <summary>
54
+ /// Return the current input symbol index 0..n where n indicates the
55
+ /// last symbol has been read. The index is the index of char to
56
+ /// be returned from LA(1).
57
+ /// </summary>
58
+ virtual size_t index() override;
59
+ virtual size_t size() override;
60
+
61
+ /// <summary>
62
+ /// mark/release do nothing; we have entire buffer </summary>
63
+ virtual ssize_t mark() override;
64
+ virtual void release(ssize_t marker) override;
65
+
66
+ /// <summary>
67
+ /// consume() ahead until p==index; can't just set p=index as we must
68
+ /// update line and charPositionInLine. If we seek backwards, just set p
69
+ /// </summary>
70
+ virtual void seek(size_t index) override;
71
+ virtual std::string getText(const misc::Interval &interval) override;
72
+ virtual std::string getSourceName() const override;
73
+ virtual std::string toString() const override;
74
+
75
+ private:
76
+ void InitializeInstanceFields();
77
+ };
78
+
79
+ } // namespace antlr4
@@ -0,0 +1,61 @@
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 "Exceptions.h"
7
+ #include "ParserRuleContext.h"
8
+ #include "InputMismatchException.h"
9
+ #include "Parser.h"
10
+
11
+ #include "BailErrorStrategy.h"
12
+
13
+ using namespace antlr4;
14
+
15
+ void BailErrorStrategy::recover(Parser *recognizer, std::exception_ptr e) {
16
+ ParserRuleContext *context = recognizer->getContext();
17
+ do {
18
+ context->exception = e;
19
+ if (context->parent == nullptr)
20
+ break;
21
+ context = static_cast<ParserRuleContext *>(context->parent);
22
+ } while (true);
23
+
24
+ try {
25
+ std::rethrow_exception(e); // Throw the exception to be able to catch and rethrow nested.
26
+ #if defined(_MSC_FULL_VER) && _MSC_FULL_VER < 190023026
27
+ } catch (RecognitionException &inner) {
28
+ throw ParseCancellationException(inner.what());
29
+ #else
30
+ } catch (RecognitionException & /*inner*/) {
31
+ std::throw_with_nested(ParseCancellationException());
32
+ #endif
33
+ }
34
+ }
35
+
36
+ Token* BailErrorStrategy::recoverInline(Parser *recognizer) {
37
+ InputMismatchException e(recognizer);
38
+ std::exception_ptr exception = std::make_exception_ptr(e);
39
+
40
+ ParserRuleContext *context = recognizer->getContext();
41
+ do {
42
+ context->exception = exception;
43
+ if (context->parent == nullptr)
44
+ break;
45
+ context = static_cast<ParserRuleContext *>(context->parent);
46
+ } while (true);
47
+
48
+ try {
49
+ throw e;
50
+ #if defined(_MSC_FULL_VER) && _MSC_FULL_VER < 190023026
51
+ } catch (InputMismatchException &inner) {
52
+ throw ParseCancellationException(inner.what());
53
+ #else
54
+ } catch (InputMismatchException & /*inner*/) {
55
+ std::throw_with_nested(ParseCancellationException());
56
+ #endif
57
+ }
58
+ }
59
+
60
+ void BailErrorStrategy::sync(Parser * /*recognizer*/) {
61
+ }
@@ -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 "DefaultErrorStrategy.h"
9
+
10
+ namespace antlr4 {
11
+
12
+ /**
13
+ * This implementation of {@link ANTLRErrorStrategy} responds to syntax errors
14
+ * by immediately canceling the parse operation with a
15
+ * {@link ParseCancellationException}. The implementation ensures that the
16
+ * {@link ParserRuleContext#exception} field is set for all parse tree nodes
17
+ * that were not completed prior to encountering the error.
18
+ *
19
+ * <p>
20
+ * This error strategy is useful in the following scenarios.</p>
21
+ *
22
+ * <ul>
23
+ * <li><strong>Two-stage parsing:</strong> This error strategy allows the first
24
+ * stage of two-stage parsing to immediately terminate if an error is
25
+ * encountered, and immediately fall back to the second stage. In addition to
26
+ * avoiding wasted work by attempting to recover from errors here, the empty
27
+ * implementation of {@link BailErrorStrategy#sync} improves the performance of
28
+ * the first stage.</li>
29
+ * <li><strong>Silent validation:</strong> When syntax errors are not being
30
+ * reported or logged, and the parse result is simply ignored if errors occur,
31
+ * the {@link BailErrorStrategy} avoids wasting work on recovering from errors
32
+ * when the result will be ignored either way.</li>
33
+ * </ul>
34
+ *
35
+ * <p>
36
+ * {@code myparser.setErrorHandler(new BailErrorStrategy());}</p>
37
+ *
38
+ * @see Parser#setErrorHandler(ANTLRErrorStrategy)
39
+ */
40
+ class ANTLR4CPP_PUBLIC BailErrorStrategy : public DefaultErrorStrategy {
41
+ /// <summary>
42
+ /// Instead of recovering from exception {@code e}, re-throw it wrapped
43
+ /// in a <seealso cref="ParseCancellationException"/> so it is not caught by the
44
+ /// rule function catches. Use <seealso cref="Exception#getCause()"/> to get the
45
+ /// original <seealso cref="RecognitionException"/>.
46
+ /// </summary>
47
+ public:
48
+ virtual void recover(Parser *recognizer, std::exception_ptr e) override;
49
+
50
+ /// Make sure we don't attempt to recover inline; if the parser
51
+ /// successfully recovers, it won't throw an exception.
52
+ virtual Token* recoverInline(Parser *recognizer) override;
53
+
54
+ /// <summary>
55
+ /// Make sure we don't attempt to recover from problems in subrules. </summary>
56
+ virtual void sync(Parser *recognizer) override;
57
+ };
58
+
59
+ } // namespace antlr4
@@ -0,0 +1,25 @@
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 "BaseErrorListener.h"
7
+ #include "RecognitionException.h"
8
+
9
+ using namespace antlr4;
10
+
11
+ void BaseErrorListener::syntaxError(Recognizer * /*recognizer*/, Token * /*offendingSymbol*/, size_t /*line*/,
12
+ size_t /*charPositionInLine*/, const std::string &/*msg*/, std::exception_ptr /*e*/) {
13
+ }
14
+
15
+ void BaseErrorListener::reportAmbiguity(Parser * /*recognizer*/, const dfa::DFA &/*dfa*/, size_t /*startIndex*/,
16
+ size_t /*stopIndex*/, bool /*exact*/, const antlrcpp::BitSet &/*ambigAlts*/, atn::ATNConfigSet * /*configs*/) {
17
+ }
18
+
19
+ void BaseErrorListener::reportAttemptingFullContext(Parser * /*recognizer*/, const dfa::DFA &/*dfa*/, size_t /*startIndex*/,
20
+ size_t /*stopIndex*/, const antlrcpp::BitSet &/*conflictingAlts*/, atn::ATNConfigSet * /*configs*/) {
21
+ }
22
+
23
+ void BaseErrorListener::reportContextSensitivity(Parser * /*recognizer*/, const dfa::DFA &/*dfa*/, size_t /*startIndex*/,
24
+ size_t /*stopIndex*/, size_t /*prediction*/, atn::ATNConfigSet * /*configs*/) {
25
+ }
@@ -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
+ #pragma once
7
+
8
+ #include "ANTLRErrorListener.h"
9
+
10
+ namespace antlrcpp {
11
+ class BitSet;
12
+ }
13
+
14
+ namespace antlr4 {
15
+
16
+ /**
17
+ * Provides an empty default implementation of {@link ANTLRErrorListener}. The
18
+ * default implementation of each method does nothing, but can be overridden as
19
+ * necessary.
20
+ */
21
+ class ANTLR4CPP_PUBLIC BaseErrorListener : public ANTLRErrorListener {
22
+
23
+ virtual void syntaxError(Recognizer *recognizer, Token * offendingSymbol, size_t line, size_t charPositionInLine,
24
+ const std::string &msg, std::exception_ptr e) override;
25
+
26
+ virtual void reportAmbiguity(Parser *recognizer, const dfa::DFA &dfa, size_t startIndex, size_t stopIndex, bool exact,
27
+ const antlrcpp::BitSet &ambigAlts, atn::ATNConfigSet *configs) override;
28
+
29
+ virtual void reportAttemptingFullContext(Parser *recognizer, const dfa::DFA &dfa, size_t startIndex, size_t stopIndex,
30
+ const antlrcpp::BitSet &conflictingAlts, atn::ATNConfigSet *configs) override;
31
+
32
+ virtual void reportContextSensitivity(Parser *recognizer, const dfa::DFA &dfa, size_t startIndex, size_t stopIndex,
33
+ size_t prediction, atn::ATNConfigSet *configs) override;
34
+ };
35
+
36
+ } // namespace antlr4
@@ -0,0 +1,414 @@
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
+ #include "Lexer.h"
8
+ #include "RuleContext.h"
9
+ #include "misc/Interval.h"
10
+ #include "Exceptions.h"
11
+ #include "support/CPPUtils.h"
12
+
13
+ #include "BufferedTokenStream.h"
14
+
15
+ using namespace antlr4;
16
+ using namespace antlrcpp;
17
+
18
+ BufferedTokenStream::BufferedTokenStream(TokenSource *tokenSource) : _tokenSource(tokenSource){
19
+ InitializeInstanceFields();
20
+ }
21
+
22
+ TokenSource* BufferedTokenStream::getTokenSource() const {
23
+ return _tokenSource;
24
+ }
25
+
26
+ size_t BufferedTokenStream::index() {
27
+ return _p;
28
+ }
29
+
30
+ ssize_t BufferedTokenStream::mark() {
31
+ return 0;
32
+ }
33
+
34
+ void BufferedTokenStream::release(ssize_t /*marker*/) {
35
+ // no resources to release
36
+ }
37
+
38
+ void BufferedTokenStream::reset() {
39
+ seek(0);
40
+ }
41
+
42
+ void BufferedTokenStream::seek(size_t index) {
43
+ lazyInit();
44
+ _p = adjustSeekIndex(index);
45
+ }
46
+
47
+ size_t BufferedTokenStream::size() {
48
+ return _tokens.size();
49
+ }
50
+
51
+ void BufferedTokenStream::consume() {
52
+ bool skipEofCheck = false;
53
+ if (!_needSetup) {
54
+ if (_fetchedEOF) {
55
+ // the last token in tokens is EOF. skip check if p indexes any
56
+ // fetched token except the last.
57
+ skipEofCheck = _p < _tokens.size() - 1;
58
+ } else {
59
+ // no EOF token in tokens. skip check if p indexes a fetched token.
60
+ skipEofCheck = _p < _tokens.size();
61
+ }
62
+ } else {
63
+ // not yet initialized
64
+ skipEofCheck = false;
65
+ }
66
+
67
+ if (!skipEofCheck && LA(1) == Token::EOF) {
68
+ throw IllegalStateException("cannot consume EOF");
69
+ }
70
+
71
+ if (sync(_p + 1)) {
72
+ _p = adjustSeekIndex(_p + 1);
73
+ }
74
+ }
75
+
76
+ bool BufferedTokenStream::sync(size_t i) {
77
+ if (i + 1 < _tokens.size())
78
+ return true;
79
+ size_t n = i - _tokens.size() + 1; // how many more elements we need?
80
+
81
+ if (n > 0) {
82
+ size_t fetched = fetch(n);
83
+ return fetched >= n;
84
+ }
85
+
86
+ return true;
87
+ }
88
+
89
+ size_t BufferedTokenStream::fetch(size_t n) {
90
+ if (_fetchedEOF) {
91
+ return 0;
92
+ }
93
+
94
+ size_t i = 0;
95
+ while (i < n) {
96
+ std::unique_ptr<Token> t(_tokenSource->nextToken());
97
+
98
+ if (is<WritableToken *>(t.get())) {
99
+ (static_cast<WritableToken *>(t.get()))->setTokenIndex(_tokens.size());
100
+ }
101
+
102
+ _tokens.push_back(std::move(t));
103
+ ++i;
104
+
105
+ if (_tokens.back()->getType() == Token::EOF) {
106
+ _fetchedEOF = true;
107
+ break;
108
+ }
109
+ }
110
+
111
+ return i;
112
+ }
113
+
114
+ Token* BufferedTokenStream::get(size_t i) const {
115
+ if (i >= _tokens.size()) {
116
+ throw IndexOutOfBoundsException(std::string("token index ") +
117
+ std::to_string(i) +
118
+ std::string(" out of range 0..") +
119
+ std::to_string(_tokens.size() - 1));
120
+ }
121
+ return _tokens[i].get();
122
+ }
123
+
124
+ std::vector<Token *> BufferedTokenStream::get(size_t start, size_t stop) {
125
+ std::vector<Token *> subset;
126
+
127
+ lazyInit();
128
+
129
+ if (_tokens.empty()) {
130
+ return subset;
131
+ }
132
+
133
+ if (stop >= _tokens.size()) {
134
+ stop = _tokens.size() - 1;
135
+ }
136
+ for (size_t i = start; i <= stop; i++) {
137
+ Token *t = _tokens[i].get();
138
+ if (t->getType() == Token::EOF) {
139
+ break;
140
+ }
141
+ subset.push_back(t);
142
+ }
143
+ return subset;
144
+ }
145
+
146
+ size_t BufferedTokenStream::LA(ssize_t i) {
147
+ return LT(i)->getType();
148
+ }
149
+
150
+ Token* BufferedTokenStream::LB(size_t k) {
151
+ if (k > _p) {
152
+ return nullptr;
153
+ }
154
+ return _tokens[_p - k].get();
155
+ }
156
+
157
+ Token* BufferedTokenStream::LT(ssize_t k) {
158
+ lazyInit();
159
+ if (k == 0) {
160
+ return nullptr;
161
+ }
162
+ if (k < 0) {
163
+ return LB(-k);
164
+ }
165
+
166
+ size_t i = _p + k - 1;
167
+ sync(i);
168
+ if (i >= _tokens.size()) { // return EOF token
169
+ // EOF must be last token
170
+ return _tokens.back().get();
171
+ }
172
+
173
+ return _tokens[i].get();
174
+ }
175
+
176
+ ssize_t BufferedTokenStream::adjustSeekIndex(size_t i) {
177
+ return i;
178
+ }
179
+
180
+ void BufferedTokenStream::lazyInit() {
181
+ if (_needSetup) {
182
+ setup();
183
+ }
184
+ }
185
+
186
+ void BufferedTokenStream::setup() {
187
+ _needSetup = false;
188
+ sync(0);
189
+ _p = adjustSeekIndex(0);
190
+ }
191
+
192
+ void BufferedTokenStream::setTokenSource(TokenSource *tokenSource) {
193
+ _tokenSource = tokenSource;
194
+ _tokens.clear();
195
+ _fetchedEOF = false;
196
+ _needSetup = true;
197
+ }
198
+
199
+ std::vector<Token *> BufferedTokenStream::getTokens() {
200
+ std::vector<Token *> result;
201
+ for (auto &t : _tokens)
202
+ result.push_back(t.get());
203
+ return result;
204
+ }
205
+
206
+ std::vector<Token *> BufferedTokenStream::getTokens(size_t start, size_t stop) {
207
+ return getTokens(start, stop, std::vector<size_t>());
208
+ }
209
+
210
+ std::vector<Token *> BufferedTokenStream::getTokens(size_t start, size_t stop, const std::vector<size_t> &types) {
211
+ lazyInit();
212
+ if (stop >= _tokens.size() || start >= _tokens.size()) {
213
+ throw IndexOutOfBoundsException(std::string("start ") +
214
+ std::to_string(start) +
215
+ std::string(" or stop ") +
216
+ std::to_string(stop) +
217
+ std::string(" not in 0..") +
218
+ std::to_string(_tokens.size() - 1));
219
+ }
220
+
221
+ std::vector<Token *> filteredTokens;
222
+
223
+ if (start > stop) {
224
+ return filteredTokens;
225
+ }
226
+
227
+ for (size_t i = start; i <= stop; i++) {
228
+ Token *tok = _tokens[i].get();
229
+
230
+ if (types.empty() || std::find(types.begin(), types.end(), tok->getType()) != types.end()) {
231
+ filteredTokens.push_back(tok);
232
+ }
233
+ }
234
+ return filteredTokens;
235
+ }
236
+
237
+ std::vector<Token *> BufferedTokenStream::getTokens(size_t start, size_t stop, size_t ttype) {
238
+ std::vector<size_t> s;
239
+ s.push_back(ttype);
240
+ return getTokens(start, stop, s);
241
+ }
242
+
243
+ ssize_t BufferedTokenStream::nextTokenOnChannel(size_t i, size_t channel) {
244
+ sync(i);
245
+ if (i >= size()) {
246
+ return size() - 1;
247
+ }
248
+
249
+ Token *token = _tokens[i].get();
250
+ while (token->getChannel() != channel) {
251
+ if (token->getType() == Token::EOF) {
252
+ return i;
253
+ }
254
+ i++;
255
+ sync(i);
256
+ token = _tokens[i].get();
257
+ }
258
+ return i;
259
+ }
260
+
261
+ ssize_t BufferedTokenStream::previousTokenOnChannel(size_t i, size_t channel) {
262
+ sync(i);
263
+ if (i >= size()) {
264
+ // the EOF token is on every channel
265
+ return size() - 1;
266
+ }
267
+
268
+ while (true) {
269
+ Token *token = _tokens[i].get();
270
+ if (token->getType() == Token::EOF || token->getChannel() == channel) {
271
+ return i;
272
+ }
273
+
274
+ if (i == 0)
275
+ return -1;
276
+ i--;
277
+ }
278
+ return i;
279
+ }
280
+
281
+ std::vector<Token *> BufferedTokenStream::getHiddenTokensToRight(size_t tokenIndex, ssize_t channel) {
282
+ lazyInit();
283
+ if (tokenIndex >= _tokens.size()) {
284
+ throw IndexOutOfBoundsException(std::to_string(tokenIndex) + " not in 0.." + std::to_string(_tokens.size() - 1));
285
+ }
286
+
287
+ ssize_t nextOnChannel = nextTokenOnChannel(tokenIndex + 1, Lexer::DEFAULT_TOKEN_CHANNEL);
288
+ size_t to;
289
+ size_t from = tokenIndex + 1;
290
+ // if none onchannel to right, nextOnChannel=-1 so set to = last token
291
+ if (nextOnChannel == -1) {
292
+ to = static_cast<ssize_t>(size() - 1);
293
+ } else {
294
+ to = nextOnChannel;
295
+ }
296
+
297
+ return filterForChannel(from, to, channel);
298
+ }
299
+
300
+ std::vector<Token *> BufferedTokenStream::getHiddenTokensToRight(size_t tokenIndex) {
301
+ return getHiddenTokensToRight(tokenIndex, -1);
302
+ }
303
+
304
+ std::vector<Token *> BufferedTokenStream::getHiddenTokensToLeft(size_t tokenIndex, ssize_t channel) {
305
+ lazyInit();
306
+ if (tokenIndex >= _tokens.size()) {
307
+ throw IndexOutOfBoundsException(std::to_string(tokenIndex) + " not in 0.." + std::to_string(_tokens.size() - 1));
308
+ }
309
+
310
+ if (tokenIndex == 0) {
311
+ // Obviously no tokens can appear before the first token.
312
+ return { };
313
+ }
314
+
315
+ ssize_t prevOnChannel = previousTokenOnChannel(tokenIndex - 1, Lexer::DEFAULT_TOKEN_CHANNEL);
316
+ if (prevOnChannel == static_cast<ssize_t>(tokenIndex - 1)) {
317
+ return { };
318
+ }
319
+ // if none onchannel to left, prevOnChannel=-1 then from=0
320
+ size_t from = static_cast<size_t>(prevOnChannel + 1);
321
+ size_t to = tokenIndex - 1;
322
+
323
+ return filterForChannel(from, to, channel);
324
+ }
325
+
326
+ std::vector<Token *> BufferedTokenStream::getHiddenTokensToLeft(size_t tokenIndex) {
327
+ return getHiddenTokensToLeft(tokenIndex, -1);
328
+ }
329
+
330
+ std::vector<Token *> BufferedTokenStream::filterForChannel(size_t from, size_t to, ssize_t channel) {
331
+ std::vector<Token *> hidden;
332
+ for (size_t i = from; i <= to; i++) {
333
+ Token *t = _tokens[i].get();
334
+ if (channel == -1) {
335
+ if (t->getChannel() != Lexer::DEFAULT_TOKEN_CHANNEL) {
336
+ hidden.push_back(t);
337
+ }
338
+ } else {
339
+ if (t->getChannel() == static_cast<size_t>(channel)) {
340
+ hidden.push_back(t);
341
+ }
342
+ }
343
+ }
344
+
345
+ return hidden;
346
+ }
347
+
348
+ bool BufferedTokenStream::isInitialized() const {
349
+ return !_needSetup;
350
+ }
351
+
352
+ /**
353
+ * Get the text of all tokens in this buffer.
354
+ */
355
+ std::string BufferedTokenStream::getSourceName() const
356
+ {
357
+ return _tokenSource->getSourceName();
358
+ }
359
+
360
+ std::string BufferedTokenStream::getText() {
361
+ fill();
362
+ return getText(misc::Interval(0U, size() - 1));
363
+ }
364
+
365
+ std::string BufferedTokenStream::getText(const misc::Interval &interval) {
366
+ lazyInit();
367
+ size_t start = interval.a;
368
+ size_t stop = interval.b;
369
+ if (start == INVALID_INDEX || stop == INVALID_INDEX) {
370
+ return "";
371
+ }
372
+ sync(stop);
373
+ if (stop >= _tokens.size()) {
374
+ stop = _tokens.size() - 1;
375
+ }
376
+
377
+ std::stringstream ss;
378
+ for (size_t i = start; i <= stop; i++) {
379
+ Token *t = _tokens[i].get();
380
+ if (t->getType() == Token::EOF) {
381
+ break;
382
+ }
383
+ ss << t->getText();
384
+ }
385
+ return ss.str();
386
+ }
387
+
388
+ std::string BufferedTokenStream::getText(RuleContext *ctx) {
389
+ return getText(ctx->getSourceInterval());
390
+ }
391
+
392
+ std::string BufferedTokenStream::getText(Token *start, Token *stop) {
393
+ if (start != nullptr && stop != nullptr) {
394
+ return getText(misc::Interval(start->getTokenIndex(), stop->getTokenIndex()));
395
+ }
396
+
397
+ return "";
398
+ }
399
+
400
+ void BufferedTokenStream::fill() {
401
+ lazyInit();
402
+ const size_t blockSize = 1000;
403
+ while (true) {
404
+ size_t fetched = fetch(blockSize);
405
+ if (fetched < blockSize) {
406
+ return;
407
+ }
408
+ }
409
+ }
410
+
411
+ void BufferedTokenStream::InitializeInstanceFields() {
412
+ _needSetup = true;
413
+ _fetchedEOF = false;
414
+ }