python3-parser 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (335) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +13 -0
  3. data/README.md +59 -0
  4. data/Rakefile +21 -0
  5. data/ext/python3-parser/Python3LexerBase.cpp +112 -0
  6. data/ext/python3-parser/Python3LexerBase.h +34 -0
  7. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +10 -0
  8. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +167 -0
  9. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +10 -0
  10. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +121 -0
  11. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +34 -0
  12. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +27 -0
  13. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +155 -0
  14. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +69 -0
  15. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +61 -0
  16. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +59 -0
  17. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +25 -0
  18. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +36 -0
  19. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +414 -0
  20. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +200 -0
  21. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +11 -0
  22. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +37 -0
  23. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +195 -0
  24. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +158 -0
  25. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +39 -0
  26. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +74 -0
  27. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +78 -0
  28. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +79 -0
  29. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +15 -0
  30. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +35 -0
  31. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +333 -0
  32. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +466 -0
  33. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +84 -0
  34. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +80 -0
  35. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +64 -0
  36. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +99 -0
  37. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +51 -0
  38. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +32 -0
  39. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +18 -0
  40. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +24 -0
  41. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +12 -0
  42. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +218 -0
  43. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +19 -0
  44. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +45 -0
  45. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +295 -0
  46. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +196 -0
  47. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +75 -0
  48. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +52 -0
  49. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +36 -0
  50. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +31 -0
  51. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +92 -0
  52. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +88 -0
  53. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +46 -0
  54. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +42 -0
  55. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +648 -0
  56. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +467 -0
  57. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +306 -0
  58. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +179 -0
  59. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +141 -0
  60. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +147 -0
  61. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +53 -0
  62. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +38 -0
  63. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +66 -0
  64. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +98 -0
  65. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +167 -0
  66. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +164 -0
  67. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +143 -0
  68. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +137 -0
  69. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +27 -0
  70. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +32 -0
  71. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +53 -0
  72. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +155 -0
  73. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +9 -0
  74. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +92 -0
  75. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +30 -0
  76. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +9 -0
  77. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +85 -0
  78. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +11 -0
  79. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +137 -0
  80. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +425 -0
  81. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +293 -0
  82. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +211 -0
  83. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +123 -0
  84. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +270 -0
  85. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +115 -0
  86. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +104 -0
  87. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +193 -0
  88. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +9 -0
  89. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +23 -0
  90. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +137 -0
  91. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +167 -0
  92. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +209 -0
  93. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +112 -0
  94. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +113 -0
  95. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +148 -0
  96. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +228 -0
  97. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +110 -0
  98. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +64 -0
  99. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +50 -0
  100. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +758 -0
  101. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +85 -0
  102. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp +621 -0
  103. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.h +61 -0
  104. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +63 -0
  105. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +87 -0
  106. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +72 -0
  107. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +133 -0
  108. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +20 -0
  109. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp +14 -0
  110. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h +24 -0
  111. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +33 -0
  112. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +33 -0
  113. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +16 -0
  114. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +68 -0
  115. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +82 -0
  116. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +43 -0
  117. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +31 -0
  118. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +30 -0
  119. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp +12 -0
  120. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +22 -0
  121. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.cpp +12 -0
  122. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +21 -0
  123. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.cpp +15 -0
  124. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +24 -0
  125. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.cpp +9 -0
  126. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +21 -0
  127. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
  128. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +47 -0
  129. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +14 -0
  130. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +70 -0
  131. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +25 -0
  132. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +227 -0
  133. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +17 -0
  134. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +30 -0
  135. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp +35 -0
  136. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h +27 -0
  137. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +35 -0
  138. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +39 -0
  139. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +15 -0
  140. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +43 -0
  141. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +158 -0
  142. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +109 -0
  143. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +84 -0
  144. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +44 -0
  145. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +628 -0
  146. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +210 -0
  147. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +9 -0
  148. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +66 -0
  149. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +107 -0
  150. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +115 -0
  151. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +55 -0
  152. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +55 -0
  153. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +63 -0
  154. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +62 -0
  155. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +87 -0
  156. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +63 -0
  157. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +82 -0
  158. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +56 -0
  159. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +61 -0
  160. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +47 -0
  161. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +57 -0
  162. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +47 -0
  163. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +57 -0
  164. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +56 -0
  165. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +61 -0
  166. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +47 -0
  167. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +55 -0
  168. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +56 -0
  169. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +55 -0
  170. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
  171. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +42 -0
  172. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.cpp +12 -0
  173. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +22 -0
  174. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +27 -0
  175. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +25 -0
  176. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +12 -0
  177. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +20 -0
  178. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +102 -0
  179. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +102 -0
  180. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +1366 -0
  181. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +904 -0
  182. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp +12 -0
  183. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +25 -0
  184. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp +12 -0
  185. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +22 -0
  186. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +32 -0
  187. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +29 -0
  188. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
  189. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +62 -0
  190. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +34 -0
  191. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +39 -0
  192. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +662 -0
  193. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +254 -0
  194. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +201 -0
  195. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +436 -0
  196. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
  197. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +60 -0
  198. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +30 -0
  199. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +29 -0
  200. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.cpp +16 -0
  201. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +25 -0
  202. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.cpp +12 -0
  203. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +25 -0
  204. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +37 -0
  205. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +40 -0
  206. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +377 -0
  207. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +222 -0
  208. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +32 -0
  209. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +30 -0
  210. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +81 -0
  211. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +36 -0
  212. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp +12 -0
  213. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +21 -0
  214. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp +15 -0
  215. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +35 -0
  216. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +19 -0
  217. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +21 -0
  218. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.cpp +12 -0
  219. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +21 -0
  220. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +44 -0
  221. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +76 -0
  222. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +25 -0
  223. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +25 -0
  224. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +127 -0
  225. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +91 -0
  226. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +67 -0
  227. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +32 -0
  228. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +100 -0
  229. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +144 -0
  230. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +20 -0
  231. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +23 -0
  232. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +124 -0
  233. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +31 -0
  234. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +89 -0
  235. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +84 -0
  236. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +521 -0
  237. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +198 -0
  238. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +134 -0
  239. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +76 -0
  240. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +4 -0
  241. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +21 -0
  242. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +13 -0
  243. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +170 -0
  244. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +43 -0
  245. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +110 -0
  246. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +76 -0
  247. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +248 -0
  248. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +78 -0
  249. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +163 -0
  250. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +36 -0
  251. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +54 -0
  252. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.cpp +303 -0
  253. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.h +112 -0
  254. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +128 -0
  255. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.cpp +9 -0
  256. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +19 -0
  257. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +23 -0
  258. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +33 -0
  259. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +71 -0
  260. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
  261. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +15 -0
  262. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +102 -0
  263. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +9 -0
  264. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +39 -0
  265. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +50 -0
  266. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
  267. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +57 -0
  268. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +49 -0
  269. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +31 -0
  270. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.cpp +9 -0
  271. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +32 -0
  272. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +57 -0
  273. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +33 -0
  274. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +241 -0
  275. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +78 -0
  276. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +9 -0
  277. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +44 -0
  278. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
  279. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
  280. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
  281. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
  282. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +371 -0
  283. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
  284. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
  285. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +117 -0
  286. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +39 -0
  287. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +86 -0
  288. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +28 -0
  289. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +51 -0
  290. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
  291. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +80 -0
  292. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +154 -0
  293. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +86 -0
  294. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +31 -0
  295. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +40 -0
  296. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +173 -0
  297. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +56 -0
  298. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
  299. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
  300. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
  301. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
  302. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
  303. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
  304. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
  305. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
  306. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
  307. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
  308. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
  309. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
  310. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
  311. data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
  312. data/ext/python3-parser/antlrgen/Python3Lexer.cpp +1024 -0
  313. data/ext/python3-parser/antlrgen/Python3Lexer.h +91 -0
  314. data/ext/python3-parser/antlrgen/Python3Lexer.interp +339 -0
  315. data/ext/python3-parser/antlrgen/Python3Lexer.tokens +181 -0
  316. data/ext/python3-parser/antlrgen/Python3Parser.cpp +10550 -0
  317. data/ext/python3-parser/antlrgen/Python3Parser.h +1811 -0
  318. data/ext/python3-parser/antlrgen/Python3Parser.interp +295 -0
  319. data/ext/python3-parser/antlrgen/Python3Parser.tokens +181 -0
  320. data/ext/python3-parser/antlrgen/Python3ParserBaseListener.cpp +7 -0
  321. data/ext/python3-parser/antlrgen/Python3ParserBaseListener.h +284 -0
  322. data/ext/python3-parser/antlrgen/Python3ParserBaseVisitor.cpp +7 -0
  323. data/ext/python3-parser/antlrgen/Python3ParserBaseVisitor.h +364 -0
  324. data/ext/python3-parser/antlrgen/Python3ParserListener.cpp +7 -0
  325. data/ext/python3-parser/antlrgen/Python3ParserListener.h +277 -0
  326. data/ext/python3-parser/antlrgen/Python3ParserVisitor.cpp +7 -0
  327. data/ext/python3-parser/antlrgen/Python3ParserVisitor.h +196 -0
  328. data/ext/python3-parser/extconf.rb +34 -0
  329. data/ext/python3-parser/python3_parser.cpp +10103 -0
  330. data/lib/python3-parser.rb +2 -0
  331. data/lib/python3-parser/version.rb +3 -0
  332. data/python3-parser.gemspec +31 -0
  333. data/spec/parser_spec.rb +105 -0
  334. data/spec/spec_helper.rb +9 -0
  335. metadata +391 -0
