expressir 0.2.4-x64-mingw32
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.
- checksums.yaml +7 -0
- data/.github/workflows/rake.yml +46 -0
- data/.github/workflows/release.yml +75 -0
- data/.gitignore +15 -0
- data/.gitmodules +3 -0
- data/.rspec +2 -0
- data/.rubocop.yml +508 -0
- data/Gemfile +6 -0
- data/README.adoc +147 -0
- data/Rakefile +17 -0
- data/bin/console +12 -0
- data/bin/rspec +29 -0
- data/bin/setup +8 -0
- data/demo.rb +18 -0
- data/docs/development.md +90 -0
- data/exe/expressir +20 -0
- data/exe/generate-parser +48 -0
- data/expressir.gemspec +40 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +118 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj +637 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj.filters +984 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj +652 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj.filters +990 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj +652 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj.filters +990 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +652 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +990 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +26 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +17 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +3024 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +76 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +80 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +80 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +10 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +167 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +10 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +121 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +34 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +27 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +155 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +69 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +61 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +59 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +25 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +36 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +414 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +200 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +11 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +37 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +195 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +158 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +39 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +74 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +78 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +79 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +15 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +35 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +333 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +466 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +84 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +80 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +64 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +99 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +51 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +32 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +18 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +24 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +218 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +19 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +45 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +295 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +196 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +75 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +52 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +36 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +31 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +92 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +88 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +46 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +42 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +648 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +467 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +306 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +179 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +141 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +147 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +53 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +38 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +66 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +98 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +167 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +164 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +143 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +137 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +27 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +32 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +53 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +155 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +92 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +30 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +85 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +11 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +137 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +425 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +293 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +211 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +123 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +270 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +115 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +104 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +193 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +23 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +137 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +167 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +209 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +112 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +113 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +148 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +228 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +110 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +64 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +50 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +758 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +85 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp +621 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.h +61 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +63 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +87 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +72 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +133 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +20 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp +14 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h +24 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +33 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +33 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +16 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +68 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +82 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +43 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +31 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +30 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +22 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +21 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.cpp +15 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +24 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +21 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +47 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +14 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +70 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +25 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +227 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +17 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +30 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp +35 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h +27 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +35 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +39 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +15 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +43 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +158 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +109 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +84 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +44 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +628 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +210 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +66 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +107 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +115 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +55 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +55 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +63 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +62 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +87 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +63 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +82 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +56 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +61 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +47 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +57 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +47 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +57 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +56 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +61 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +47 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +55 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +56 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +55 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +42 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +22 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Makefile +67 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +27 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +25 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +20 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +102 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +102 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +1366 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +904 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +25 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +22 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +32 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +29 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +62 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +34 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +39 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +662 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +254 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +201 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +436 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +60 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +30 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +29 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.cpp +16 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +25 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +25 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +37 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +40 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +377 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +222 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +32 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +30 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +81 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +36 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +21 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp +15 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +35 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +19 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +21 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.cpp +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +21 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +44 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +76 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +25 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +25 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +127 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +91 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +67 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +32 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +100 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +144 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +20 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +23 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +124 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +31 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +89 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +84 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +521 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +198 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +134 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +76 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +4 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +21 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +13 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +170 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +43 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +110 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +76 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +248 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +78 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +163 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +36 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +54 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.cpp +303 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.h +112 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +128 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +19 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +23 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +33 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +71 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +15 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +102 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +39 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +50 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +57 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +49 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +31 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +32 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +57 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +33 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +241 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +78 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +9 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +44 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +371 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +117 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +39 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +86 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +28 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +51 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +80 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +154 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +86 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +31 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +40 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +173 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +64 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +56 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +12 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
- data/ext/express-parser/antlrgen/Express.interp +532 -0
- data/ext/express-parser/antlrgen/Express.tokens +190 -0
- data/ext/express-parser/antlrgen/ExpressBaseListener.cpp +7 -0
- data/ext/express-parser/antlrgen/ExpressBaseListener.h +623 -0
- data/ext/express-parser/antlrgen/ExpressBaseVisitor.cpp +7 -0
- data/ext/express-parser/antlrgen/ExpressBaseVisitor.h +816 -0
- data/ext/express-parser/antlrgen/ExpressLexer.cpp +1169 -0
- data/ext/express-parser/antlrgen/ExpressLexer.h +85 -0
- data/ext/express-parser/antlrgen/ExpressLexer.interp +534 -0
- data/ext/express-parser/antlrgen/ExpressLexer.tokens +190 -0
- data/ext/express-parser/antlrgen/ExpressListener.cpp +7 -0
- data/ext/express-parser/antlrgen/ExpressListener.h +616 -0
- data/ext/express-parser/antlrgen/ExpressParser.cpp +17284 -0
- data/ext/express-parser/antlrgen/ExpressParser.h +3696 -0
- data/ext/express-parser/antlrgen/ExpressVisitor.cpp +7 -0
- data/ext/express-parser/antlrgen/ExpressVisitor.h +422 -0
- data/ext/express-parser/express_parser.cpp +17931 -0
- data/ext/express-parser/extconf.rb +34 -0
- data/lib/express_parser.so +0 -0
- data/lib/expressir.rb +21 -0
- data/lib/expressir/cli.rb +27 -0
- data/lib/expressir/cli/ui.rb +36 -0
- data/lib/expressir/config.rb +23 -0
- data/lib/expressir/express.rb +11 -0
- data/lib/expressir/express/aggregate_dimension.rb +38 -0
- data/lib/expressir/express/attribute.rb +15 -0
- data/lib/expressir/express/comment.rb +7 -0
- data/lib/expressir/express/defined_type.rb +36 -0
- data/lib/expressir/express/derived.rb +65 -0
- data/lib/expressir/express/derived_aggregate.rb +43 -0
- data/lib/expressir/express/entity.rb +137 -0
- data/lib/expressir/express/explicit.rb +70 -0
- data/lib/expressir/express/explicit_aggregate.rb +46 -0
- data/lib/expressir/express/explicit_or_derived.rb +16 -0
- data/lib/expressir/express/global_rule.rb +44 -0
- data/lib/expressir/express/interface_specification.rb +51 -0
- data/lib/expressir/express/interfaced_item.rb +38 -0
- data/lib/expressir/express/inverse.rb +46 -0
- data/lib/expressir/express/inverse_aggregate.rb +37 -0
- data/lib/expressir/express/model_element.rb +7 -0
- data/lib/expressir/express/named_type.rb +19 -0
- data/lib/expressir/express/remark.rb +8 -0
- data/lib/expressir/express/repository.rb +306 -0
- data/lib/expressir/express/schema_definition.rb +96 -0
- data/lib/expressir/express/subtype_constraint.rb +14 -0
- data/lib/expressir/express/type.rb +26 -0
- data/lib/expressir/express/type_aggregate.rb +42 -0
- data/lib/expressir/express/type_enum.rb +29 -0
- data/lib/expressir/express/type_parser.rb +45 -0
- data/lib/expressir/express/type_select.rb +82 -0
- data/lib/expressir/express/unique_rule.rb +35 -0
- data/lib/expressir/express/where_rule.rb +32 -0
- data/lib/expressir/express_exp/formatter.rb +1450 -0
- data/lib/expressir/express_exp/parser.rb +36 -0
- data/lib/expressir/express_exp/visitor.rb +2451 -0
- data/lib/expressir/express_parser.rb +30 -0
- data/lib/expressir/model.rb +65 -0
- data/lib/expressir/model/attribute.rb +27 -0
- data/lib/expressir/model/constant.rb +17 -0
- data/lib/expressir/model/entity.rb +46 -0
- data/lib/expressir/model/enumeration_item.rb +11 -0
- data/lib/expressir/model/expressions/aggregate_initializer.rb +13 -0
- data/lib/expressir/model/expressions/aggregate_item.rb +15 -0
- data/lib/expressir/model/expressions/attribute_reference.rb +15 -0
- data/lib/expressir/model/expressions/binary_expression.rb +40 -0
- data/lib/expressir/model/expressions/call.rb +15 -0
- data/lib/expressir/model/expressions/entity_constructor.rb +15 -0
- data/lib/expressir/model/expressions/group_reference.rb +15 -0
- data/lib/expressir/model/expressions/index_reference.rb +17 -0
- data/lib/expressir/model/expressions/interval.rb +21 -0
- data/lib/expressir/model/expressions/query_expression.rb +26 -0
- data/lib/expressir/model/expressions/simple_reference.rb +13 -0
- data/lib/expressir/model/expressions/unary_expression.rb +19 -0
- data/lib/expressir/model/function.rb +62 -0
- data/lib/expressir/model/identifier.rb +9 -0
- data/lib/expressir/model/interface.rb +18 -0
- data/lib/expressir/model/literals/binary.rb +13 -0
- data/lib/expressir/model/literals/integer.rb +13 -0
- data/lib/expressir/model/literals/logical.rb +17 -0
- data/lib/expressir/model/literals/real.rb +13 -0
- data/lib/expressir/model/literals/string.rb +15 -0
- data/lib/expressir/model/parameter.rb +17 -0
- data/lib/expressir/model/procedure.rb +60 -0
- data/lib/expressir/model/renamed_ref.rb +13 -0
- data/lib/expressir/model/repository.rb +19 -0
- data/lib/expressir/model/rule.rb +62 -0
- data/lib/expressir/model/schema.rb +67 -0
- data/lib/expressir/model/scope.rb +17 -0
- data/lib/expressir/model/statements/alias.rb +26 -0
- data/lib/expressir/model/statements/assignment.rb +15 -0
- data/lib/expressir/model/statements/call.rb +15 -0
- data/lib/expressir/model/statements/case.rb +17 -0
- data/lib/expressir/model/statements/case_action.rb +15 -0
- data/lib/expressir/model/statements/compound.rb +13 -0
- data/lib/expressir/model/statements/escape.rb +8 -0
- data/lib/expressir/model/statements/if.rb +17 -0
- data/lib/expressir/model/statements/null.rb +8 -0
- data/lib/expressir/model/statements/repeat.rb +34 -0
- data/lib/expressir/model/statements/return.rb +13 -0
- data/lib/expressir/model/statements/skip.rb +8 -0
- data/lib/expressir/model/subtype_constraint.rb +27 -0
- data/lib/expressir/model/type.rb +24 -0
- data/lib/expressir/model/types/aggregate.rb +17 -0
- data/lib/expressir/model/types/array.rb +21 -0
- data/lib/expressir/model/types/bag.rb +17 -0
- data/lib/expressir/model/types/binary.rb +15 -0
- data/lib/expressir/model/types/boolean.rb +8 -0
- data/lib/expressir/model/types/enumeration.rb +19 -0
- data/lib/expressir/model/types/generic.rb +13 -0
- data/lib/expressir/model/types/generic_entity.rb +13 -0
- data/lib/expressir/model/types/integer.rb +8 -0
- data/lib/expressir/model/types/list.rb +19 -0
- data/lib/expressir/model/types/logical.rb +8 -0
- data/lib/expressir/model/types/number.rb +8 -0
- data/lib/expressir/model/types/real.rb +13 -0
- data/lib/expressir/model/types/select.rb +21 -0
- data/lib/expressir/model/types/set.rb +17 -0
- data/lib/expressir/model/types/string.rb +15 -0
- data/lib/expressir/model/unique.rb +15 -0
- data/lib/expressir/model/variable.rb +17 -0
- data/lib/expressir/model/where.rb +15 -0
- data/lib/expressir/parser.rb +6 -0
- data/lib/expressir/parser/owl_parser.rb +8 -0
- data/lib/expressir/version.rb +3 -0
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp +9589 -0
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl +36619 -0
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.xml +13294 -0
- data/original/examples/employment/eclipse/.project +17 -0
- data/original/examples/employment/eclipse/Export/Employment.png +0 -0
- data/original/examples/employment/eclipse/Express/employment_schema.exp +33 -0
- data/original/examples/employment/eclipse/Express/employment_schema.xmi +77 -0
- data/original/examples/employment/eclipse/Express/employment_schema.xml +93 -0
- data/original/examples/employment/eclipse/Models/Employment.uml +4 -0
- data/original/examples/employment/eclipse/Models/Employment.umldi +240 -0
- data/original/examples/employment/eclipse/readme.txt +7 -0
- data/original/examples/employment/employment_schema.exp +33 -0
- data/original/examples/employment/employment_schema.rb +232 -0
- data/original/examples/employment/employment_schema.xml +93 -0
- data/original/examples/employment/employment_schema___module.rb +46 -0
- data/original/examples/employment/employment_schema___p28attr.rb +126 -0
- data/original/examples/employment/employment_schema___p28inst.rb +26 -0
- data/original/examples/employment/example_employment_data.xml +1 -0
- data/original/examples/employment/example_employment_data_copy.xml +1 -0
- data/original/examples/employment/example_employment_reader.rb +30 -0
- data/original/examples/employment/example_employment_writer.rb +51 -0
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.exp +3710 -0
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.owl +35880 -0
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xmi +15357 -0
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xml +9468 -0
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.exp +8404 -0
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl +43147 -0
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi +18341 -0
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml +11632 -0
- data/original/examples/syntax/remark.exp +145 -0
- data/original/examples/syntax/remark_formatted.exp +174 -0
- data/original/examples/syntax/syntax.exp +310 -0
- data/original/examples/syntax/syntax_formatted.exp +1187 -0
- data/original/exp2ruby.rb +525 -0
- data/original/expsm.rb +34 -0
- data/original/mapping_owl.rb +1018 -0
- data/original/mapping_sysml.rb +2281 -0
- data/original/mapping_uml2.rb +599 -0
- data/original/mapping_uml2_eclipse.rb +433 -0
- data/original/reeper.rb +134 -0
- data/spec/acceptance/express_to_owl_spec.rb +18 -0
- data/spec/acceptance/version_spec.rb +12 -0
- data/spec/expressir/express/repository_spec.rb +25 -0
- data/spec/expressir/express_exp/ap233_spec.rb +22 -0
- data/spec/expressir/express_exp/format_remark_spec.rb +28 -0
- data/spec/expressir/express_exp/format_syntax_spec.rb +28 -0
- data/spec/expressir/express_exp/parse_remark_spec.rb +345 -0
- data/spec/expressir/express_exp/parse_syntax_spec.rb +2998 -0
- data/spec/expressir/model/find_spec.rb +110 -0
- data/spec/expressr_spec.rb +5 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/support/console_helper.rb +29 -0
- metadata +695 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
2
|
+
* Use of this file is governed by the BSD 3-clause license that
|
3
|
+
* can be found in the LICENSE.txt file in the project root.
|
4
|
+
*/
|
5
|
+
|
6
|
+
#include "misc/Interval.h"
|
7
|
+
#include "CommonToken.h"
|
8
|
+
#include "CharStream.h"
|
9
|
+
|
10
|
+
#include "CommonTokenFactory.h"
|
11
|
+
|
12
|
+
using namespace antlr4;
|
13
|
+
|
14
|
+
const Ref<TokenFactory<CommonToken>> CommonTokenFactory::DEFAULT = std::make_shared<CommonTokenFactory>();
|
15
|
+
|
16
|
+
CommonTokenFactory::CommonTokenFactory(bool copyText_) : copyText(copyText_) {
|
17
|
+
}
|
18
|
+
|
19
|
+
CommonTokenFactory::CommonTokenFactory() : CommonTokenFactory(false) {
|
20
|
+
}
|
21
|
+
|
22
|
+
std::unique_ptr<CommonToken> CommonTokenFactory::create(std::pair<TokenSource*, CharStream*> source, size_t type,
|
23
|
+
const std::string &text, size_t channel, size_t start, size_t stop, size_t line, size_t charPositionInLine) {
|
24
|
+
|
25
|
+
std::unique_ptr<CommonToken> t(new CommonToken(source, type, channel, start, stop));
|
26
|
+
t->setLine(line);
|
27
|
+
t->setCharPositionInLine(charPositionInLine);
|
28
|
+
if (text != "") {
|
29
|
+
t->setText(text);
|
30
|
+
} else if (copyText && source.second != nullptr) {
|
31
|
+
t->setText(source.second->getText(misc::Interval(start, stop)));
|
32
|
+
}
|
33
|
+
|
34
|
+
return t;
|
35
|
+
}
|
36
|
+
|
37
|
+
std::unique_ptr<CommonToken> CommonTokenFactory::create(size_t type, const std::string &text) {
|
38
|
+
return std::unique_ptr<CommonToken>(new CommonToken(type, text));
|
39
|
+
}
|
@@ -0,0 +1,74 @@
|
|
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 "TokenFactory.h"
|
9
|
+
|
10
|
+
namespace antlr4 {
|
11
|
+
|
12
|
+
/**
|
13
|
+
* This default implementation of {@link TokenFactory} creates
|
14
|
+
* {@link CommonToken} objects.
|
15
|
+
*/
|
16
|
+
class ANTLR4CPP_PUBLIC CommonTokenFactory : public TokenFactory<CommonToken> {
|
17
|
+
public:
|
18
|
+
/**
|
19
|
+
* The default {@link CommonTokenFactory} instance.
|
20
|
+
*
|
21
|
+
* <p>
|
22
|
+
* This token factory does not explicitly copy token text when constructing
|
23
|
+
* tokens.</p>
|
24
|
+
*/
|
25
|
+
static const Ref<TokenFactory<CommonToken>> DEFAULT;
|
26
|
+
|
27
|
+
protected:
|
28
|
+
/**
|
29
|
+
* Indicates whether {@link CommonToken#setText} should be called after
|
30
|
+
* constructing tokens to explicitly set the text. This is useful for cases
|
31
|
+
* where the input stream might not be able to provide arbitrary substrings
|
32
|
+
* of text from the input after the lexer creates a token (e.g. the
|
33
|
+
* implementation of {@link CharStream#getText} in
|
34
|
+
* {@link UnbufferedCharStream} throws an
|
35
|
+
* {@link UnsupportedOperationException}). Explicitly setting the token text
|
36
|
+
* allows {@link Token#getText} to be called at any time regardless of the
|
37
|
+
* input stream implementation.
|
38
|
+
*
|
39
|
+
* <p>
|
40
|
+
* The default value is {@code false} to avoid the performance and memory
|
41
|
+
* overhead of copying text for every token unless explicitly requested.</p>
|
42
|
+
*/
|
43
|
+
const bool copyText;
|
44
|
+
|
45
|
+
public:
|
46
|
+
/**
|
47
|
+
* Constructs a {@link CommonTokenFactory} with the specified value for
|
48
|
+
* {@link #copyText}.
|
49
|
+
*
|
50
|
+
* <p>
|
51
|
+
* When {@code copyText} is {@code false}, the {@link #DEFAULT} instance
|
52
|
+
* should be used instead of constructing a new instance.</p>
|
53
|
+
*
|
54
|
+
* @param copyText The value for {@link #copyText}.
|
55
|
+
*/
|
56
|
+
CommonTokenFactory(bool copyText);
|
57
|
+
|
58
|
+
/**
|
59
|
+
* Constructs a {@link CommonTokenFactory} with {@link #copyText} set to
|
60
|
+
* {@code false}.
|
61
|
+
*
|
62
|
+
* <p>
|
63
|
+
* The {@link #DEFAULT} instance should be used instead of calling this
|
64
|
+
* directly.</p>
|
65
|
+
*/
|
66
|
+
CommonTokenFactory();
|
67
|
+
|
68
|
+
virtual std::unique_ptr<CommonToken> create(std::pair<TokenSource*, CharStream*> source, size_t type,
|
69
|
+
const std::string &text, size_t channel, size_t start, size_t stop, size_t line, size_t charPositionInLine) override;
|
70
|
+
|
71
|
+
virtual std::unique_ptr<CommonToken> create(size_t type, const std::string &text) override;
|
72
|
+
};
|
73
|
+
|
74
|
+
} // namespace antlr4
|
@@ -0,0 +1,78 @@
|
|
1
|
+
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
2
|
+
* Use of this file is governed by the BSD 3-clause license that
|
3
|
+
* can be found in the LICENSE.txt file in the project root.
|
4
|
+
*/
|
5
|
+
|
6
|
+
#include "Token.h"
|
7
|
+
|
8
|
+
#include "CommonTokenStream.h"
|
9
|
+
|
10
|
+
using namespace antlr4;
|
11
|
+
|
12
|
+
CommonTokenStream::CommonTokenStream(TokenSource *tokenSource) : CommonTokenStream(tokenSource, Token::DEFAULT_CHANNEL) {
|
13
|
+
}
|
14
|
+
|
15
|
+
CommonTokenStream::CommonTokenStream(TokenSource *tokenSource, size_t channel_)
|
16
|
+
: BufferedTokenStream(tokenSource), channel(channel_) {
|
17
|
+
}
|
18
|
+
|
19
|
+
ssize_t CommonTokenStream::adjustSeekIndex(size_t i) {
|
20
|
+
return nextTokenOnChannel(i, channel);
|
21
|
+
}
|
22
|
+
|
23
|
+
Token* CommonTokenStream::LB(size_t k) {
|
24
|
+
if (k == 0 || k > _p) {
|
25
|
+
return nullptr;
|
26
|
+
}
|
27
|
+
|
28
|
+
ssize_t i = static_cast<ssize_t>(_p);
|
29
|
+
size_t n = 1;
|
30
|
+
// find k good tokens looking backwards
|
31
|
+
while (n <= k) {
|
32
|
+
// skip off-channel tokens
|
33
|
+
i = previousTokenOnChannel(i - 1, channel);
|
34
|
+
n++;
|
35
|
+
}
|
36
|
+
if (i < 0) {
|
37
|
+
return nullptr;
|
38
|
+
}
|
39
|
+
|
40
|
+
return _tokens[i].get();
|
41
|
+
}
|
42
|
+
|
43
|
+
Token* CommonTokenStream::LT(ssize_t k) {
|
44
|
+
lazyInit();
|
45
|
+
if (k == 0) {
|
46
|
+
return nullptr;
|
47
|
+
}
|
48
|
+
if (k < 0) {
|
49
|
+
return LB(static_cast<size_t>(-k));
|
50
|
+
}
|
51
|
+
size_t i = _p;
|
52
|
+
ssize_t n = 1; // we know tokens[p] is a good one
|
53
|
+
// find k good tokens
|
54
|
+
while (n < k) {
|
55
|
+
// skip off-channel tokens, but make sure to not look past EOF
|
56
|
+
if (sync(i + 1)) {
|
57
|
+
i = nextTokenOnChannel(i + 1, channel);
|
58
|
+
}
|
59
|
+
n++;
|
60
|
+
}
|
61
|
+
|
62
|
+
return _tokens[i].get();
|
63
|
+
}
|
64
|
+
|
65
|
+
int CommonTokenStream::getNumberOfOnChannelTokens() {
|
66
|
+
int n = 0;
|
67
|
+
fill();
|
68
|
+
for (size_t i = 0; i < _tokens.size(); i++) {
|
69
|
+
Token *t = _tokens[i].get();
|
70
|
+
if (t->getChannel() == channel) {
|
71
|
+
n++;
|
72
|
+
}
|
73
|
+
if (t->getType() == Token::EOF) {
|
74
|
+
break;
|
75
|
+
}
|
76
|
+
}
|
77
|
+
return n;
|
78
|
+
}
|
@@ -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 "BufferedTokenStream.h"
|
9
|
+
|
10
|
+
namespace antlr4 {
|
11
|
+
|
12
|
+
/**
|
13
|
+
* This class extends {@link BufferedTokenStream} with functionality to filter
|
14
|
+
* token streams to tokens on a particular channel (tokens where
|
15
|
+
* {@link Token#getChannel} returns a particular value).
|
16
|
+
*
|
17
|
+
* <p>
|
18
|
+
* This token stream provides access to all tokens by index or when calling
|
19
|
+
* methods like {@link #getText}. The channel filtering is only used for code
|
20
|
+
* accessing tokens via the lookahead methods {@link #LA}, {@link #LT}, and
|
21
|
+
* {@link #LB}.</p>
|
22
|
+
*
|
23
|
+
* <p>
|
24
|
+
* By default, tokens are placed on the default channel
|
25
|
+
* ({@link Token#DEFAULT_CHANNEL}), but may be reassigned by using the
|
26
|
+
* {@code ->channel(HIDDEN)} lexer command, or by using an embedded action to
|
27
|
+
* call {@link Lexer#setChannel}.
|
28
|
+
* </p>
|
29
|
+
*
|
30
|
+
* <p>
|
31
|
+
* Note: lexer rules which use the {@code ->skip} lexer command or call
|
32
|
+
* {@link Lexer#skip} do not produce tokens at all, so input text matched by
|
33
|
+
* such a rule will not be available as part of the token stream, regardless of
|
34
|
+
* channel.</p>
|
35
|
+
*/
|
36
|
+
class ANTLR4CPP_PUBLIC CommonTokenStream : public BufferedTokenStream {
|
37
|
+
public:
|
38
|
+
/**
|
39
|
+
* Constructs a new {@link CommonTokenStream} using the specified token
|
40
|
+
* source and the default token channel ({@link Token#DEFAULT_CHANNEL}).
|
41
|
+
*
|
42
|
+
* @param tokenSource The token source.
|
43
|
+
*/
|
44
|
+
CommonTokenStream(TokenSource *tokenSource);
|
45
|
+
|
46
|
+
/**
|
47
|
+
* Constructs a new {@link CommonTokenStream} using the specified token
|
48
|
+
* source and filtering tokens to the specified channel. Only tokens whose
|
49
|
+
* {@link Token#getChannel} matches {@code channel} or have the
|
50
|
+
* {@link Token#getType} equal to {@link Token#EOF} will be returned by the
|
51
|
+
* token stream lookahead methods.
|
52
|
+
*
|
53
|
+
* @param tokenSource The token source.
|
54
|
+
* @param channel The channel to use for filtering tokens.
|
55
|
+
*/
|
56
|
+
CommonTokenStream(TokenSource *tokenSource, size_t channel);
|
57
|
+
|
58
|
+
virtual Token* LT(ssize_t k) override;
|
59
|
+
|
60
|
+
/// Count EOF just once.
|
61
|
+
virtual int getNumberOfOnChannelTokens();
|
62
|
+
|
63
|
+
protected:
|
64
|
+
/**
|
65
|
+
* Specifies the channel to use for filtering tokens.
|
66
|
+
*
|
67
|
+
* <p>
|
68
|
+
* The default value is {@link Token#DEFAULT_CHANNEL}, which matches the
|
69
|
+
* default channel assigned to tokens created by the lexer.</p>
|
70
|
+
*/
|
71
|
+
size_t channel;
|
72
|
+
|
73
|
+
virtual ssize_t adjustSeekIndex(size_t i) override;
|
74
|
+
|
75
|
+
virtual Token* LB(size_t k) override;
|
76
|
+
|
77
|
+
};
|
78
|
+
|
79
|
+
} // namespace antlr4
|
@@ -0,0 +1,15 @@
|
|
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 "ConsoleErrorListener.h"
|
7
|
+
|
8
|
+
using namespace antlr4;
|
9
|
+
|
10
|
+
ConsoleErrorListener ConsoleErrorListener::INSTANCE;
|
11
|
+
|
12
|
+
void ConsoleErrorListener::syntaxError(Recognizer * /*recognizer*/, Token * /*offendingSymbol*/,
|
13
|
+
size_t line, size_t charPositionInLine, const std::string &msg, std::exception_ptr /*e*/) {
|
14
|
+
std::cerr << "line " << line << ":" << charPositionInLine << " " << msg << std::endl;
|
15
|
+
}
|
@@ -0,0 +1,35 @@
|
|
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 "BaseErrorListener.h"
|
9
|
+
|
10
|
+
namespace antlr4 {
|
11
|
+
|
12
|
+
class ANTLR4CPP_PUBLIC ConsoleErrorListener : public BaseErrorListener {
|
13
|
+
public:
|
14
|
+
/**
|
15
|
+
* Provides a default instance of {@link ConsoleErrorListener}.
|
16
|
+
*/
|
17
|
+
static ConsoleErrorListener INSTANCE;
|
18
|
+
|
19
|
+
/**
|
20
|
+
* {@inheritDoc}
|
21
|
+
*
|
22
|
+
* <p>
|
23
|
+
* This implementation prints messages to {@link System#err} containing the
|
24
|
+
* values of {@code line}, {@code charPositionInLine}, and {@code msg} using
|
25
|
+
* the following format.</p>
|
26
|
+
*
|
27
|
+
* <pre>
|
28
|
+
* line <em>line</em>:<em>charPositionInLine</em> <em>msg</em>
|
29
|
+
* </pre>
|
30
|
+
*/
|
31
|
+
virtual void syntaxError(Recognizer *recognizer, Token * offendingSymbol, size_t line, size_t charPositionInLine,
|
32
|
+
const std::string &msg, std::exception_ptr e) override;
|
33
|
+
};
|
34
|
+
|
35
|
+
} // namespace antlr4
|
@@ -0,0 +1,333 @@
|
|
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 "NoViableAltException.h"
|
7
|
+
#include "misc/IntervalSet.h"
|
8
|
+
#include "atn/ParserATNSimulator.h"
|
9
|
+
#include "InputMismatchException.h"
|
10
|
+
#include "FailedPredicateException.h"
|
11
|
+
#include "ParserRuleContext.h"
|
12
|
+
#include "atn/RuleTransition.h"
|
13
|
+
#include "atn/ATN.h"
|
14
|
+
#include "atn/ATNState.h"
|
15
|
+
#include "Parser.h"
|
16
|
+
#include "CommonToken.h"
|
17
|
+
#include "Vocabulary.h"
|
18
|
+
#include "support/StringUtils.h"
|
19
|
+
|
20
|
+
#include "DefaultErrorStrategy.h"
|
21
|
+
|
22
|
+
using namespace antlr4;
|
23
|
+
using namespace antlr4::atn;
|
24
|
+
|
25
|
+
using namespace antlrcpp;
|
26
|
+
|
27
|
+
DefaultErrorStrategy::DefaultErrorStrategy() {
|
28
|
+
InitializeInstanceFields();
|
29
|
+
}
|
30
|
+
|
31
|
+
DefaultErrorStrategy::~DefaultErrorStrategy() {
|
32
|
+
}
|
33
|
+
|
34
|
+
void DefaultErrorStrategy::reset(Parser *recognizer) {
|
35
|
+
_errorSymbols.clear();
|
36
|
+
endErrorCondition(recognizer);
|
37
|
+
}
|
38
|
+
|
39
|
+
void DefaultErrorStrategy::beginErrorCondition(Parser * /*recognizer*/) {
|
40
|
+
errorRecoveryMode = true;
|
41
|
+
}
|
42
|
+
|
43
|
+
bool DefaultErrorStrategy::inErrorRecoveryMode(Parser * /*recognizer*/) {
|
44
|
+
return errorRecoveryMode;
|
45
|
+
}
|
46
|
+
|
47
|
+
void DefaultErrorStrategy::endErrorCondition(Parser * /*recognizer*/) {
|
48
|
+
errorRecoveryMode = false;
|
49
|
+
lastErrorIndex = -1;
|
50
|
+
}
|
51
|
+
|
52
|
+
void DefaultErrorStrategy::reportMatch(Parser *recognizer) {
|
53
|
+
endErrorCondition(recognizer);
|
54
|
+
}
|
55
|
+
|
56
|
+
void DefaultErrorStrategy::reportError(Parser *recognizer, const RecognitionException &e) {
|
57
|
+
// If we've already reported an error and have not matched a token
|
58
|
+
// yet successfully, don't report any errors.
|
59
|
+
if (inErrorRecoveryMode(recognizer)) {
|
60
|
+
return; // don't report spurious errors
|
61
|
+
}
|
62
|
+
|
63
|
+
beginErrorCondition(recognizer);
|
64
|
+
if (is<const NoViableAltException *>(&e)) {
|
65
|
+
reportNoViableAlternative(recognizer, static_cast<const NoViableAltException &>(e));
|
66
|
+
} else if (is<const InputMismatchException *>(&e)) {
|
67
|
+
reportInputMismatch(recognizer, static_cast<const InputMismatchException &>(e));
|
68
|
+
} else if (is<const FailedPredicateException *>(&e)) {
|
69
|
+
reportFailedPredicate(recognizer, static_cast<const FailedPredicateException &>(e));
|
70
|
+
} else if (is<const RecognitionException *>(&e)) {
|
71
|
+
recognizer->notifyErrorListeners(e.getOffendingToken(), e.what(), std::current_exception());
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
void DefaultErrorStrategy::recover(Parser *recognizer, std::exception_ptr /*e*/) {
|
76
|
+
if (lastErrorIndex == static_cast<int>(recognizer->getInputStream()->index()) &&
|
77
|
+
lastErrorStates.contains(recognizer->getState())) {
|
78
|
+
|
79
|
+
// uh oh, another error at same token index and previously-visited
|
80
|
+
// state in ATN; must be a case where LT(1) is in the recovery
|
81
|
+
// token set so nothing got consumed. Consume a single token
|
82
|
+
// at least to prevent an infinite loop; this is a failsafe.
|
83
|
+
recognizer->consume();
|
84
|
+
}
|
85
|
+
lastErrorIndex = static_cast<int>(recognizer->getInputStream()->index());
|
86
|
+
lastErrorStates.add(recognizer->getState());
|
87
|
+
misc::IntervalSet followSet = getErrorRecoverySet(recognizer);
|
88
|
+
consumeUntil(recognizer, followSet);
|
89
|
+
}
|
90
|
+
|
91
|
+
void DefaultErrorStrategy::sync(Parser *recognizer) {
|
92
|
+
atn::ATNState *s = recognizer->getInterpreter<atn::ATNSimulator>()->atn.states[recognizer->getState()];
|
93
|
+
|
94
|
+
// If already recovering, don't try to sync
|
95
|
+
if (inErrorRecoveryMode(recognizer)) {
|
96
|
+
return;
|
97
|
+
}
|
98
|
+
|
99
|
+
TokenStream *tokens = recognizer->getTokenStream();
|
100
|
+
size_t la = tokens->LA(1);
|
101
|
+
|
102
|
+
// try cheaper subset first; might get lucky. seems to shave a wee bit off
|
103
|
+
auto nextTokens = recognizer->getATN().nextTokens(s);
|
104
|
+
if (nextTokens.contains(Token::EPSILON) || nextTokens.contains(la)) {
|
105
|
+
return;
|
106
|
+
}
|
107
|
+
|
108
|
+
switch (s->getStateType()) {
|
109
|
+
case atn::ATNState::BLOCK_START:
|
110
|
+
case atn::ATNState::STAR_BLOCK_START:
|
111
|
+
case atn::ATNState::PLUS_BLOCK_START:
|
112
|
+
case atn::ATNState::STAR_LOOP_ENTRY:
|
113
|
+
// report error and recover if possible
|
114
|
+
if (singleTokenDeletion(recognizer) != nullptr) {
|
115
|
+
return;
|
116
|
+
}
|
117
|
+
|
118
|
+
throw InputMismatchException(recognizer);
|
119
|
+
|
120
|
+
case atn::ATNState::PLUS_LOOP_BACK:
|
121
|
+
case atn::ATNState::STAR_LOOP_BACK: {
|
122
|
+
reportUnwantedToken(recognizer);
|
123
|
+
misc::IntervalSet expecting = recognizer->getExpectedTokens();
|
124
|
+
misc::IntervalSet whatFollowsLoopIterationOrRule = expecting.Or(getErrorRecoverySet(recognizer));
|
125
|
+
consumeUntil(recognizer, whatFollowsLoopIterationOrRule);
|
126
|
+
}
|
127
|
+
break;
|
128
|
+
|
129
|
+
default:
|
130
|
+
// do nothing if we can't identify the exact kind of ATN state
|
131
|
+
break;
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
135
|
+
void DefaultErrorStrategy::reportNoViableAlternative(Parser *recognizer, const NoViableAltException &e) {
|
136
|
+
TokenStream *tokens = recognizer->getTokenStream();
|
137
|
+
std::string input;
|
138
|
+
if (tokens != nullptr) {
|
139
|
+
if (e.getStartToken()->getType() == Token::EOF) {
|
140
|
+
input = "<EOF>";
|
141
|
+
} else {
|
142
|
+
input = tokens->getText(e.getStartToken(), e.getOffendingToken());
|
143
|
+
}
|
144
|
+
} else {
|
145
|
+
input = "<unknown input>";
|
146
|
+
}
|
147
|
+
std::string msg = "no viable alternative at input " + escapeWSAndQuote(input);
|
148
|
+
recognizer->notifyErrorListeners(e.getOffendingToken(), msg, std::make_exception_ptr(e));
|
149
|
+
}
|
150
|
+
|
151
|
+
void DefaultErrorStrategy::reportInputMismatch(Parser *recognizer, const InputMismatchException &e) {
|
152
|
+
std::string msg = "mismatched input " + getTokenErrorDisplay(e.getOffendingToken()) +
|
153
|
+
" expecting " + e.getExpectedTokens().toString(recognizer->getVocabulary());
|
154
|
+
recognizer->notifyErrorListeners(e.getOffendingToken(), msg, std::make_exception_ptr(e));
|
155
|
+
}
|
156
|
+
|
157
|
+
void DefaultErrorStrategy::reportFailedPredicate(Parser *recognizer, const FailedPredicateException &e) {
|
158
|
+
const std::string& ruleName = recognizer->getRuleNames()[recognizer->getContext()->getRuleIndex()];
|
159
|
+
std::string msg = "rule " + ruleName + " " + e.what();
|
160
|
+
recognizer->notifyErrorListeners(e.getOffendingToken(), msg, std::make_exception_ptr(e));
|
161
|
+
}
|
162
|
+
|
163
|
+
void DefaultErrorStrategy::reportUnwantedToken(Parser *recognizer) {
|
164
|
+
if (inErrorRecoveryMode(recognizer)) {
|
165
|
+
return;
|
166
|
+
}
|
167
|
+
|
168
|
+
beginErrorCondition(recognizer);
|
169
|
+
|
170
|
+
Token *t = recognizer->getCurrentToken();
|
171
|
+
std::string tokenName = getTokenErrorDisplay(t);
|
172
|
+
misc::IntervalSet expecting = getExpectedTokens(recognizer);
|
173
|
+
|
174
|
+
std::string msg = "extraneous input " + tokenName + " expecting " + expecting.toString(recognizer->getVocabulary());
|
175
|
+
recognizer->notifyErrorListeners(t, msg, nullptr);
|
176
|
+
}
|
177
|
+
|
178
|
+
void DefaultErrorStrategy::reportMissingToken(Parser *recognizer) {
|
179
|
+
if (inErrorRecoveryMode(recognizer)) {
|
180
|
+
return;
|
181
|
+
}
|
182
|
+
|
183
|
+
beginErrorCondition(recognizer);
|
184
|
+
|
185
|
+
Token *t = recognizer->getCurrentToken();
|
186
|
+
misc::IntervalSet expecting = getExpectedTokens(recognizer);
|
187
|
+
std::string expectedText = expecting.toString(recognizer->getVocabulary());
|
188
|
+
std::string msg = "missing " + expectedText + " at " + getTokenErrorDisplay(t);
|
189
|
+
|
190
|
+
recognizer->notifyErrorListeners(t, msg, nullptr);
|
191
|
+
}
|
192
|
+
|
193
|
+
Token* DefaultErrorStrategy::recoverInline(Parser *recognizer) {
|
194
|
+
// Single token deletion.
|
195
|
+
Token *matchedSymbol = singleTokenDeletion(recognizer);
|
196
|
+
if (matchedSymbol) {
|
197
|
+
// We have deleted the extra token.
|
198
|
+
// Now, move past ttype token as if all were ok.
|
199
|
+
recognizer->consume();
|
200
|
+
return matchedSymbol;
|
201
|
+
}
|
202
|
+
|
203
|
+
// Single token insertion.
|
204
|
+
if (singleTokenInsertion(recognizer)) {
|
205
|
+
return getMissingSymbol(recognizer);
|
206
|
+
}
|
207
|
+
|
208
|
+
// Even that didn't work; must throw the exception.
|
209
|
+
throw InputMismatchException(recognizer);
|
210
|
+
}
|
211
|
+
|
212
|
+
bool DefaultErrorStrategy::singleTokenInsertion(Parser *recognizer) {
|
213
|
+
ssize_t currentSymbolType = recognizer->getInputStream()->LA(1);
|
214
|
+
|
215
|
+
// if current token is consistent with what could come after current
|
216
|
+
// ATN state, then we know we're missing a token; error recovery
|
217
|
+
// is free to conjure up and insert the missing token
|
218
|
+
atn::ATNState *currentState = recognizer->getInterpreter<atn::ATNSimulator>()->atn.states[recognizer->getState()];
|
219
|
+
atn::ATNState *next = currentState->transitions[0]->target;
|
220
|
+
const atn::ATN &atn = recognizer->getInterpreter<atn::ATNSimulator>()->atn;
|
221
|
+
misc::IntervalSet expectingAtLL2 = atn.nextTokens(next, recognizer->getContext());
|
222
|
+
if (expectingAtLL2.contains(currentSymbolType)) {
|
223
|
+
reportMissingToken(recognizer);
|
224
|
+
return true;
|
225
|
+
}
|
226
|
+
return false;
|
227
|
+
}
|
228
|
+
|
229
|
+
Token* DefaultErrorStrategy::singleTokenDeletion(Parser *recognizer) {
|
230
|
+
size_t nextTokenType = recognizer->getInputStream()->LA(2);
|
231
|
+
misc::IntervalSet expecting = getExpectedTokens(recognizer);
|
232
|
+
if (expecting.contains(nextTokenType)) {
|
233
|
+
reportUnwantedToken(recognizer);
|
234
|
+
recognizer->consume(); // simply delete extra token
|
235
|
+
// we want to return the token we're actually matching
|
236
|
+
Token *matchedSymbol = recognizer->getCurrentToken();
|
237
|
+
reportMatch(recognizer); // we know current token is correct
|
238
|
+
return matchedSymbol;
|
239
|
+
}
|
240
|
+
return nullptr;
|
241
|
+
}
|
242
|
+
|
243
|
+
Token* DefaultErrorStrategy::getMissingSymbol(Parser *recognizer) {
|
244
|
+
Token *currentSymbol = recognizer->getCurrentToken();
|
245
|
+
misc::IntervalSet expecting = getExpectedTokens(recognizer);
|
246
|
+
size_t expectedTokenType = expecting.getMinElement(); // get any element
|
247
|
+
std::string tokenText;
|
248
|
+
if (expectedTokenType == Token::EOF) {
|
249
|
+
tokenText = "<missing EOF>";
|
250
|
+
} else {
|
251
|
+
tokenText = "<missing " + recognizer->getVocabulary().getDisplayName(expectedTokenType) + ">";
|
252
|
+
}
|
253
|
+
Token *current = currentSymbol;
|
254
|
+
Token *lookback = recognizer->getTokenStream()->LT(-1);
|
255
|
+
if (current->getType() == Token::EOF && lookback != nullptr) {
|
256
|
+
current = lookback;
|
257
|
+
}
|
258
|
+
|
259
|
+
_errorSymbols.push_back(recognizer->getTokenFactory()->create(
|
260
|
+
{ current->getTokenSource(), current->getTokenSource()->getInputStream() },
|
261
|
+
expectedTokenType, tokenText, Token::DEFAULT_CHANNEL, INVALID_INDEX, INVALID_INDEX,
|
262
|
+
current->getLine(), current->getCharPositionInLine()));
|
263
|
+
|
264
|
+
return _errorSymbols.back().get();
|
265
|
+
}
|
266
|
+
|
267
|
+
misc::IntervalSet DefaultErrorStrategy::getExpectedTokens(Parser *recognizer) {
|
268
|
+
return recognizer->getExpectedTokens();
|
269
|
+
}
|
270
|
+
|
271
|
+
std::string DefaultErrorStrategy::getTokenErrorDisplay(Token *t) {
|
272
|
+
if (t == nullptr) {
|
273
|
+
return "<no Token>";
|
274
|
+
}
|
275
|
+
std::string s = getSymbolText(t);
|
276
|
+
if (s == "") {
|
277
|
+
if (getSymbolType(t) == Token::EOF) {
|
278
|
+
s = "<EOF>";
|
279
|
+
} else {
|
280
|
+
s = "<" + std::to_string(getSymbolType(t)) + ">";
|
281
|
+
}
|
282
|
+
}
|
283
|
+
return escapeWSAndQuote(s);
|
284
|
+
}
|
285
|
+
|
286
|
+
std::string DefaultErrorStrategy::getSymbolText(Token *symbol) {
|
287
|
+
return symbol->getText();
|
288
|
+
}
|
289
|
+
|
290
|
+
size_t DefaultErrorStrategy::getSymbolType(Token *symbol) {
|
291
|
+
return symbol->getType();
|
292
|
+
}
|
293
|
+
|
294
|
+
std::string DefaultErrorStrategy::escapeWSAndQuote(const std::string &s) const {
|
295
|
+
std::string result = s;
|
296
|
+
antlrcpp::replaceAll(result, "\n", "\\n");
|
297
|
+
antlrcpp::replaceAll(result, "\r","\\r");
|
298
|
+
antlrcpp::replaceAll(result, "\t","\\t");
|
299
|
+
return "'" + result + "'";
|
300
|
+
}
|
301
|
+
|
302
|
+
misc::IntervalSet DefaultErrorStrategy::getErrorRecoverySet(Parser *recognizer) {
|
303
|
+
const atn::ATN &atn = recognizer->getInterpreter<atn::ATNSimulator>()->atn;
|
304
|
+
RuleContext *ctx = recognizer->getContext();
|
305
|
+
misc::IntervalSet recoverSet;
|
306
|
+
while (ctx->invokingState != ATNState::INVALID_STATE_NUMBER) {
|
307
|
+
// compute what follows who invoked us
|
308
|
+
atn::ATNState *invokingState = atn.states[ctx->invokingState];
|
309
|
+
atn::RuleTransition *rt = dynamic_cast<atn::RuleTransition*>(invokingState->transitions[0]);
|
310
|
+
misc::IntervalSet follow = atn.nextTokens(rt->followState);
|
311
|
+
recoverSet.addAll(follow);
|
312
|
+
|
313
|
+
if (ctx->parent == nullptr)
|
314
|
+
break;
|
315
|
+
ctx = static_cast<RuleContext *>(ctx->parent);
|
316
|
+
}
|
317
|
+
recoverSet.remove(Token::EPSILON);
|
318
|
+
|
319
|
+
return recoverSet;
|
320
|
+
}
|
321
|
+
|
322
|
+
void DefaultErrorStrategy::consumeUntil(Parser *recognizer, const misc::IntervalSet &set) {
|
323
|
+
size_t ttype = recognizer->getInputStream()->LA(1);
|
324
|
+
while (ttype != Token::EOF && !set.contains(ttype)) {
|
325
|
+
recognizer->consume();
|
326
|
+
ttype = recognizer->getInputStream()->LA(1);
|
327
|
+
}
|
328
|
+
}
|
329
|
+
|
330
|
+
void DefaultErrorStrategy::InitializeInstanceFields() {
|
331
|
+
errorRecoveryMode = false;
|
332
|
+
lastErrorIndex = -1;
|
333
|
+
}
|