From bbb7bd0887717b544df1a50e3842ca64c3489941 Mon Sep 17 00:00:00 2001 From: Emmanuel Bourg Date: Wed, 30 Sep 2015 23:36:28 +0200 Subject: Imported Upstream version 4.5.1 --- tool/src/org/antlr/v4/Tool.java | 891 +++++++++++++ .../org/antlr/v4/analysis/AnalysisPipeline.java | 118 ++ .../antlr/v4/analysis/LeftRecursionDetector.java | 154 +++ .../v4/analysis/LeftRecursiveRuleAltInfo.java | 62 + .../v4/analysis/LeftRecursiveRuleAnalyzer.java | 446 +++++++ .../v4/analysis/LeftRecursiveRuleTransformer.java | 276 ++++ tool/src/org/antlr/v4/automata/ATNFactory.java | 244 ++++ tool/src/org/antlr/v4/automata/ATNOptimizer.java | 170 +++ tool/src/org/antlr/v4/automata/ATNPrinter.java | 139 ++ tool/src/org/antlr/v4/automata/ATNVisitor.java | 61 + .../src/org/antlr/v4/automata/LexerATNFactory.java | 483 +++++++ .../org/antlr/v4/automata/ParserATNFactory.java | 797 ++++++++++++ .../org/antlr/v4/automata/TailEpsilonRemover.java | 81 ++ .../src/org/antlr/v4/codegen/ActionTranslator.java | 322 +++++ .../antlr/v4/codegen/BlankOutputModelFactory.java | 130 ++ tool/src/org/antlr/v4/codegen/CodeGenPipeline.java | 127 ++ tool/src/org/antlr/v4/codegen/CodeGenerator.java | 302 +++++ .../antlr/v4/codegen/CodeGeneratorExtension.java | 96 ++ .../v4/codegen/DefaultOutputModelFactory.java | 127 ++ tool/src/org/antlr/v4/codegen/LexerFactory.java | 36 + .../antlr/v4/codegen/OutputModelController.java | 500 ++++++++ .../org/antlr/v4/codegen/OutputModelFactory.java | 130 ++ .../org/antlr/v4/codegen/OutputModelWalker.java | 166 +++ tool/src/org/antlr/v4/codegen/ParserFactory.java | 367 ++++++ tool/src/org/antlr/v4/codegen/SourceGenTriggers.g | 198 +++ tool/src/org/antlr/v4/codegen/Target.java | 527 ++++++++ tool/src/org/antlr/v4/codegen/Wildcard.java | 40 + tool/src/org/antlr/v4/codegen/model/Action.java | 83 ++ .../org/antlr/v4/codegen/model/AddToLabelList.java | 46 + tool/src/org/antlr/v4/codegen/model/AltBlock.java | 51 + tool/src/org/antlr/v4/codegen/model/ArgAction.java | 43 + .../antlr/v4/codegen/model/BaseListenerFile.java | 38 + .../antlr/v4/codegen/model/BaseVisitorFile.java | 38 + .../antlr/v4/codegen/model/CaptureNextToken.java | 41 + .../v4/codegen/model/CaptureNextTokenType.java | 42 + tool/src/org/antlr/v4/codegen/model/Choice.java | 97 ++ .../antlr/v4/codegen/model/CodeBlockForAlt.java | 42 + .../v4/codegen/model/CodeBlockForOuterMostAlt.java | 54 + .../org/antlr/v4/codegen/model/DispatchMethod.java | 38 + .../codegen/model/ElementFrequenciesVisitor.java | 166 +++ .../antlr/v4/codegen/model/ExceptionClause.java | 48 + .../src/org/antlr/v4/codegen/model/InvokeRule.java | 105 ++ .../org/antlr/v4/codegen/model/LL1AltBlock.java | 53 + tool/src/org/antlr/v4/codegen/model/LL1Choice.java | 48 + tool/src/org/antlr/v4/codegen/model/LL1Loop.java | 71 ++ .../antlr/v4/codegen/model/LL1OptionalBlock.java | 47 + .../codegen/model/LL1OptionalBlockSingleAlt.java | 65 + .../v4/codegen/model/LL1PlusBlockSingleAlt.java | 58 + .../v4/codegen/model/LL1StarBlockSingleAlt.java | 54 + tool/src/org/antlr/v4/codegen/model/LabeledOp.java | 40 + .../codegen/model/LeftRecursiveRuleFunction.java | 76 ++ tool/src/org/antlr/v4/codegen/model/Lexer.java | 58 + tool/src/org/antlr/v4/codegen/model/LexerFile.java | 55 + .../v4/codegen/model/ListenerDispatchMethod.java | 41 + .../org/antlr/v4/codegen/model/ListenerFile.java | 87 ++ tool/src/org/antlr/v4/codegen/model/Loop.java | 60 + .../org/antlr/v4/codegen/model/MatchNotSet.java | 41 + tool/src/org/antlr/v4/codegen/model/MatchSet.java | 52 + .../src/org/antlr/v4/codegen/model/MatchToken.java | 63 + .../org/antlr/v4/codegen/model/ModelElement.java | 41 + .../org/antlr/v4/codegen/model/OptionalBlock.java | 46 + .../src/org/antlr/v4/codegen/model/OutputFile.java | 53 + .../antlr/v4/codegen/model/OutputModelObject.java | 49 + tool/src/org/antlr/v4/codegen/model/Parser.java | 47 + .../src/org/antlr/v4/codegen/model/ParserFile.java | 63 + tool/src/org/antlr/v4/codegen/model/PlusBlock.java | 58 + .../src/org/antlr/v4/codegen/model/Recognizer.java | 135 ++ .../antlr/v4/codegen/model/RuleActionFunction.java | 53 + .../org/antlr/v4/codegen/model/RuleElement.java | 45 + .../org/antlr/v4/codegen/model/RuleFunction.java | 290 +++++ .../v4/codegen/model/RuleSempredFunction.java | 40 + tool/src/org/antlr/v4/codegen/model/SemPred.java | 97 ++ .../org/antlr/v4/codegen/model/SerializedATN.java | 65 + tool/src/org/antlr/v4/codegen/model/SrcOp.java | 82 ++ tool/src/org/antlr/v4/codegen/model/StarBlock.java | 52 + tool/src/org/antlr/v4/codegen/model/Sync.java | 52 + .../org/antlr/v4/codegen/model/TestSetInline.java | 84 ++ .../v4/codegen/model/ThrowEarlyExitException.java | 42 + .../antlr/v4/codegen/model/ThrowNoViableAlt.java | 44 + .../codegen/model/ThrowRecognitionException.java | 53 + .../v4/codegen/model/VisitorDispatchMethod.java | 38 + .../org/antlr/v4/codegen/model/VisitorFile.java | 84 ++ .../antlr/v4/codegen/model/chunk/ActionChunk.java | 44 + .../v4/codegen/model/chunk/ActionTemplate.java | 43 + .../antlr/v4/codegen/model/chunk/ActionText.java | 43 + .../org/antlr/v4/codegen/model/chunk/ArgRef.java | 40 + .../org/antlr/v4/codegen/model/chunk/LabelRef.java | 42 + .../antlr/v4/codegen/model/chunk/ListLabelRef.java | 37 + .../org/antlr/v4/codegen/model/chunk/LocalRef.java | 42 + .../v4/codegen/model/chunk/NonLocalAttrRef.java | 47 + .../antlr/v4/codegen/model/chunk/QRetValueRef.java | 42 + .../antlr/v4/codegen/model/chunk/RetValueRef.java | 44 + .../v4/codegen/model/chunk/RulePropertyRef.java | 43 + .../codegen/model/chunk/RulePropertyRef_ctx.java | 39 + .../model/chunk/RulePropertyRef_parser.java | 40 + .../codegen/model/chunk/RulePropertyRef_start.java | 40 + .../codegen/model/chunk/RulePropertyRef_stop.java | 40 + .../codegen/model/chunk/RulePropertyRef_text.java | 40 + .../org/antlr/v4/codegen/model/chunk/SetAttr.java | 48 + .../v4/codegen/model/chunk/SetNonLocalAttr.java | 49 + .../model/chunk/ThisRulePropertyRef_ctx.java | 39 + .../model/chunk/ThisRulePropertyRef_parser.java | 40 + .../model/chunk/ThisRulePropertyRef_start.java | 40 + .../model/chunk/ThisRulePropertyRef_stop.java | 40 + .../model/chunk/ThisRulePropertyRef_text.java | 40 + .../v4/codegen/model/chunk/TokenPropertyRef.java | 43 + .../model/chunk/TokenPropertyRef_channel.java | 40 + .../model/chunk/TokenPropertyRef_index.java | 40 + .../codegen/model/chunk/TokenPropertyRef_int.java | 40 + .../codegen/model/chunk/TokenPropertyRef_line.java | 40 + .../codegen/model/chunk/TokenPropertyRef_pos.java | 40 + .../codegen/model/chunk/TokenPropertyRef_text.java | 40 + .../codegen/model/chunk/TokenPropertyRef_type.java | 40 + .../org/antlr/v4/codegen/model/chunk/TokenRef.java | 43 + tool/src/org/antlr/v4/codegen/model/dbg.java | 35 + .../v4/codegen/model/decl/AltLabelStructDecl.java | 78 ++ .../antlr/v4/codegen/model/decl/AttributeDecl.java | 45 + .../org/antlr/v4/codegen/model/decl/CodeBlock.java | 85 ++ .../v4/codegen/model/decl/ContextGetterDecl.java | 68 + .../codegen/model/decl/ContextRuleGetterDecl.java | 42 + .../model/decl/ContextRuleListGetterDecl.java | 44 + .../decl/ContextRuleListIndexedGetterDecl.java | 44 + .../codegen/model/decl/ContextTokenGetterDecl.java | 40 + .../model/decl/ContextTokenListGetterDecl.java | 42 + .../decl/ContextTokenListIndexedGetterDecl.java | 44 + tool/src/org/antlr/v4/codegen/model/decl/Decl.java | 67 + .../v4/codegen/model/decl/ElementListDecl.java | 39 + .../v4/codegen/model/decl/RuleContextDecl.java | 44 + .../v4/codegen/model/decl/RuleContextListDecl.java | 40 + .../antlr/v4/codegen/model/decl/StructDecl.java | 112 ++ .../org/antlr/v4/codegen/model/decl/TokenDecl.java | 42 + .../antlr/v4/codegen/model/decl/TokenListDecl.java | 40 + .../antlr/v4/codegen/model/decl/TokenTypeDecl.java | 40 + .../org/antlr/v4/codegen/target/CSharpTarget.java | 177 +++ .../antlr/v4/codegen/target/JavaScriptTarget.java | 234 ++++ .../org/antlr/v4/codegen/target/JavaTarget.java | 126 ++ .../org/antlr/v4/codegen/target/Python2Target.java | 136 ++ .../org/antlr/v4/codegen/target/Python3Target.java | 143 +++ tool/src/org/antlr/v4/gui/BasicFontMetrics.java | 95 ++ tool/src/org/antlr/v4/gui/GraphicsSupport.java | 138 ++ .../antlr/v4/gui/JFileChooserConfirmOverwrite.java | 63 + tool/src/org/antlr/v4/gui/PostScriptDocument.java | 212 +++ tool/src/org/antlr/v4/gui/SystemFontMetrics.java | 63 + tool/src/org/antlr/v4/gui/TestRig.java | 270 ++++ tool/src/org/antlr/v4/gui/TreeLayoutAdaptor.java | 149 +++ .../org/antlr/v4/gui/TreePostScriptGenerator.java | 176 +++ tool/src/org/antlr/v4/gui/TreeTextProvider.java | 37 + tool/src/org/antlr/v4/gui/TreeViewer.java | 764 +++++++++++ tool/src/org/antlr/v4/gui/Trees.java | 120 ++ tool/src/org/antlr/v4/misc/CharSupport.java | 153 +++ tool/src/org/antlr/v4/misc/FrequencySet.java | 52 + tool/src/org/antlr/v4/misc/Graph.java | 117 ++ tool/src/org/antlr/v4/misc/MutableInt.java | 56 + tool/src/org/antlr/v4/misc/OrderedHashMap.java | 73 ++ tool/src/org/antlr/v4/misc/Utils.java | 171 +++ tool/src/org/antlr/v4/parse/ANTLRLexer.g | 798 ++++++++++++ tool/src/org/antlr/v4/parse/ANTLRParser.g | 922 ++++++++++++++ tool/src/org/antlr/v4/parse/ATNBuilder.g | 214 ++++ tool/src/org/antlr/v4/parse/ActionSplitter.g | 125 ++ .../org/antlr/v4/parse/ActionSplitterListener.java | 45 + tool/src/org/antlr/v4/parse/BlockSetTransformer.g | 129 ++ tool/src/org/antlr/v4/parse/GrammarASTAdaptor.java | 83 ++ tool/src/org/antlr/v4/parse/GrammarToken.java | 98 ++ tool/src/org/antlr/v4/parse/GrammarTreeVisitor.g | 1033 +++++++++++++++ .../org/antlr/v4/parse/LeftRecursiveRuleWalker.g | 224 ++++ .../org/antlr/v4/parse/ResyncToEndOfRuleBlock.java | 37 + tool/src/org/antlr/v4/parse/ScopeParser.java | 297 +++++ tool/src/org/antlr/v4/parse/TokenVocabParser.java | 175 +++ tool/src/org/antlr/v4/parse/ToolANTLRLexer.java | 57 + tool/src/org/antlr/v4/parse/ToolANTLRParser.java | 84 ++ .../org/antlr/v4/parse/v3TreeGrammarException.java | 42 + tool/src/org/antlr/v4/parse/v4ParserException.java | 47 + tool/src/org/antlr/v4/semantics/ActionSniffer.java | 113 ++ .../org/antlr/v4/semantics/AttributeChecks.java | 259 ++++ .../antlr/v4/semantics/BasicSemanticChecks.java | 637 ++++++++++ .../v4/semantics/BlankActionSplitterListener.java | 75 ++ tool/src/org/antlr/v4/semantics/RuleCollector.java | 138 ++ .../org/antlr/v4/semantics/SemanticPipeline.java | 300 +++++ tool/src/org/antlr/v4/semantics/SymbolChecks.java | 312 +++++ .../org/antlr/v4/semantics/SymbolCollector.java | 213 ++++ .../src/org/antlr/v4/semantics/UseDefAnalyzer.java | 119 ++ tool/src/org/antlr/v4/tool/ANTLRMessage.java | 130 ++ tool/src/org/antlr/v4/tool/ANTLRToolListener.java | 44 + tool/src/org/antlr/v4/tool/Alternative.java | 163 +++ tool/src/org/antlr/v4/tool/Attribute.java | 73 ++ tool/src/org/antlr/v4/tool/AttributeDict.java | 108 ++ tool/src/org/antlr/v4/tool/AttributeResolver.java | 71 ++ .../antlr/v4/tool/BuildDependencyGenerator.java | 273 ++++ tool/src/org/antlr/v4/tool/DOTGenerator.java | 486 +++++++ .../src/org/antlr/v4/tool/DefaultToolListener.java | 69 + tool/src/org/antlr/v4/tool/ErrorManager.java | 322 +++++ tool/src/org/antlr/v4/tool/ErrorSeverity.java | 68 + tool/src/org/antlr/v4/tool/ErrorType.java | 1100 ++++++++++++++++ tool/src/org/antlr/v4/tool/Grammar.java | 1343 ++++++++++++++++++++ .../v4/tool/GrammarInterpreterRuleContext.java | 57 + .../antlr/v4/tool/GrammarParserInterpreter.java | 474 +++++++ .../org/antlr/v4/tool/GrammarSemanticsMessage.java | 52 + .../org/antlr/v4/tool/GrammarSyntaxMessage.java | 60 + .../antlr/v4/tool/GrammarTransformPipeline.java | 456 +++++++ tool/src/org/antlr/v4/tool/LabelElementPair.java | 74 ++ tool/src/org/antlr/v4/tool/LabelType.java | 45 + .../antlr/v4/tool/LeftRecursionCyclesMessage.java | 61 + tool/src/org/antlr/v4/tool/LeftRecursiveRule.java | 175 +++ tool/src/org/antlr/v4/tool/LexerGrammar.java | 85 ++ tool/src/org/antlr/v4/tool/Rule.java | 364 ++++++ tool/src/org/antlr/v4/tool/ToolMessage.java | 53 + tool/src/org/antlr/v4/tool/ast/ActionAST.java | 58 + tool/src/org/antlr/v4/tool/ast/AltAST.java | 66 + tool/src/org/antlr/v4/tool/ast/BlockAST.java | 61 + tool/src/org/antlr/v4/tool/ast/GrammarAST.java | 264 ++++ .../org/antlr/v4/tool/ast/GrammarASTErrorNode.java | 56 + .../org/antlr/v4/tool/ast/GrammarASTVisitor.java | 68 + .../antlr/v4/tool/ast/GrammarASTWithOptions.java | 96 ++ tool/src/org/antlr/v4/tool/ast/GrammarRootAST.java | 111 ++ tool/src/org/antlr/v4/tool/ast/NotAST.java | 50 + .../org/antlr/v4/tool/ast/OptionalBlockAST.java | 59 + tool/src/org/antlr/v4/tool/ast/PlusBlockAST.java | 58 + tool/src/org/antlr/v4/tool/ast/PredAST.java | 49 + tool/src/org/antlr/v4/tool/ast/QuantifierAST.java | 41 + tool/src/org/antlr/v4/tool/ast/RangeAST.java | 50 + tool/src/org/antlr/v4/tool/ast/RuleAST.java | 74 ++ tool/src/org/antlr/v4/tool/ast/RuleElementAST.java | 35 + tool/src/org/antlr/v4/tool/ast/RuleRefAST.java | 60 + tool/src/org/antlr/v4/tool/ast/SetAST.java | 50 + tool/src/org/antlr/v4/tool/ast/StarBlockAST.java | 58 + tool/src/org/antlr/v4/tool/ast/TerminalAST.java | 50 + 226 files changed, 30544 insertions(+) create mode 100644 tool/src/org/antlr/v4/Tool.java create mode 100644 tool/src/org/antlr/v4/analysis/AnalysisPipeline.java create mode 100644 tool/src/org/antlr/v4/analysis/LeftRecursionDetector.java create mode 100644 tool/src/org/antlr/v4/analysis/LeftRecursiveRuleAltInfo.java create mode 100644 tool/src/org/antlr/v4/analysis/LeftRecursiveRuleAnalyzer.java create mode 100644 tool/src/org/antlr/v4/analysis/LeftRecursiveRuleTransformer.java create mode 100644 tool/src/org/antlr/v4/automata/ATNFactory.java create mode 100644 tool/src/org/antlr/v4/automata/ATNOptimizer.java create mode 100644 tool/src/org/antlr/v4/automata/ATNPrinter.java create mode 100644 tool/src/org/antlr/v4/automata/ATNVisitor.java create mode 100644 tool/src/org/antlr/v4/automata/LexerATNFactory.java create mode 100644 tool/src/org/antlr/v4/automata/ParserATNFactory.java create mode 100644 tool/src/org/antlr/v4/automata/TailEpsilonRemover.java create mode 100644 tool/src/org/antlr/v4/codegen/ActionTranslator.java create mode 100644 tool/src/org/antlr/v4/codegen/BlankOutputModelFactory.java create mode 100644 tool/src/org/antlr/v4/codegen/CodeGenPipeline.java create mode 100644 tool/src/org/antlr/v4/codegen/CodeGenerator.java create mode 100644 tool/src/org/antlr/v4/codegen/CodeGeneratorExtension.java create mode 100644 tool/src/org/antlr/v4/codegen/DefaultOutputModelFactory.java create mode 100644 tool/src/org/antlr/v4/codegen/LexerFactory.java create mode 100644 tool/src/org/antlr/v4/codegen/OutputModelController.java create mode 100644 tool/src/org/antlr/v4/codegen/OutputModelFactory.java create mode 100644 tool/src/org/antlr/v4/codegen/OutputModelWalker.java create mode 100644 tool/src/org/antlr/v4/codegen/ParserFactory.java create mode 100644 tool/src/org/antlr/v4/codegen/SourceGenTriggers.g create mode 100644 tool/src/org/antlr/v4/codegen/Target.java create mode 100644 tool/src/org/antlr/v4/codegen/Wildcard.java create mode 100644 tool/src/org/antlr/v4/codegen/model/Action.java create mode 100644 tool/src/org/antlr/v4/codegen/model/AddToLabelList.java create mode 100644 tool/src/org/antlr/v4/codegen/model/AltBlock.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ArgAction.java create mode 100644 tool/src/org/antlr/v4/codegen/model/BaseListenerFile.java create mode 100644 tool/src/org/antlr/v4/codegen/model/BaseVisitorFile.java create mode 100644 tool/src/org/antlr/v4/codegen/model/CaptureNextToken.java create mode 100644 tool/src/org/antlr/v4/codegen/model/CaptureNextTokenType.java create mode 100644 tool/src/org/antlr/v4/codegen/model/Choice.java create mode 100644 tool/src/org/antlr/v4/codegen/model/CodeBlockForAlt.java create mode 100644 tool/src/org/antlr/v4/codegen/model/CodeBlockForOuterMostAlt.java create mode 100644 tool/src/org/antlr/v4/codegen/model/DispatchMethod.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ElementFrequenciesVisitor.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ExceptionClause.java create mode 100644 tool/src/org/antlr/v4/codegen/model/InvokeRule.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LL1AltBlock.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LL1Choice.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LL1Loop.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LL1OptionalBlock.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LL1OptionalBlockSingleAlt.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LL1PlusBlockSingleAlt.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LL1StarBlockSingleAlt.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LabeledOp.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LeftRecursiveRuleFunction.java create mode 100644 tool/src/org/antlr/v4/codegen/model/Lexer.java create mode 100644 tool/src/org/antlr/v4/codegen/model/LexerFile.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ListenerDispatchMethod.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ListenerFile.java create mode 100644 tool/src/org/antlr/v4/codegen/model/Loop.java create mode 100644 tool/src/org/antlr/v4/codegen/model/MatchNotSet.java create mode 100644 tool/src/org/antlr/v4/codegen/model/MatchSet.java create mode 100644 tool/src/org/antlr/v4/codegen/model/MatchToken.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ModelElement.java create mode 100644 tool/src/org/antlr/v4/codegen/model/OptionalBlock.java create mode 100644 tool/src/org/antlr/v4/codegen/model/OutputFile.java create mode 100644 tool/src/org/antlr/v4/codegen/model/OutputModelObject.java create mode 100644 tool/src/org/antlr/v4/codegen/model/Parser.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ParserFile.java create mode 100644 tool/src/org/antlr/v4/codegen/model/PlusBlock.java create mode 100644 tool/src/org/antlr/v4/codegen/model/Recognizer.java create mode 100644 tool/src/org/antlr/v4/codegen/model/RuleActionFunction.java create mode 100644 tool/src/org/antlr/v4/codegen/model/RuleElement.java create mode 100644 tool/src/org/antlr/v4/codegen/model/RuleFunction.java create mode 100644 tool/src/org/antlr/v4/codegen/model/RuleSempredFunction.java create mode 100644 tool/src/org/antlr/v4/codegen/model/SemPred.java create mode 100644 tool/src/org/antlr/v4/codegen/model/SerializedATN.java create mode 100644 tool/src/org/antlr/v4/codegen/model/SrcOp.java create mode 100644 tool/src/org/antlr/v4/codegen/model/StarBlock.java create mode 100644 tool/src/org/antlr/v4/codegen/model/Sync.java create mode 100644 tool/src/org/antlr/v4/codegen/model/TestSetInline.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ThrowEarlyExitException.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ThrowNoViableAlt.java create mode 100644 tool/src/org/antlr/v4/codegen/model/ThrowRecognitionException.java create mode 100644 tool/src/org/antlr/v4/codegen/model/VisitorDispatchMethod.java create mode 100644 tool/src/org/antlr/v4/codegen/model/VisitorFile.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ActionChunk.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ActionTemplate.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ActionText.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ArgRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/LabelRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ListLabelRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/LocalRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/NonLocalAttrRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/QRetValueRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/RetValueRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/RulePropertyRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/RulePropertyRef_ctx.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/RulePropertyRef_parser.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/RulePropertyRef_start.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/RulePropertyRef_stop.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/RulePropertyRef_text.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/SetAttr.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/SetNonLocalAttr.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ThisRulePropertyRef_ctx.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ThisRulePropertyRef_parser.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ThisRulePropertyRef_start.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ThisRulePropertyRef_stop.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/ThisRulePropertyRef_text.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/TokenPropertyRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/TokenPropertyRef_channel.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/TokenPropertyRef_index.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/TokenPropertyRef_int.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/TokenPropertyRef_line.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/TokenPropertyRef_pos.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/TokenPropertyRef_text.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/TokenPropertyRef_type.java create mode 100644 tool/src/org/antlr/v4/codegen/model/chunk/TokenRef.java create mode 100644 tool/src/org/antlr/v4/codegen/model/dbg.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/AltLabelStructDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/AttributeDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/CodeBlock.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/ContextGetterDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/ContextRuleGetterDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/ContextRuleListGetterDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/ContextRuleListIndexedGetterDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/ContextTokenGetterDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/ContextTokenListGetterDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/ContextTokenListIndexedGetterDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/Decl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/ElementListDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/RuleContextDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/RuleContextListDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/StructDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/TokenDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/TokenListDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/model/decl/TokenTypeDecl.java create mode 100644 tool/src/org/antlr/v4/codegen/target/CSharpTarget.java create mode 100644 tool/src/org/antlr/v4/codegen/target/JavaScriptTarget.java create mode 100644 tool/src/org/antlr/v4/codegen/target/JavaTarget.java create mode 100644 tool/src/org/antlr/v4/codegen/target/Python2Target.java create mode 100644 tool/src/org/antlr/v4/codegen/target/Python3Target.java create mode 100644 tool/src/org/antlr/v4/gui/BasicFontMetrics.java create mode 100644 tool/src/org/antlr/v4/gui/GraphicsSupport.java create mode 100644 tool/src/org/antlr/v4/gui/JFileChooserConfirmOverwrite.java create mode 100644 tool/src/org/antlr/v4/gui/PostScriptDocument.java create mode 100644 tool/src/org/antlr/v4/gui/SystemFontMetrics.java create mode 100644 tool/src/org/antlr/v4/gui/TestRig.java create mode 100644 tool/src/org/antlr/v4/gui/TreeLayoutAdaptor.java create mode 100644 tool/src/org/antlr/v4/gui/TreePostScriptGenerator.java create mode 100644 tool/src/org/antlr/v4/gui/TreeTextProvider.java create mode 100644 tool/src/org/antlr/v4/gui/TreeViewer.java create mode 100644 tool/src/org/antlr/v4/gui/Trees.java create mode 100644 tool/src/org/antlr/v4/misc/CharSupport.java create mode 100644 tool/src/org/antlr/v4/misc/FrequencySet.java create mode 100644 tool/src/org/antlr/v4/misc/Graph.java create mode 100644 tool/src/org/antlr/v4/misc/MutableInt.java create mode 100644 tool/src/org/antlr/v4/misc/OrderedHashMap.java create mode 100644 tool/src/org/antlr/v4/misc/Utils.java create mode 100644 tool/src/org/antlr/v4/parse/ANTLRLexer.g create mode 100644 tool/src/org/antlr/v4/parse/ANTLRParser.g create mode 100644 tool/src/org/antlr/v4/parse/ATNBuilder.g create mode 100644 tool/src/org/antlr/v4/parse/ActionSplitter.g create mode 100644 tool/src/org/antlr/v4/parse/ActionSplitterListener.java create mode 100644 tool/src/org/antlr/v4/parse/BlockSetTransformer.g create mode 100644 tool/src/org/antlr/v4/parse/GrammarASTAdaptor.java create mode 100644 tool/src/org/antlr/v4/parse/GrammarToken.java create mode 100644 tool/src/org/antlr/v4/parse/GrammarTreeVisitor.g create mode 100644 tool/src/org/antlr/v4/parse/LeftRecursiveRuleWalker.g create mode 100644 tool/src/org/antlr/v4/parse/ResyncToEndOfRuleBlock.java create mode 100644 tool/src/org/antlr/v4/parse/ScopeParser.java create mode 100644 tool/src/org/antlr/v4/parse/TokenVocabParser.java create mode 100644 tool/src/org/antlr/v4/parse/ToolANTLRLexer.java create mode 100644 tool/src/org/antlr/v4/parse/ToolANTLRParser.java create mode 100644 tool/src/org/antlr/v4/parse/v3TreeGrammarException.java create mode 100644 tool/src/org/antlr/v4/parse/v4ParserException.java create mode 100644 tool/src/org/antlr/v4/semantics/ActionSniffer.java create mode 100644 tool/src/org/antlr/v4/semantics/AttributeChecks.java create mode 100644 tool/src/org/antlr/v4/semantics/BasicSemanticChecks.java create mode 100644 tool/src/org/antlr/v4/semantics/BlankActionSplitterListener.java create mode 100644 tool/src/org/antlr/v4/semantics/RuleCollector.java create mode 100644 tool/src/org/antlr/v4/semantics/SemanticPipeline.java create mode 100644 tool/src/org/antlr/v4/semantics/SymbolChecks.java create mode 100644 tool/src/org/antlr/v4/semantics/SymbolCollector.java create mode 100644 tool/src/org/antlr/v4/semantics/UseDefAnalyzer.java create mode 100644 tool/src/org/antlr/v4/tool/ANTLRMessage.java create mode 100644 tool/src/org/antlr/v4/tool/ANTLRToolListener.java create mode 100644 tool/src/org/antlr/v4/tool/Alternative.java create mode 100644 tool/src/org/antlr/v4/tool/Attribute.java create mode 100644 tool/src/org/antlr/v4/tool/AttributeDict.java create mode 100644 tool/src/org/antlr/v4/tool/AttributeResolver.java create mode 100644 tool/src/org/antlr/v4/tool/BuildDependencyGenerator.java create mode 100644 tool/src/org/antlr/v4/tool/DOTGenerator.java create mode 100644 tool/src/org/antlr/v4/tool/DefaultToolListener.java create mode 100644 tool/src/org/antlr/v4/tool/ErrorManager.java create mode 100644 tool/src/org/antlr/v4/tool/ErrorSeverity.java create mode 100644 tool/src/org/antlr/v4/tool/ErrorType.java create mode 100644 tool/src/org/antlr/v4/tool/Grammar.java create mode 100644 tool/src/org/antlr/v4/tool/GrammarInterpreterRuleContext.java create mode 100644 tool/src/org/antlr/v4/tool/GrammarParserInterpreter.java create mode 100644 tool/src/org/antlr/v4/tool/GrammarSemanticsMessage.java create mode 100644 tool/src/org/antlr/v4/tool/GrammarSyntaxMessage.java create mode 100644 tool/src/org/antlr/v4/tool/GrammarTransformPipeline.java create mode 100644 tool/src/org/antlr/v4/tool/LabelElementPair.java create mode 100644 tool/src/org/antlr/v4/tool/LabelType.java create mode 100644 tool/src/org/antlr/v4/tool/LeftRecursionCyclesMessage.java create mode 100644 tool/src/org/antlr/v4/tool/LeftRecursiveRule.java create mode 100644 tool/src/org/antlr/v4/tool/LexerGrammar.java create mode 100644 tool/src/org/antlr/v4/tool/Rule.java create mode 100644 tool/src/org/antlr/v4/tool/ToolMessage.java create mode 100644 tool/src/org/antlr/v4/tool/ast/ActionAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/AltAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/BlockAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/GrammarAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/GrammarASTErrorNode.java create mode 100644 tool/src/org/antlr/v4/tool/ast/GrammarASTVisitor.java create mode 100644 tool/src/org/antlr/v4/tool/ast/GrammarASTWithOptions.java create mode 100644 tool/src/org/antlr/v4/tool/ast/GrammarRootAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/NotAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/OptionalBlockAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/PlusBlockAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/PredAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/QuantifierAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/RangeAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/RuleAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/RuleElementAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/RuleRefAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/SetAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/StarBlockAST.java create mode 100644 tool/src/org/antlr/v4/tool/ast/TerminalAST.java (limited to 'tool/src/org/antlr') diff --git a/tool/src/org/antlr/v4/Tool.java b/tool/src/org/antlr/v4/Tool.java new file mode 100644 index 0000000..2441268 --- /dev/null +++ b/tool/src/org/antlr/v4/Tool.java @@ -0,0 +1,891 @@ +/* + * [The "BSD license"] + * Copyright (c) 2012 Terence Parr + * Copyright (c) 2012 Sam Harwell + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.antlr.v4; + +import org.antlr.runtime.ANTLRFileStream; +import org.antlr.runtime.ANTLRStringStream; +import org.antlr.runtime.CharStream; +import org.antlr.runtime.CommonTokenStream; +import org.antlr.runtime.ParserRuleReturnScope; +import org.antlr.runtime.RecognitionException; +import org.antlr.v4.analysis.AnalysisPipeline; +import org.antlr.v4.automata.ATNFactory; +import org.antlr.v4.automata.LexerATNFactory; +import org.antlr.v4.automata.ParserATNFactory; +import org.antlr.v4.codegen.CodeGenPipeline; +import org.antlr.v4.codegen.CodeGenerator; +import org.antlr.v4.misc.Graph; +import org.antlr.v4.parse.ANTLRParser; +import org.antlr.v4.parse.GrammarASTAdaptor; +import org.antlr.v4.parse.GrammarTreeVisitor; +import org.antlr.v4.parse.ToolANTLRLexer; +import org.antlr.v4.parse.ToolANTLRParser; +import org.antlr.v4.parse.v3TreeGrammarException; +import org.antlr.v4.runtime.RuntimeMetaData; +import org.antlr.v4.runtime.misc.LogManager; +import org.antlr.v4.semantics.SemanticPipeline; +import org.antlr.v4.tool.ANTLRMessage; +import org.antlr.v4.tool.ANTLRToolListener; +import org.antlr.v4.tool.BuildDependencyGenerator; +import org.antlr.v4.tool.DOTGenerator; +import org.antlr.v4.tool.DefaultToolListener; +import org.antlr.v4.tool.ErrorManager; +import org.antlr.v4.tool.ErrorType; +import org.antlr.v4.tool.Grammar; +import org.antlr.v4.tool.GrammarTransformPipeline; +import org.antlr.v4.tool.LexerGrammar; +import org.antlr.v4.tool.Rule; +import org.antlr.v4.tool.ast.ActionAST; +import org.antlr.v4.tool.ast.GrammarAST; +import org.antlr.v4.tool.ast.GrammarASTErrorNode; +import org.antlr.v4.tool.ast.GrammarRootAST; +import org.antlr.v4.tool.ast.RuleAST; +import org.antlr.v4.tool.ast.TerminalAST; +import org.stringtemplate.v4.STGroup; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.StringWriter; +import java.io.Writer; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; + +public class Tool { + public static final String VERSION; + static { + // Assigned in a static{} block to prevent the field from becoming a + // compile-time constant + VERSION = RuntimeMetaData.VERSION; + } + + public static final String GRAMMAR_EXTENSION = ".g4"; + public static final String LEGACY_GRAMMAR_EXTENSION = ".g"; + + public static final List ALL_GRAMMAR_EXTENSIONS = + Collections.unmodifiableList(Arrays.asList(GRAMMAR_EXTENSION, LEGACY_GRAMMAR_EXTENSION)); + + public static enum OptionArgType { NONE, STRING } // NONE implies boolean + public static class Option { + String fieldName; + String name; + OptionArgType argType; + String description; + + public Option(String fieldName, String name, String description) { + this(fieldName, name, OptionArgType.NONE, description); + } + + public Option(String fieldName, String name, OptionArgType argType, String description) { + this.fieldName = fieldName; + this.name = name; + this.argType = argType; + this.description = description; + } + } + + // fields set by option manager + + public File inputDirectory; // used by mvn plugin but not set by tool itself. + public String outputDirectory; + public String libDirectory; + public boolean generate_ATN_dot = false; + public String grammarEncoding = null; // use default locale's encoding + public String msgFormat = "antlr"; + public boolean launch_ST_inspector = false; + public boolean ST_inspector_wait_for_close = false; + public boolean force_atn = false; + public boolean log = false; + public boolean gen_listener = true; + public boolean gen_visitor = false; + public boolean gen_dependencies = false; + public String genPackage = null; + public Map grammarOptions = null; + public boolean warnings_are_errors = false; + public boolean longMessages = false; + + public static Option[] optionDefs = { + new Option("outputDirectory", "-o", OptionArgType.STRING, "specify output directory where all output is generated"), + new Option("libDirectory", "-lib", OptionArgType.STRING, "specify location of grammars, tokens files"), + new Option("generate_ATN_dot", "-atn", "generate rule augmented transition network diagrams"), + new Option("grammarEncoding", "-encoding", OptionArgType.STRING, "specify grammar file encoding; e.g., euc-jp"), + new Option("msgFormat", "-message-format", OptionArgType.STRING, "specify output style for messages in antlr, gnu, vs2005"), + new Option("longMessages", "-long-messages", "show exception details when available for errors and warnings"), + new Option("gen_listener", "-listener", "generate parse tree listener (default)"), + new Option("gen_listener", "-no-listener", "don't generate parse tree listener"), + new Option("gen_visitor", "-visitor", "generate parse tree visitor"), + new Option("gen_visitor", "-no-visitor", "don't generate parse tree visitor (default)"), + new Option("genPackage", "-package", OptionArgType.STRING, "specify a package/namespace for the generated code"), + new Option("gen_dependencies", "-depend", "generate file dependencies"), + new Option("", "-D