@@ -0,0 +1,200 @@
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
+ /**
13
+ * This implementation of {@link TokenStream} loads tokens from a
14
+ * {@link TokenSource} on-demand, and places the tokens in a buffer to provide
15
+ * access to any previous token by index.
16
+ *
17
+ * <p>
18
+ * This token stream ignores the value of {@link Token#getChannel}. If your
19
+ * parser requires the token stream filter tokens to only those on a particular
20
+ * channel, such as {@link Token#DEFAULT_CHANNEL} or
21
+ * {@link Token#HIDDEN_CHANNEL}, use a filtering token stream such a
22
+ * {@link CommonTokenStream}.</p>
23
+ */
24
+ class ANTLR4CPP_PUBLIC BufferedTokenStream : public TokenStream {
25
+ public:
26
+ BufferedTokenStream(TokenSource *tokenSource);
27
+ BufferedTokenStream(const BufferedTokenStream& other) = delete;
28
+
29
+ BufferedTokenStream& operator = (const BufferedTokenStream& other) = delete;
30
+
31
+ virtual TokenSource* getTokenSource() const override;
32
+ virtual size_t index() override;
33
+ virtual ssize_t mark() override;
34
+
35
+ virtual void release(ssize_t marker) override;
36
+ virtual void reset();
37
+ virtual void seek(size_t index) override;
38
+
39
+ virtual size_t size() override;
40
+ virtual void consume() override;
41
+
42
+ virtual Token* get(size_t i) const override;
43
+
44
+ /// Get all tokens from start..stop inclusively.
45
+ virtual std::vector<Token *> get(size_t start, size_t stop);
46
+
47
+ virtual size_t LA(ssize_t i) override;
48
+ virtual Token* LT(ssize_t k) override;
49
+
50
+ /// Reset this token stream by setting its token source.
51
+ virtual void setTokenSource(TokenSource *tokenSource);
52
+ virtual std::vector<Token *> getTokens();
53
+ virtual std::vector<Token *> getTokens(size_t start, size_t stop);
54
+
55
+ /// <summary>
56
+ /// Given a start and stop index, return a List of all tokens in
57
+ /// the token type BitSet. Return null if no tokens were found. This
58
+ /// method looks at both on and off channel tokens.
59
+ /// </summary>
60
+ virtual std::vector<Token *> getTokens(size_t start, size_t stop, const std::vector<size_t> &types);
61
+ virtual std::vector<Token *> getTokens(size_t start, size_t stop, size_t ttype);
62
+
63
+ /// Collect all tokens on specified channel to the right of
64
+ /// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL or
65
+ /// EOF. If channel is -1, find any non default channel token.
66
+ virtual std::vector<Token *> getHiddenTokensToRight(size_t tokenIndex, ssize_t channel);
67
+
68
+ /// <summary>
69
+ /// Collect all hidden tokens (any off-default channel) to the right of
70
+ /// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL
71
+ /// or EOF.
72
+ /// </summary>
73
+ virtual std::vector<Token *> getHiddenTokensToRight(size_t tokenIndex);
74
+
75
+ /// <summary>
76
+ /// Collect all tokens on specified channel to the left of
77
+ /// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL.
78
+ /// If channel is -1, find any non default channel token.
79
+ /// </summary>
80
+ virtual std::vector<Token *> getHiddenTokensToLeft(size_t tokenIndex, ssize_t channel);
81
+
82
+ /// <summary>
83
+ /// Collect all hidden tokens (any off-default channel) to the left of
84
+ /// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL.
85
+ /// </summary>
86
+ virtual std::vector<Token *> getHiddenTokensToLeft(size_t tokenIndex);
87
+
88
+ virtual std::string getSourceName() const override;
89
+ virtual std::string getText() override;
90
+ virtual std::string getText(const misc::Interval &interval) override;
91
+ virtual std::string getText(RuleContext *ctx) override;
92
+ virtual std::string getText(Token *start, Token *stop) override;
93
+
94
+ /// Get all tokens from lexer until EOF.
95
+ virtual void fill();
96
+
97
+ protected:
98
+ /**
99
+ * The {@link TokenSource} from which tokens for this stream are fetched.
100
+ */
101
+ TokenSource *_tokenSource;
102
+
103
+ /**
104
+ * A collection of all tokens fetched from the token source. The list is
105
+ * considered a complete view of the input once {@link #fetchedEOF} is set
106
+ * to {@code true}.
107
+ */
108
+ std::vector<std::unique_ptr<Token>> _tokens;
109
+
110
+ /**
111
+ * The index into {@link #tokens} of the current token (next token to
112
+ * {@link #consume}). {@link #tokens}{@code [}{@link #p}{@code ]} should be
113
+ * {@link #LT LT(1)}.
114
+ *
115
+ * <p>This field is set to -1 when the stream is first constructed or when
116
+ * {@link #setTokenSource} is called, indicating that the first token has
117
+ * not yet been fetched from the token source. For additional information,
118
+ * see the documentation of {@link IntStream} for a description of
119
+ * Initializing Methods.</p>
120
+ */
121
+ // ml: since -1 requires to make this member signed for just this single aspect we use a member _needSetup instead.
122
+ // Use bool isInitialized() to find out if this stream has started reading.
123
+ size_t _p;
124
+
125
+ /**
126
+ * Indicates whether the {@link Token#EOF} token has been fetched from
127
+ * {@link #tokenSource} and added to {@link #tokens}. This field improves
128
+ * performance for the following cases:
129
+ *
130
+ * <ul>
131
+ * <li>{@link #consume}: The lookahead check in {@link #consume} to prevent
132
+ * consuming the EOF symbol is optimized by checking the values of
133
+ * {@link #fetchedEOF} and {@link #p} instead of calling {@link #LA}.</li>
134
+ * <li>{@link #fetch}: The check to prevent adding multiple EOF symbols into
135
+ * {@link #tokens} is trivial with this field.</li>
136
+ * <ul>
137
+ */
138
+ bool _fetchedEOF;
139
+
140
+ /// <summary>
141
+ /// Make sure index {@code i} in tokens has a token.
142
+ /// </summary>
143
+ /// <returns> {@code true} if a token is located at index {@code i}, otherwise
144
+ /// {@code false}. </returns>
145
+ /// <seealso cref= #get(int i) </seealso>
146
+ virtual bool sync(size_t i);
147
+
148
+ /// <summary>
149
+ /// Add {@code n} elements to buffer.
150
+ /// </summary>
151
+ /// <returns> The actual number of elements added to the buffer. </returns>
152
+ virtual size_t fetch(size_t n);
153
+
154
+ virtual Token* LB(size_t k);
155
+
156
+ /// Allowed derived classes to modify the behavior of operations which change
157
+ /// the current stream position by adjusting the target token index of a seek
158
+ /// operation. The default implementation simply returns {@code i}. If an
159
+ /// exception is thrown in this method, the current stream index should not be
160
+ /// changed.
161
+ /// <p/>
162
+ /// For example, <seealso cref="CommonTokenStream"/> overrides this method to ensure that
163
+ /// the seek target is always an on-channel token.
164
+ ///
165
+ /// <param name="i"> The target token index. </param>
166
+ /// <returns> The adjusted target token index. </returns>
167
+ virtual ssize_t adjustSeekIndex(size_t i);
168
+ void lazyInit();
169
+ virtual void setup();
170
+
171
+ /**
172
+ * Given a starting index, return the index of the next token on channel.
173
+ * Return {@code i} if {@code tokens[i]} is on channel. Return the index of
174
+ * the EOF token if there are no tokens on channel between {@code i} and
175
+ * EOF.
176
+ */
177
+ virtual ssize_t nextTokenOnChannel(size_t i, size_t channel);
178
+
179
+ /**
180
+ * Given a starting index, return the index of the previous token on
181
+ * channel. Return {@code i} if {@code tokens[i]} is on channel. Return -1
182
+ * if there are no tokens on channel between {@code i} and 0.
183
+ *
184
+ * <p>
185
+ * If {@code i} specifies an index at or after the EOF token, the EOF token
186
+ * index is returned. This is due to the fact that the EOF token is treated
187
+ * as though it were on every channel.</p>
188
+ */
189
+ virtual ssize_t previousTokenOnChannel(size_t i, size_t channel);
190
+
191
+ virtual std::vector<Token *> filterForChannel(size_t from, size_t to, ssize_t channel);
192
+
193
+ bool isInitialized() const;
194
+
195
+ private:
196
+ bool _needSetup;
197
+ void InitializeInstanceFields();
198
+ };
199
+
200
+ } // namespace antlr4
@@ -0,0 +1,11 @@
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 "CharStream.h"
7
+
8
+ using namespace antlr4;
9
+
10
+ CharStream::~CharStream() {
11
+ }
@@ -0,0 +1,37 @@
1
+ /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
+ * Use of this file is governed by the BSD 3-clause license that
3
+ * can be found in the LICENSE.txt file in the project root.
4
+ */
5
+
6
+ #pragma once
7
+
8
+ #include "IntStream.h"
9
+ #include "misc/Interval.h"
10
+
11
+ namespace antlr4 {
12
+
13
+ /// A source of characters for an ANTLR lexer.
14
+ class ANTLR4CPP_PUBLIC CharStream : public IntStream {
15
+ public:
16
+ virtual ~CharStream();
17
+
18
+ /// This method returns the text for a range of characters within this input
19
+ /// stream. This method is guaranteed to not throw an exception if the
20
+ /// specified interval lies entirely within a marked range. For more
21
+ /// information about marked ranges, see IntStream::mark.
22
+ ///
23
+ /// <param name="interval"> an interval within the stream </param>
24
+ /// <returns> the text of the specified interval
25
+ /// </returns>
26
+ /// <exception cref="NullPointerException"> if {@code interval} is {@code null} </exception>
27
+ /// <exception cref="IllegalArgumentException"> if {@code interval.a < 0}, or if
28
+ /// {@code interval.b < interval.a - 1}, or if {@code interval.b} lies at or
29
+ /// past the end of the stream </exception>
30
+ /// <exception cref="UnsupportedOperationException"> if the stream does not support
31
+ /// getting the text of the specified interval </exception>
32
+ virtual std::string getText(const misc::Interval &interval) = 0;
33
+
34
+ virtual std::string toString() const = 0;
35
+ };
36
+
37
+ } // namespace antlr4
@@ -0,0 +1,195 @@
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 "TokenSource.h"
7
+ #include "CharStream.h"
8
+ #include "Recognizer.h"
9
+ #include "Vocabulary.h"
10
+
11
+ #include "misc/Interval.h"
12
+
13
+ #include "support/StringUtils.h"
14
+ #include "support/CPPUtils.h"
15
+
16
+ #include "CommonToken.h"
17
+
18
+ using namespace antlr4;
19
+ using namespace antlr4::misc;
20
+
21
+ using namespace antlrcpp;
22
+
23
+ const std::pair<TokenSource*, CharStream*> CommonToken::EMPTY_SOURCE;
24
+
25
+ CommonToken::CommonToken(size_t type) {
26
+ InitializeInstanceFields();
27
+ _type = type;
28
+ }
29
+
30
+ CommonToken::CommonToken(std::pair<TokenSource*, CharStream*> source, size_t type, size_t channel, size_t start, size_t stop) {
31
+ InitializeInstanceFields();
32
+ _source = source;
33
+ _type = type;
34
+ _channel = channel;
35
+ _start = start;
36
+ _stop = stop;
37
+ if (_source.first != nullptr) {
38
+ _line = static_cast<int>(source.first->getLine());
39
+ _charPositionInLine = source.first->getCharPositionInLine();
40
+ }
41
+ }
42
+
43
+ CommonToken::CommonToken(size_t type, const std::string &text) {
44
+ InitializeInstanceFields();
45
+ _type = type;
46
+ _channel = DEFAULT_CHANNEL;
47
+ _text = text;
48
+ _source = EMPTY_SOURCE;
49
+ }
50
+
51
+ CommonToken::CommonToken(Token *oldToken) {
52
+ InitializeInstanceFields();
53
+ _type = oldToken->getType();
54
+ _line = oldToken->getLine();
55
+ _index = oldToken->getTokenIndex();
56
+ _charPositionInLine = oldToken->getCharPositionInLine();
57
+ _channel = oldToken->getChannel();
58
+ _start = oldToken->getStartIndex();
59
+ _stop = oldToken->getStopIndex();
60
+
61
+ if (is<CommonToken *>(oldToken)) {
62
+ _text = (static_cast<CommonToken *>(oldToken))->_text;
63
+ _source = (static_cast<CommonToken *>(oldToken))->_source;
64
+ } else {
65
+ _text = oldToken->getText();
66
+ _source = { oldToken->getTokenSource(), oldToken->getInputStream() };
67
+ }
68
+ }
69
+
70
+ size_t CommonToken::getType() const {
71
+ return _type;
72
+ }
73
+
74
+ void CommonToken::setLine(size_t line) {
75
+ _line = line;
76
+ }
77
+
78
+ std::string CommonToken::getText() const {
79
+ if (!_text.empty()) {
80
+ return _text;
81
+ }
82
+
83
+ CharStream *input = getInputStream();
84
+ if (input == nullptr) {
85
+ return "";
86
+ }
87
+ size_t n = input->size();
88
+ if (_start < n && _stop < n) {
89
+ return input->getText(misc::Interval(_start, _stop));
90
+ } else {
91
+ return "<EOF>";
92
+ }
93
+ }
94
+
95
+ void CommonToken::setText(const std::string &text) {
96
+ _text = text;
97
+ }
98
+
99
+ size_t CommonToken::getLine() const {
100
+ return _line;
101
+ }
102
+
103
+ size_t CommonToken::getCharPositionInLine() const {
104
+ return _charPositionInLine;
105
+ }
106
+
107
+ void CommonToken::setCharPositionInLine(size_t charPositionInLine) {
108
+ _charPositionInLine = charPositionInLine;
109
+ }
110
+
111
+ size_t CommonToken::getChannel() const {
112
+ return _channel;
113
+ }
114
+
115
+ void CommonToken::setChannel(size_t channel) {
116
+ _channel = channel;
117
+ }
118
+
119
+ void CommonToken::setType(size_t type) {
120
+ _type = type;
121
+ }
122
+
123
+ size_t CommonToken::getStartIndex() const {
124
+ return _start;
125
+ }
126
+
127
+ void CommonToken::setStartIndex(size_t start) {
128
+ _start = start;
129
+ }
130
+
131
+ size_t CommonToken::getStopIndex() const {
132
+ return _stop;
133
+ }
134
+
135
+ void CommonToken::setStopIndex(size_t stop) {
136
+ _stop = stop;
137
+ }
138
+
139
+ size_t CommonToken::getTokenIndex() const {
140
+ return _index;
141
+ }
142
+
143
+ void CommonToken::setTokenIndex(size_t index) {
144
+ _index = index;
145
+ }
146
+
147
+ antlr4::TokenSource *CommonToken::getTokenSource() const {
148
+ return _source.first;
149
+ }
150
+
151
+ antlr4::CharStream *CommonToken::getInputStream() const {
152
+ return _source.second;
153
+ }
154
+
155
+ std::string CommonToken::toString() const {
156
+ return toString(nullptr);
157
+ }
158
+
159
+ std::string CommonToken::toString(Recognizer *r) const {
160
+ std::stringstream ss;
161
+
162
+ std::string channelStr;
163
+ if (_channel > 0) {
164
+ channelStr = ",channel=" + std::to_string(_channel);
165
+ }
166
+ std::string txt = getText();
167
+ if (!txt.empty()) {
168
+ antlrcpp::replaceAll(txt, "\n", "\\n");
169
+ antlrcpp::replaceAll(txt, "\r", "\\r");
170
+ antlrcpp::replaceAll(txt, "\t", "\\t");
171
+ } else {
172
+ txt = "<no text>";
173
+ }
174
+
175
+ std::string typeString = std::to_string(symbolToNumeric(_type));
176
+ if (r != nullptr)
177
+ typeString = r->getVocabulary().getDisplayName(_type);
178
+
179
+ ss << "[@" << symbolToNumeric(getTokenIndex()) << "," << symbolToNumeric(_start) << ":" << symbolToNumeric(_stop)
180
+ << "='" << txt << "',<" << typeString << ">" << channelStr << "," << _line << ":"
181
+ << getCharPositionInLine() << "]";
182
+
183
+ return ss.str();
184
+ }
185
+
186
+ void CommonToken::InitializeInstanceFields() {
187
+ _type = 0;
188
+ _line = 0;
189
+ _charPositionInLine = INVALID_INDEX;
190
+ _channel = DEFAULT_CHANNEL;
191
+ _index = INVALID_INDEX;
192
+ _start = 0;
193
+ _stop = 0;
194
+ _source = EMPTY_SOURCE;
195
+ }
@@ -0,0 +1,158 @@
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 "WritableToken.h"
9
+
10
+ namespace antlr4 {
11
+
12
+ class ANTLR4CPP_PUBLIC CommonToken : public WritableToken {
13
+ protected:
14
+ /**
15
+ * An empty {@link Pair} which is used as the default value of
16
+ * {@link #source} for tokens that do not have a source.
17
+ */
18
+ static const std::pair<TokenSource *, CharStream *> EMPTY_SOURCE;
19
+
20
+ /**
21
+ * This is the backing field for {@link #getType} and {@link #setType}.
22
+ */
23
+ size_t _type;
24
+
25
+ /**
26
+ * This is the backing field for {@link #getLine} and {@link #setLine}.
27
+ */
28
+ size_t _line;
29
+
30
+ /**
31
+ * This is the backing field for {@link #getCharPositionInLine} and
32
+ * {@link #setCharPositionInLine}.
33
+ */
34
+ size_t _charPositionInLine; // set to invalid position
35
+
36
+ /**
37
+ * This is the backing field for {@link #getChannel} and
38
+ * {@link #setChannel}.
39
+ */
40
+ size_t _channel;
41
+
42
+ /**
43
+ * This is the backing field for {@link #getTokenSource} and
44
+ * {@link #getInputStream}.
45
+ *
46
+ * <p>
47
+ * These properties share a field to reduce the memory footprint of
48
+ * {@link CommonToken}. Tokens created by a {@link CommonTokenFactory} from
49
+ * the same source and input stream share a reference to the same
50
+ * {@link Pair} containing these values.</p>
51
+ */
52
+
53
+ std::pair<TokenSource *, CharStream *> _source; // ml: pure references, usually from statically allocated classes.
54
+
55
+ /**
56
+ * This is the backing field for {@link #getText} when the token text is
57
+ * explicitly set in the constructor or via {@link #setText}.
58
+ *
59
+ * @see #getText()
60
+ */
61
+ std::string _text;
62
+
63
+ /**
64
+ * This is the backing field for {@link #getTokenIndex} and
65
+ * {@link #setTokenIndex}.
66
+ */
67
+ size_t _index;
68
+
69
+ /**
70
+ * This is the backing field for {@link #getStartIndex} and
71
+ * {@link #setStartIndex}.
72
+ */
73
+ size_t _start;
74
+
75
+ /**
76
+ * This is the backing field for {@link #getStopIndex} and
77
+ * {@link #setStopIndex}.
78
+ */
79
+ size_t _stop;
80
+
81
+ public:
82
+ /**
83
+ * Constructs a new {@link CommonToken} with the specified token type.
84
+ *
85
+ * @param type The token type.
86
+ */
87
+ CommonToken(size_t type);
88
+ CommonToken(std::pair<TokenSource*, CharStream*> source, size_t type, size_t channel, size_t start, size_t stop);
89
+
90
+ /**
91
+ * Constructs a new {@link CommonToken} with the specified token type and
92
+ * text.
93
+ *
94
+ * @param type The token type.
95
+ * @param text The text of the token.
96
+ */
97
+ CommonToken(size_t type, const std::string &text);
98
+
99
+ /**
100
+ * Constructs a new {@link CommonToken} as a copy of another {@link Token}.
101
+ *
102
+ * <p>
103
+ * If {@code oldToken} is also a {@link CommonToken} instance, the newly
104
+ * constructed token will share a reference to the {@link #text} field and
105
+ * the {@link Pair} stored in {@link #source}. Otherwise, {@link #text} will
106
+ * be assigned the result of calling {@link #getText}, and {@link #source}
107
+ * will be constructed from the result of {@link Token#getTokenSource} and
108
+ * {@link Token#getInputStream}.</p>
109
+ *
110
+ * @param oldToken The token to copy.
111
+ */
112
+ CommonToken(Token *oldToken);
113
+
114
+ virtual size_t getType() const override;
115
+
116
+ /**
117
+ * Explicitly set the text for this token. If {code text} is not
118
+ * {@code null}, then {@link #getText} will return this value rather than
119
+ * extracting the text from the input.
120
+ *
121
+ * @param text The explicit text of the token, or {@code null} if the text
122
+ * should be obtained from the input along with the start and stop indexes
123
+ * of the token.
124
+ */
125
+ virtual void setText(const std::string &text) override;
126
+ virtual std::string getText() const override;
127
+
128
+ virtual void setLine(size_t line) override;
129
+ virtual size_t getLine() const override;
130
+
131
+ virtual size_t getCharPositionInLine() const override;
132
+ virtual void setCharPositionInLine(size_t charPositionInLine) override;
133
+
134
+ virtual size_t getChannel() const override;
135
+ virtual void setChannel(size_t channel) override;
136
+
137
+ virtual void setType(size_t type) override;
138
+
139
+ virtual size_t getStartIndex() const override;
140
+ virtual void setStartIndex(size_t start);
141
+
142
+ virtual size_t getStopIndex() const override;
143
+ virtual void setStopIndex(size_t stop);
144
+
145
+ virtual size_t getTokenIndex() const override;
146
+ virtual void setTokenIndex(size_t index) override;
147
+
148
+ virtual TokenSource *getTokenSource() const override;
149
+ virtual CharStream *getInputStream() const override;
150
+
151
+ virtual std::string toString() const override;
152
+
153
+ virtual std::string toString(Recognizer *r) const;
154
+ private:
155
+ void InitializeInstanceFields();
156
+ };
157
+
158
+ } // namespace antlr4