expressir 0.2.4-x64-mingw32 → 0.2.10-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 +5 -5
- data/.cross_rubies +30 -0
- data/.github/workflows/rake.yml +45 -46
- data/.github/workflows/release.yml +83 -75
- data/.gitignore +17 -15
- data/.gitmodules +3 -3
- data/.rspec +2 -2
- data/.rubocop.yml +508 -508
- data/Gemfile +4 -6
- data/README.adoc +147 -147
- data/Rakefile +11 -17
- data/bin/console +12 -12
- data/bin/rspec +29 -29
- data/bin/setup +8 -8
- data/demo.rb +18 -18
- data/docs/development.md +90 -90
- data/exe/expressir +20 -20
- data/exe/generate-parser +47 -47
- data/expressir.gemspec +43 -40
- data/lib/expressir.rb +21 -21
- data/lib/expressir/cli.rb +27 -27
- data/lib/expressir/cli/ui.rb +36 -36
- data/lib/expressir/config.rb +23 -23
- data/lib/expressir/express.rb +11 -11
- data/lib/expressir/express/aggregate_dimension.rb +38 -38
- data/lib/expressir/express/attribute.rb +15 -15
- data/lib/expressir/express/comment.rb +7 -7
- data/lib/expressir/express/defined_type.rb +36 -36
- data/lib/expressir/express/derived.rb +65 -65
- data/lib/expressir/express/derived_aggregate.rb +43 -43
- data/lib/expressir/express/entity.rb +137 -137
- data/lib/expressir/express/explicit.rb +70 -70
- data/lib/expressir/express/explicit_aggregate.rb +46 -46
- data/lib/expressir/express/explicit_or_derived.rb +16 -16
- data/lib/expressir/express/global_rule.rb +44 -44
- data/lib/expressir/express/interface_specification.rb +51 -51
- data/lib/expressir/express/interfaced_item.rb +38 -38
- data/lib/expressir/express/inverse.rb +46 -46
- data/lib/expressir/express/inverse_aggregate.rb +37 -37
- data/lib/expressir/express/model_element.rb +7 -7
- data/lib/expressir/express/named_type.rb +19 -19
- data/lib/expressir/express/remark.rb +8 -8
- data/lib/expressir/express/repository.rb +306 -306
- data/lib/expressir/express/schema_definition.rb +96 -96
- data/lib/expressir/express/subtype_constraint.rb +14 -14
- data/lib/expressir/express/type.rb +26 -26
- data/lib/expressir/express/type_aggregate.rb +42 -42
- data/lib/expressir/express/type_enum.rb +29 -29
- data/lib/expressir/express/type_parser.rb +45 -45
- data/lib/expressir/express/type_select.rb +82 -82
- data/lib/expressir/express/unique_rule.rb +35 -35
- data/lib/expressir/express/where_rule.rb +32 -32
- data/lib/expressir/express_exp/2.4/express_parser.so +0 -0
- data/lib/expressir/express_exp/2.5/express_parser.so +0 -0
- data/lib/expressir/express_exp/2.6/express_parser.so +0 -0
- data/lib/expressir/express_exp/2.7/express_parser.so +0 -0
- data/lib/expressir/express_exp/3.0/express_parser.so +0 -0
- data/lib/expressir/express_exp/formatter.rb +1500 -1449
- data/lib/expressir/express_exp/parser.rb +53 -35
- data/lib/expressir/express_exp/visitor.rb +2555 -2450
- data/lib/expressir/express_parser.rb +30 -30
- data/lib/expressir/model.rb +67 -64
- data/lib/expressir/model/attribute.rb +28 -26
- data/lib/expressir/model/constant.rb +18 -16
- data/lib/expressir/model/entity.rb +38 -45
- data/lib/expressir/model/enumeration_item.rb +12 -10
- data/lib/expressir/model/expressions/aggregate_initializer.rb +12 -12
- data/lib/expressir/model/expressions/aggregate_item.rb +14 -14
- data/lib/expressir/model/expressions/attribute_reference.rb +14 -14
- data/lib/expressir/model/expressions/binary_expression.rb +39 -39
- data/lib/expressir/model/expressions/call.rb +14 -14
- data/lib/expressir/model/expressions/entity_constructor.rb +14 -14
- data/lib/expressir/model/expressions/group_reference.rb +14 -14
- data/lib/expressir/model/expressions/index_reference.rb +16 -16
- data/lib/expressir/model/expressions/interval.rb +20 -20
- data/lib/expressir/model/expressions/query_expression.rb +27 -25
- data/lib/expressir/model/expressions/simple_reference.rb +12 -12
- data/lib/expressir/model/expressions/unary_expression.rb +18 -18
- data/lib/expressir/model/function.rb +55 -61
- data/lib/expressir/model/identifier.rb +9 -8
- data/lib/expressir/model/informal_proposition.rb +13 -0
- data/lib/expressir/model/interface.rb +17 -17
- data/lib/expressir/model/literals/binary.rb +12 -12
- data/lib/expressir/model/literals/integer.rb +12 -12
- data/lib/expressir/model/literals/logical.rb +16 -16
- data/lib/expressir/model/literals/real.rb +12 -12
- data/lib/expressir/model/literals/string.rb +14 -14
- data/lib/expressir/model/model_element.rb +67 -0
- data/lib/expressir/model/parameter.rb +18 -16
- data/lib/expressir/model/procedure.rb +53 -59
- data/lib/expressir/model/renamed_ref.rb +12 -12
- data/lib/expressir/model/repository.rb +18 -18
- data/lib/expressir/model/rule.rb +58 -61
- data/lib/expressir/model/schema.rb +55 -66
- data/lib/expressir/model/scope.rb +62 -16
- data/lib/expressir/model/statements/alias.rb +27 -25
- data/lib/expressir/model/statements/assignment.rb +14 -14
- data/lib/expressir/model/statements/call.rb +14 -14
- data/lib/expressir/model/statements/case.rb +16 -16
- data/lib/expressir/model/statements/case_action.rb +14 -14
- data/lib/expressir/model/statements/compound.rb +12 -12
- data/lib/expressir/model/statements/escape.rb +7 -7
- data/lib/expressir/model/statements/if.rb +16 -16
- data/lib/expressir/model/statements/null.rb +7 -7
- data/lib/expressir/model/statements/repeat.rb +35 -33
- data/lib/expressir/model/statements/return.rb +12 -12
- data/lib/expressir/model/statements/skip.rb +7 -7
- data/lib/expressir/model/subtype_constraint.rb +28 -26
- data/lib/expressir/model/type.rb +33 -23
- data/lib/expressir/model/types/aggregate.rb +18 -16
- data/lib/expressir/model/types/array.rb +20 -20
- data/lib/expressir/model/types/bag.rb +16 -16
- data/lib/expressir/model/types/binary.rb +14 -14
- data/lib/expressir/model/types/boolean.rb +7 -7
- data/lib/expressir/model/types/enumeration.rb +18 -18
- data/lib/expressir/model/types/generic.rb +14 -12
- data/lib/expressir/model/types/generic_entity.rb +14 -12
- data/lib/expressir/model/types/integer.rb +7 -7
- data/lib/expressir/model/types/list.rb +18 -18
- data/lib/expressir/model/types/logical.rb +7 -7
- data/lib/expressir/model/types/number.rb +7 -7
- data/lib/expressir/model/types/real.rb +12 -12
- data/lib/expressir/model/types/select.rb +20 -20
- data/lib/expressir/model/types/set.rb +16 -16
- data/lib/expressir/model/types/string.rb +14 -14
- data/lib/expressir/model/unique.rb +16 -14
- data/lib/expressir/model/variable.rb +18 -16
- data/lib/expressir/model/where.rb +16 -14
- data/lib/expressir/parser.rb +6 -6
- data/lib/expressir/parser/owl_parser.rb +8 -8
- data/lib/expressir/version.rb +3 -3
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp +9589 -9589
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl +36619 -36619
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.xml +13293 -13293
- data/original/examples/employment/eclipse/.project +17 -17
- data/original/examples/employment/eclipse/Express/employment_schema.exp +33 -33
- data/original/examples/employment/eclipse/Express/employment_schema.xmi +77 -77
- data/original/examples/employment/eclipse/Express/employment_schema.xml +92 -92
- data/original/examples/employment/eclipse/Models/Employment.uml +4 -4
- data/original/examples/employment/eclipse/Models/Employment.umldi +240 -240
- data/original/examples/employment/eclipse/readme.txt +6 -6
- data/original/examples/employment/employment_schema.exp +33 -33
- data/original/examples/employment/employment_schema.rb +232 -232
- data/original/examples/employment/employment_schema.xml +92 -92
- data/original/examples/employment/employment_schema___module.rb +46 -46
- data/original/examples/employment/employment_schema___p28attr.rb +126 -126
- data/original/examples/employment/employment_schema___p28inst.rb +26 -26
- data/original/examples/employment/example_employment_data.xml +1 -1
- data/original/examples/employment/example_employment_data_copy.xml +1 -1
- data/original/examples/employment/example_employment_reader.rb +30 -30
- data/original/examples/employment/example_employment_writer.rb +51 -51
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.exp +3710 -3710
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.owl +35880 -35880
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xmi +15357 -15357
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xml +9467 -9467
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.exp +8404 -8404
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl +43147 -43147
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi +18341 -18341
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml +11631 -11631
- data/original/examples/syntax/remark.exp +189 -145
- data/original/examples/syntax/remark_formatted.exp +213 -174
- data/original/examples/syntax/simple.exp +3 -0
- data/original/examples/syntax/source.exp +16 -0
- data/original/examples/syntax/syntax.exp +323 -310
- data/original/examples/syntax/syntax_formatted.exp +753 -1186
- data/original/exp2ruby.rb +525 -525
- data/original/expsm.rb +34 -34
- data/original/mapping_owl.rb +1018 -1018
- data/original/mapping_sysml.rb +2281 -2281
- data/original/mapping_uml2.rb +598 -598
- data/original/mapping_uml2_eclipse.rb +433 -433
- data/original/reeper.rb +134 -134
- data/rakelib/cross-ruby.rake +308 -0
- data/spec/acceptance/express_to_owl_spec.rb +18 -18
- data/spec/acceptance/version_spec.rb +12 -12
- data/spec/expressir/express/repository_spec.rb +25 -25
- data/spec/expressir/express_exp/ap233_spec.rb +22 -22
- data/spec/expressir/express_exp/format_remark_spec.rb +28 -28
- data/spec/expressir/express_exp/format_syntax_spec.rb +28 -28
- data/spec/expressir/express_exp/head_source_spec.rb +38 -0
- data/spec/expressir/express_exp/parse_multiple_spec.rb +32 -0
- data/spec/expressir/express_exp/parse_remark_spec.rb +411 -345
- data/spec/expressir/express_exp/parse_syntax_spec.rb +3048 -2998
- data/spec/expressir/express_exp/source_spec.rb +29 -0
- data/spec/expressir/model/model_element_spec.rb +59 -0
- data/spec/expressir/model/{find_spec.rb → scope_spec.rb} +123 -110
- data/spec/expressr_spec.rb +5 -5
- data/spec/spec_helper.rb +17 -17
- data/spec/support/console_helper.rb +29 -29
- metadata +41 -371
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +0 -118
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj +0 -637
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj.filters +0 -984
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj +0 -652
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj.filters +0 -990
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj +0 -652
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj.filters +0 -990
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +0 -652
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +0 -990
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +0 -26
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +0 -17
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +0 -3024
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +0 -76
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +0 -80
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +0 -80
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +0 -10
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +0 -167
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +0 -10
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +0 -121
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +0 -34
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +0 -27
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +0 -155
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +0 -69
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +0 -61
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +0 -59
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +0 -25
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +0 -36
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +0 -414
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +0 -200
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +0 -11
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +0 -37
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +0 -195
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +0 -158
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +0 -39
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +0 -74
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +0 -78
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +0 -79
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +0 -15
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +0 -35
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +0 -333
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +0 -466
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +0 -84
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +0 -80
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +0 -64
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +0 -99
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +0 -51
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +0 -32
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +0 -18
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +0 -24
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +0 -218
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +0 -19
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +0 -45
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +0 -295
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +0 -196
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +0 -75
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +0 -52
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +0 -36
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +0 -31
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +0 -92
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +0 -88
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +0 -46
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +0 -42
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +0 -648
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +0 -467
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +0 -306
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +0 -179
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +0 -141
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +0 -147
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +0 -53
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +0 -38
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +0 -66
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +0 -98
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +0 -167
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +0 -164
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +0 -143
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +0 -137
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +0 -27
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +0 -32
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +0 -53
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +0 -155
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +0 -92
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +0 -30
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +0 -85
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +0 -11
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +0 -137
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +0 -425
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +0 -293
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +0 -211
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +0 -123
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +0 -270
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +0 -115
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +0 -104
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +0 -193
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +0 -23
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +0 -137
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +0 -167
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +0 -209
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +0 -112
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +0 -113
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +0 -148
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +0 -228
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +0 -110
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +0 -64
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +0 -50
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +0 -758
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +0 -85
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp +0 -621
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.h +0 -61
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +0 -63
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +0 -87
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +0 -72
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +0 -133
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +0 -20
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp +0 -14
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h +0 -24
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +0 -33
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +0 -33
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +0 -16
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +0 -68
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +0 -82
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +0 -43
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +0 -31
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +0 -30
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +0 -22
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +0 -21
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.cpp +0 -15
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +0 -24
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +0 -21
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +0 -14
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +0 -47
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +0 -14
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +0 -70
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +0 -25
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +0 -227
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +0 -17
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +0 -30
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp +0 -35
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h +0 -27
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +0 -35
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +0 -39
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +0 -15
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +0 -43
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +0 -158
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +0 -109
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +0 -84
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +0 -44
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +0 -628
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +0 -210
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +0 -66
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +0 -107
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +0 -115
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +0 -55
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +0 -55
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +0 -63
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +0 -62
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +0 -87
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +0 -63
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +0 -82
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +0 -56
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +0 -61
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +0 -47
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +0 -57
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +0 -47
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +0 -57
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +0 -56
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +0 -61
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +0 -47
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +0 -55
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +0 -56
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +0 -55
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +0 -16
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +0 -42
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +0 -22
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Makefile +0 -67
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +0 -27
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +0 -25
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +0 -20
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +0 -102
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +0 -102
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +0 -1366
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +0 -904
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +0 -25
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +0 -22
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +0 -32
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +0 -29
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +0 -17
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +0 -62
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +0 -34
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +0 -39
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +0 -662
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +0 -254
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +0 -201
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +0 -436
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +0 -179
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +0 -60
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +0 -30
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +0 -29
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.cpp +0 -16
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +0 -25
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +0 -25
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +0 -37
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +0 -40
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +0 -377
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +0 -222
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +0 -32
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +0 -30
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +0 -81
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +0 -36
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +0 -21
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp +0 -15
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +0 -35
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +0 -19
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +0 -21
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.cpp +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +0 -21
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +0 -44
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +0 -76
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +0 -25
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +0 -25
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +0 -127
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +0 -91
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +0 -67
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +0 -32
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +0 -100
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +0 -144
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +0 -20
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +0 -23
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +0 -124
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +0 -31
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +0 -89
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +0 -84
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +0 -521
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +0 -198
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +0 -134
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +0 -76
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +0 -4
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +0 -21
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +0 -13
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +0 -170
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +0 -43
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +0 -110
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +0 -76
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +0 -248
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +0 -78
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +0 -163
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +0 -36
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +0 -54
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.cpp +0 -303
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.h +0 -112
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +0 -128
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +0 -19
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +0 -23
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +0 -33
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +0 -71
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +0 -53
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +0 -15
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +0 -102
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +0 -39
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +0 -50
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +0 -57
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +0 -49
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +0 -31
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +0 -32
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +0 -57
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +0 -33
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +0 -241
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +0 -78
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +0 -9
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +0 -44
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +0 -69
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +0 -132
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +0 -64
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +0 -105
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +0 -371
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +0 -185
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +0 -77
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +0 -117
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +0 -39
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +0 -86
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +0 -28
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +0 -51
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +0 -36
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +0 -80
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +0 -154
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +0 -86
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +0 -31
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +0 -40
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +0 -173
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +0 -64
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +0 -56
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +0 -12
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +0 -13
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +0 -22
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +0 -20
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +0 -27
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +0 -30
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +0 -26
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +0 -20
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +0 -25
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +0 -33
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +0 -26
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +0 -23
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +0 -23
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +0 -24
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +0 -23
- data/ext/express-parser/antlrgen/Express.interp +0 -532
- data/ext/express-parser/antlrgen/Express.tokens +0 -190
- data/ext/express-parser/antlrgen/ExpressBaseListener.cpp +0 -7
- data/ext/express-parser/antlrgen/ExpressBaseListener.h +0 -623
- data/ext/express-parser/antlrgen/ExpressBaseVisitor.cpp +0 -7
- data/ext/express-parser/antlrgen/ExpressBaseVisitor.h +0 -816
- data/ext/express-parser/antlrgen/ExpressLexer.cpp +0 -1169
- data/ext/express-parser/antlrgen/ExpressLexer.h +0 -85
- data/ext/express-parser/antlrgen/ExpressLexer.interp +0 -534
- data/ext/express-parser/antlrgen/ExpressLexer.tokens +0 -190
- data/ext/express-parser/antlrgen/ExpressListener.cpp +0 -7
- data/ext/express-parser/antlrgen/ExpressListener.h +0 -616
- data/ext/express-parser/antlrgen/ExpressParser.cpp +0 -17284
- data/ext/express-parser/antlrgen/ExpressParser.h +0 -3696
- data/ext/express-parser/antlrgen/ExpressVisitor.cpp +0 -7
- data/ext/express-parser/antlrgen/ExpressVisitor.h +0 -422
- data/ext/express-parser/express_parser.cpp +0 -17931
- data/ext/express-parser/extconf.rb +0 -34
- data/lib/express_parser.so +0 -0
@@ -1,12 +0,0 @@
|
|
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 "atn/PlusBlockStartState.h"
|
7
|
-
|
8
|
-
using namespace antlr4::atn;
|
9
|
-
|
10
|
-
size_t PlusBlockStartState::getStateType() {
|
11
|
-
return PLUS_BLOCK_START;
|
12
|
-
}
|
@@ -1,25 +0,0 @@
|
|
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 "atn/BlockStartState.h"
|
9
|
-
|
10
|
-
namespace antlr4 {
|
11
|
-
namespace atn {
|
12
|
-
|
13
|
-
/// Start of {@code (A|B|...)+} loop. Technically a decision state, but
|
14
|
-
/// we don't use for code generation; somebody might need it, so I'm defining
|
15
|
-
/// it for completeness. In reality, the <seealso cref="PlusLoopbackState"/> node is the
|
16
|
-
/// real decision-making note for {@code A+}.
|
17
|
-
class ANTLR4CPP_PUBLIC PlusBlockStartState final : public BlockStartState {
|
18
|
-
public:
|
19
|
-
PlusLoopbackState *loopBackState = nullptr;
|
20
|
-
|
21
|
-
virtual size_t getStateType() override;
|
22
|
-
};
|
23
|
-
|
24
|
-
} // namespace atn
|
25
|
-
} // namespace antlr4
|
@@ -1,12 +0,0 @@
|
|
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 "atn/PlusLoopbackState.h"
|
7
|
-
|
8
|
-
using namespace antlr4::atn;
|
9
|
-
|
10
|
-
size_t PlusLoopbackState::getStateType() {
|
11
|
-
return PLUS_LOOP_BACK;
|
12
|
-
}
|
@@ -1,22 +0,0 @@
|
|
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 "atn/DecisionState.h"
|
9
|
-
|
10
|
-
namespace antlr4 {
|
11
|
-
namespace atn {
|
12
|
-
|
13
|
-
/// Decision state for {@code A+} and {@code (A|B)+}. It has two transitions:
|
14
|
-
/// one to the loop back to start of the block and one to exit.
|
15
|
-
class ANTLR4CPP_PUBLIC PlusLoopbackState final : public DecisionState {
|
16
|
-
|
17
|
-
public:
|
18
|
-
virtual size_t getStateType() override;
|
19
|
-
};
|
20
|
-
|
21
|
-
} // namespace atn
|
22
|
-
} // namespace antlr4
|
@@ -1,32 +0,0 @@
|
|
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 "atn/PrecedencePredicateTransition.h"
|
7
|
-
|
8
|
-
using namespace antlr4::atn;
|
9
|
-
|
10
|
-
PrecedencePredicateTransition::PrecedencePredicateTransition(ATNState *target, int precedence)
|
11
|
-
: AbstractPredicateTransition(target), precedence(precedence) {
|
12
|
-
}
|
13
|
-
|
14
|
-
Transition::SerializationType PrecedencePredicateTransition::getSerializationType() const {
|
15
|
-
return PRECEDENCE;
|
16
|
-
}
|
17
|
-
|
18
|
-
bool PrecedencePredicateTransition::isEpsilon() const {
|
19
|
-
return true;
|
20
|
-
}
|
21
|
-
|
22
|
-
bool PrecedencePredicateTransition::matches(size_t /*symbol*/, size_t /*minVocabSymbol*/, size_t /*maxVocabSymbol*/) const {
|
23
|
-
return false;
|
24
|
-
}
|
25
|
-
|
26
|
-
Ref<SemanticContext::PrecedencePredicate> PrecedencePredicateTransition::getPredicate() const {
|
27
|
-
return std::make_shared<SemanticContext::PrecedencePredicate>(precedence);
|
28
|
-
}
|
29
|
-
|
30
|
-
std::string PrecedencePredicateTransition::toString() const {
|
31
|
-
return "PRECEDENCE " + Transition::toString() + " { precedence: " + std::to_string(precedence) + " }";
|
32
|
-
}
|
data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h
DELETED
@@ -1,29 +0,0 @@
|
|
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 "atn/AbstractPredicateTransition.h"
|
9
|
-
#include "SemanticContext.h"
|
10
|
-
|
11
|
-
namespace antlr4 {
|
12
|
-
namespace atn {
|
13
|
-
|
14
|
-
class ANTLR4CPP_PUBLIC PrecedencePredicateTransition final : public AbstractPredicateTransition {
|
15
|
-
public:
|
16
|
-
const int precedence;
|
17
|
-
|
18
|
-
PrecedencePredicateTransition(ATNState *target, int precedence);
|
19
|
-
|
20
|
-
virtual SerializationType getSerializationType() const override;
|
21
|
-
virtual bool isEpsilon() const override;
|
22
|
-
virtual bool matches(size_t symbol, size_t minVocabSymbol, size_t maxVocabSymbol) const override;
|
23
|
-
Ref<SemanticContext::PrecedencePredicate> getPredicate() const;
|
24
|
-
virtual std::string toString() const override;
|
25
|
-
|
26
|
-
};
|
27
|
-
|
28
|
-
} // namespace atn
|
29
|
-
} // namespace antlr4
|
@@ -1,17 +0,0 @@
|
|
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 "SemanticContext.h"
|
7
|
-
|
8
|
-
#include "atn/PredicateEvalInfo.h"
|
9
|
-
|
10
|
-
using namespace antlr4;
|
11
|
-
using namespace antlr4::atn;
|
12
|
-
|
13
|
-
PredicateEvalInfo::PredicateEvalInfo(size_t decision, TokenStream *input, size_t startIndex, size_t stopIndex,
|
14
|
-
Ref<SemanticContext> const& semctx, bool evalResult, size_t predictedAlt, bool fullCtx)
|
15
|
-
: DecisionEventInfo(decision, nullptr, input, startIndex, stopIndex, fullCtx),
|
16
|
-
semctx(semctx), predictedAlt(predictedAlt), evalResult(evalResult) {
|
17
|
-
}
|
@@ -1,62 +0,0 @@
|
|
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 "atn/DecisionEventInfo.h"
|
9
|
-
|
10
|
-
namespace antlr4 {
|
11
|
-
namespace atn {
|
12
|
-
|
13
|
-
/// <summary>
|
14
|
-
/// This class represents profiling event information for semantic predicate
|
15
|
-
/// evaluations which occur during prediction.
|
16
|
-
/// </summary>
|
17
|
-
/// <seealso cref= ParserATNSimulator#evalSemanticContext
|
18
|
-
///
|
19
|
-
/// @since 4.3 </seealso>
|
20
|
-
class ANTLR4CPP_PUBLIC PredicateEvalInfo : public DecisionEventInfo {
|
21
|
-
public:
|
22
|
-
/// The semantic context which was evaluated.
|
23
|
-
const Ref<SemanticContext> semctx;
|
24
|
-
|
25
|
-
/// <summary>
|
26
|
-
/// The alternative number for the decision which is guarded by the semantic
|
27
|
-
/// context <seealso cref="#semctx"/>. Note that other ATN
|
28
|
-
/// configurations may predict the same alternative which are guarded by
|
29
|
-
/// other semantic contexts and/or <seealso cref="SemanticContext#NONE"/>.
|
30
|
-
/// </summary>
|
31
|
-
const size_t predictedAlt;
|
32
|
-
|
33
|
-
/// The result of evaluating the semantic context <seealso cref="#semctx"/>.
|
34
|
-
const bool evalResult;
|
35
|
-
|
36
|
-
/// <summary>
|
37
|
-
/// Constructs a new instance of the <seealso cref="PredicateEvalInfo"/> class with the
|
38
|
-
/// specified detailed predicate evaluation information.
|
39
|
-
/// </summary>
|
40
|
-
/// <param name="decision"> The decision number </param>
|
41
|
-
/// <param name="input"> The input token stream </param>
|
42
|
-
/// <param name="startIndex"> The start index for the current prediction </param>
|
43
|
-
/// <param name="stopIndex"> The index at which the predicate evaluation was
|
44
|
-
/// triggered. Note that the input stream may be reset to other positions for
|
45
|
-
/// the actual evaluation of individual predicates. </param>
|
46
|
-
/// <param name="semctx"> The semantic context which was evaluated </param>
|
47
|
-
/// <param name="evalResult"> The results of evaluating the semantic context </param>
|
48
|
-
/// <param name="predictedAlt"> The alternative number for the decision which is
|
49
|
-
/// guarded by the semantic context {@code semctx}. See <seealso cref="#predictedAlt"/>
|
50
|
-
/// for more information. </param>
|
51
|
-
/// <param name="fullCtx"> {@code true} if the semantic context was
|
52
|
-
/// evaluated during LL prediction; otherwise, {@code false} if the semantic
|
53
|
-
/// context was evaluated during SLL prediction
|
54
|
-
/// </param>
|
55
|
-
/// <seealso cref= ParserATNSimulator#evalSemanticContext(SemanticContext, ParserRuleContext, int, boolean) </seealso>
|
56
|
-
/// <seealso cref= SemanticContext#eval(Recognizer, RuleContext) </seealso>
|
57
|
-
PredicateEvalInfo(size_t decision, TokenStream *input, size_t startIndex, size_t stopIndex,
|
58
|
-
Ref<SemanticContext> const& semctx, bool evalResult, size_t predictedAlt, bool fullCtx);
|
59
|
-
};
|
60
|
-
|
61
|
-
} // namespace atn
|
62
|
-
} // namespace antlr4
|
@@ -1,34 +0,0 @@
|
|
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 "atn/PredicateTransition.h"
|
7
|
-
|
8
|
-
using namespace antlr4::atn;
|
9
|
-
|
10
|
-
PredicateTransition::PredicateTransition(ATNState *target, size_t ruleIndex, size_t predIndex, bool isCtxDependent) : AbstractPredicateTransition(target), ruleIndex(ruleIndex), predIndex(predIndex), isCtxDependent(isCtxDependent) {
|
11
|
-
}
|
12
|
-
|
13
|
-
Transition::SerializationType PredicateTransition::getSerializationType() const {
|
14
|
-
return PREDICATE;
|
15
|
-
}
|
16
|
-
|
17
|
-
bool PredicateTransition::isEpsilon() const {
|
18
|
-
return true;
|
19
|
-
}
|
20
|
-
|
21
|
-
bool PredicateTransition::matches(size_t /*symbol*/, size_t /*minVocabSymbol*/, size_t /*maxVocabSymbol*/) const {
|
22
|
-
return false;
|
23
|
-
}
|
24
|
-
|
25
|
-
Ref<SemanticContext::Predicate> PredicateTransition::getPredicate() const {
|
26
|
-
return std::make_shared<SemanticContext::Predicate>(ruleIndex, predIndex, isCtxDependent);
|
27
|
-
}
|
28
|
-
|
29
|
-
std::string PredicateTransition::toString() const {
|
30
|
-
return "PREDICATE " + Transition::toString() + " { ruleIndex: " + std::to_string(ruleIndex) +
|
31
|
-
", predIndex: " + std::to_string(predIndex) + ", isCtxDependent: " + std::to_string(isCtxDependent) + " }";
|
32
|
-
|
33
|
-
// Generate and add a predicate context here?
|
34
|
-
}
|
@@ -1,39 +0,0 @@
|
|
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 "atn/AbstractPredicateTransition.h"
|
9
|
-
#include "SemanticContext.h"
|
10
|
-
|
11
|
-
namespace antlr4 {
|
12
|
-
namespace atn {
|
13
|
-
|
14
|
-
/// TODO: this is old comment:
|
15
|
-
/// A tree of semantic predicates from the grammar AST if label==SEMPRED.
|
16
|
-
/// In the ATN, labels will always be exactly one predicate, but the DFA
|
17
|
-
/// may have to combine a bunch of them as it collects predicates from
|
18
|
-
/// multiple ATN configurations into a single DFA state.
|
19
|
-
class ANTLR4CPP_PUBLIC PredicateTransition final : public AbstractPredicateTransition {
|
20
|
-
public:
|
21
|
-
const size_t ruleIndex;
|
22
|
-
const size_t predIndex;
|
23
|
-
const bool isCtxDependent; // e.g., $i ref in pred
|
24
|
-
|
25
|
-
PredicateTransition(ATNState *target, size_t ruleIndex, size_t predIndex, bool isCtxDependent);
|
26
|
-
|
27
|
-
virtual SerializationType getSerializationType() const override;
|
28
|
-
|
29
|
-
virtual bool isEpsilon() const override;
|
30
|
-
virtual bool matches(size_t symbol, size_t minVocabSymbol, size_t maxVocabSymbol) const override;
|
31
|
-
|
32
|
-
Ref<SemanticContext::Predicate> getPredicate() const;
|
33
|
-
|
34
|
-
virtual std::string toString() const override;
|
35
|
-
|
36
|
-
};
|
37
|
-
|
38
|
-
} // namespace atn
|
39
|
-
} // namespace antlr4
|
@@ -1,662 +0,0 @@
|
|
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 "atn/EmptyPredictionContext.h"
|
7
|
-
#include "misc/MurmurHash.h"
|
8
|
-
#include "atn/ArrayPredictionContext.h"
|
9
|
-
#include "RuleContext.h"
|
10
|
-
#include "ParserRuleContext.h"
|
11
|
-
#include "atn/RuleTransition.h"
|
12
|
-
#include "support/Arrays.h"
|
13
|
-
#include "support/CPPUtils.h"
|
14
|
-
|
15
|
-
#include "atn/PredictionContext.h"
|
16
|
-
|
17
|
-
using namespace antlr4;
|
18
|
-
using namespace antlr4::misc;
|
19
|
-
using namespace antlr4::atn;
|
20
|
-
|
21
|
-
using namespace antlrcpp;
|
22
|
-
|
23
|
-
size_t PredictionContext::globalNodeCount = 0;
|
24
|
-
const Ref<PredictionContext> PredictionContext::EMPTY = std::make_shared<EmptyPredictionContext>();
|
25
|
-
|
26
|
-
//----------------- PredictionContext ----------------------------------------------------------------------------------
|
27
|
-
|
28
|
-
PredictionContext::PredictionContext(size_t cachedHashCode) : id(globalNodeCount++), cachedHashCode(cachedHashCode) {
|
29
|
-
}
|
30
|
-
|
31
|
-
PredictionContext::~PredictionContext() {
|
32
|
-
}
|
33
|
-
|
34
|
-
Ref<PredictionContext> PredictionContext::fromRuleContext(const ATN &atn, RuleContext *outerContext) {
|
35
|
-
if (outerContext == nullptr) {
|
36
|
-
return PredictionContext::EMPTY;
|
37
|
-
}
|
38
|
-
|
39
|
-
// if we are in RuleContext of start rule, s, then PredictionContext
|
40
|
-
// is EMPTY. Nobody called us. (if we are empty, return empty)
|
41
|
-
if (outerContext->parent == nullptr || outerContext == &ParserRuleContext::EMPTY) {
|
42
|
-
return PredictionContext::EMPTY;
|
43
|
-
}
|
44
|
-
|
45
|
-
// If we have a parent, convert it to a PredictionContext graph
|
46
|
-
Ref<PredictionContext> parent = PredictionContext::fromRuleContext(atn, dynamic_cast<RuleContext *>(outerContext->parent));
|
47
|
-
|
48
|
-
ATNState *state = atn.states.at(outerContext->invokingState);
|
49
|
-
RuleTransition *transition = (RuleTransition *)state->transitions[0];
|
50
|
-
return SingletonPredictionContext::create(parent, transition->followState->stateNumber);
|
51
|
-
}
|
52
|
-
|
53
|
-
bool PredictionContext::isEmpty() const {
|
54
|
-
return this == EMPTY.get();
|
55
|
-
}
|
56
|
-
|
57
|
-
bool PredictionContext::hasEmptyPath() const {
|
58
|
-
// since EMPTY_RETURN_STATE can only appear in the last position, we check last one
|
59
|
-
return getReturnState(size() - 1) == EMPTY_RETURN_STATE;
|
60
|
-
}
|
61
|
-
|
62
|
-
size_t PredictionContext::hashCode() const {
|
63
|
-
return cachedHashCode;
|
64
|
-
}
|
65
|
-
|
66
|
-
size_t PredictionContext::calculateEmptyHashCode() {
|
67
|
-
size_t hash = MurmurHash::initialize(INITIAL_HASH);
|
68
|
-
hash = MurmurHash::finish(hash, 0);
|
69
|
-
return hash;
|
70
|
-
}
|
71
|
-
|
72
|
-
size_t PredictionContext::calculateHashCode(Ref<PredictionContext> parent, size_t returnState) {
|
73
|
-
size_t hash = MurmurHash::initialize(INITIAL_HASH);
|
74
|
-
hash = MurmurHash::update(hash, parent);
|
75
|
-
hash = MurmurHash::update(hash, returnState);
|
76
|
-
hash = MurmurHash::finish(hash, 2);
|
77
|
-
return hash;
|
78
|
-
}
|
79
|
-
|
80
|
-
size_t PredictionContext::calculateHashCode(const std::vector<Ref<PredictionContext>> &parents,
|
81
|
-
const std::vector<size_t> &returnStates) {
|
82
|
-
size_t hash = MurmurHash::initialize(INITIAL_HASH);
|
83
|
-
|
84
|
-
for (auto parent : parents) {
|
85
|
-
hash = MurmurHash::update(hash, parent);
|
86
|
-
}
|
87
|
-
|
88
|
-
for (auto returnState : returnStates) {
|
89
|
-
hash = MurmurHash::update(hash, returnState);
|
90
|
-
}
|
91
|
-
|
92
|
-
return MurmurHash::finish(hash, parents.size() + returnStates.size());
|
93
|
-
}
|
94
|
-
|
95
|
-
Ref<PredictionContext> PredictionContext::merge(const Ref<PredictionContext> &a,
|
96
|
-
const Ref<PredictionContext> &b, bool rootIsWildcard, PredictionContextMergeCache *mergeCache) {
|
97
|
-
assert(a && b);
|
98
|
-
|
99
|
-
// share same graph if both same
|
100
|
-
if (a == b || *a == *b) {
|
101
|
-
return a;
|
102
|
-
}
|
103
|
-
|
104
|
-
if (is<SingletonPredictionContext>(a) && is<SingletonPredictionContext>(b)) {
|
105
|
-
return mergeSingletons(std::dynamic_pointer_cast<SingletonPredictionContext>(a),
|
106
|
-
std::dynamic_pointer_cast<SingletonPredictionContext>(b), rootIsWildcard, mergeCache);
|
107
|
-
}
|
108
|
-
|
109
|
-
// At least one of a or b is array.
|
110
|
-
// If one is $ and rootIsWildcard, return $ as * wildcard.
|
111
|
-
if (rootIsWildcard) {
|
112
|
-
if (is<EmptyPredictionContext>(a)) {
|
113
|
-
return a;
|
114
|
-
}
|
115
|
-
if (is<EmptyPredictionContext>(b)) {
|
116
|
-
return b;
|
117
|
-
}
|
118
|
-
}
|
119
|
-
|
120
|
-
// convert singleton so both are arrays to normalize
|
121
|
-
Ref<ArrayPredictionContext> left;
|
122
|
-
if (is<SingletonPredictionContext>(a)) {
|
123
|
-
left = std::make_shared<ArrayPredictionContext>(std::dynamic_pointer_cast<SingletonPredictionContext>(a));
|
124
|
-
} else {
|
125
|
-
left = std::dynamic_pointer_cast<ArrayPredictionContext>(a);
|
126
|
-
}
|
127
|
-
Ref<ArrayPredictionContext> right;
|
128
|
-
if (is<SingletonPredictionContext>(b)) {
|
129
|
-
right = std::make_shared<ArrayPredictionContext>(std::dynamic_pointer_cast<SingletonPredictionContext>(b));
|
130
|
-
} else {
|
131
|
-
right = std::dynamic_pointer_cast<ArrayPredictionContext>(b);
|
132
|
-
}
|
133
|
-
return mergeArrays(left, right, rootIsWildcard, mergeCache);
|
134
|
-
}
|
135
|
-
|
136
|
-
Ref<PredictionContext> PredictionContext::mergeSingletons(const Ref<SingletonPredictionContext> &a,
|
137
|
-
const Ref<SingletonPredictionContext> &b, bool rootIsWildcard, PredictionContextMergeCache *mergeCache) {
|
138
|
-
|
139
|
-
if (mergeCache != nullptr) { // Can be null if not given to the ATNState from which this call originates.
|
140
|
-
auto existing = mergeCache->get(a, b);
|
141
|
-
if (existing) {
|
142
|
-
return existing;
|
143
|
-
}
|
144
|
-
existing = mergeCache->get(b, a);
|
145
|
-
if (existing) {
|
146
|
-
return existing;
|
147
|
-
}
|
148
|
-
}
|
149
|
-
|
150
|
-
Ref<PredictionContext> rootMerge = mergeRoot(a, b, rootIsWildcard);
|
151
|
-
if (rootMerge) {
|
152
|
-
if (mergeCache != nullptr) {
|
153
|
-
mergeCache->put(a, b, rootMerge);
|
154
|
-
}
|
155
|
-
return rootMerge;
|
156
|
-
}
|
157
|
-
|
158
|
-
Ref<PredictionContext> parentA = a->parent;
|
159
|
-
Ref<PredictionContext> parentB = b->parent;
|
160
|
-
if (a->returnState == b->returnState) { // a == b
|
161
|
-
Ref<PredictionContext> parent = merge(parentA, parentB, rootIsWildcard, mergeCache);
|
162
|
-
|
163
|
-
// If parent is same as existing a or b parent or reduced to a parent, return it.
|
164
|
-
if (parent == parentA) { // ax + bx = ax, if a=b
|
165
|
-
return a;
|
166
|
-
}
|
167
|
-
if (parent == parentB) { // ax + bx = bx, if a=b
|
168
|
-
return b;
|
169
|
-
}
|
170
|
-
|
171
|
-
// else: ax + ay = a'[x,y]
|
172
|
-
// merge parents x and y, giving array node with x,y then remainders
|
173
|
-
// of those graphs. dup a, a' points at merged array
|
174
|
-
// new joined parent so create new singleton pointing to it, a'
|
175
|
-
Ref<PredictionContext> a_ = SingletonPredictionContext::create(parent, a->returnState);
|
176
|
-
if (mergeCache != nullptr) {
|
177
|
-
mergeCache->put(a, b, a_);
|
178
|
-
}
|
179
|
-
return a_;
|
180
|
-
} else {
|
181
|
-
// a != b payloads differ
|
182
|
-
// see if we can collapse parents due to $+x parents if local ctx
|
183
|
-
Ref<PredictionContext> singleParent;
|
184
|
-
if (a == b || (*parentA == *parentB)) { // ax + bx = [a,b]x
|
185
|
-
singleParent = parentA;
|
186
|
-
}
|
187
|
-
if (singleParent) { // parents are same, sort payloads and use same parent
|
188
|
-
std::vector<size_t> payloads = { a->returnState, b->returnState };
|
189
|
-
if (a->returnState > b->returnState) {
|
190
|
-
payloads[0] = b->returnState;
|
191
|
-
payloads[1] = a->returnState;
|
192
|
-
}
|
193
|
-
std::vector<Ref<PredictionContext>> parents = { singleParent, singleParent };
|
194
|
-
Ref<PredictionContext> a_ = std::make_shared<ArrayPredictionContext>(parents, payloads);
|
195
|
-
if (mergeCache != nullptr) {
|
196
|
-
mergeCache->put(a, b, a_);
|
197
|
-
}
|
198
|
-
return a_;
|
199
|
-
}
|
200
|
-
|
201
|
-
// parents differ and can't merge them. Just pack together
|
202
|
-
// into array; can't merge.
|
203
|
-
// ax + by = [ax,by]
|
204
|
-
Ref<PredictionContext> a_;
|
205
|
-
if (a->returnState > b->returnState) { // sort by payload
|
206
|
-
std::vector<size_t> payloads = { b->returnState, a->returnState };
|
207
|
-
std::vector<Ref<PredictionContext>> parents = { b->parent, a->parent };
|
208
|
-
a_ = std::make_shared<ArrayPredictionContext>(parents, payloads);
|
209
|
-
} else {
|
210
|
-
std::vector<size_t> payloads = {a->returnState, b->returnState};
|
211
|
-
std::vector<Ref<PredictionContext>> parents = { a->parent, b->parent };
|
212
|
-
a_ = std::make_shared<ArrayPredictionContext>(parents, payloads);
|
213
|
-
}
|
214
|
-
|
215
|
-
if (mergeCache != nullptr) {
|
216
|
-
mergeCache->put(a, b, a_);
|
217
|
-
}
|
218
|
-
return a_;
|
219
|
-
}
|
220
|
-
}
|
221
|
-
|
222
|
-
Ref<PredictionContext> PredictionContext::mergeRoot(const Ref<SingletonPredictionContext> &a,
|
223
|
-
const Ref<SingletonPredictionContext> &b, bool rootIsWildcard) {
|
224
|
-
if (rootIsWildcard) {
|
225
|
-
if (a == EMPTY) { // * + b = *
|
226
|
-
return EMPTY;
|
227
|
-
}
|
228
|
-
if (b == EMPTY) { // a + * = *
|
229
|
-
return EMPTY;
|
230
|
-
}
|
231
|
-
} else {
|
232
|
-
if (a == EMPTY && b == EMPTY) { // $ + $ = $
|
233
|
-
return EMPTY;
|
234
|
-
}
|
235
|
-
if (a == EMPTY) { // $ + x = [$,x]
|
236
|
-
std::vector<size_t> payloads = { b->returnState, EMPTY_RETURN_STATE };
|
237
|
-
std::vector<Ref<PredictionContext>> parents = { b->parent, nullptr };
|
238
|
-
Ref<PredictionContext> joined = std::make_shared<ArrayPredictionContext>(parents, payloads);
|
239
|
-
return joined;
|
240
|
-
}
|
241
|
-
if (b == EMPTY) { // x + $ = [$,x] ($ is always first if present)
|
242
|
-
std::vector<size_t> payloads = { a->returnState, EMPTY_RETURN_STATE };
|
243
|
-
std::vector<Ref<PredictionContext>> parents = { a->parent, nullptr };
|
244
|
-
Ref<PredictionContext> joined = std::make_shared<ArrayPredictionContext>(parents, payloads);
|
245
|
-
return joined;
|
246
|
-
}
|
247
|
-
}
|
248
|
-
return nullptr;
|
249
|
-
}
|
250
|
-
|
251
|
-
Ref<PredictionContext> PredictionContext::mergeArrays(const Ref<ArrayPredictionContext> &a,
|
252
|
-
const Ref<ArrayPredictionContext> &b, bool rootIsWildcard, PredictionContextMergeCache *mergeCache) {
|
253
|
-
|
254
|
-
if (mergeCache != nullptr) {
|
255
|
-
auto existing = mergeCache->get(a, b);
|
256
|
-
if (existing) {
|
257
|
-
return existing;
|
258
|
-
}
|
259
|
-
existing = mergeCache->get(b, a);
|
260
|
-
if (existing) {
|
261
|
-
return existing;
|
262
|
-
}
|
263
|
-
}
|
264
|
-
|
265
|
-
// merge sorted payloads a + b => M
|
266
|
-
size_t i = 0; // walks a
|
267
|
-
size_t j = 0; // walks b
|
268
|
-
size_t k = 0; // walks target M array
|
269
|
-
|
270
|
-
std::vector<size_t> mergedReturnStates(a->returnStates.size() + b->returnStates.size());
|
271
|
-
std::vector<Ref<PredictionContext>> mergedParents(a->returnStates.size() + b->returnStates.size());
|
272
|
-
|
273
|
-
// walk and merge to yield mergedParents, mergedReturnStates
|
274
|
-
while (i < a->returnStates.size() && j < b->returnStates.size()) {
|
275
|
-
Ref<PredictionContext> a_parent = a->parents[i];
|
276
|
-
Ref<PredictionContext> b_parent = b->parents[j];
|
277
|
-
if (a->returnStates[i] == b->returnStates[j]) {
|
278
|
-
// same payload (stack tops are equal), must yield merged singleton
|
279
|
-
size_t payload = a->returnStates[i];
|
280
|
-
// $+$ = $
|
281
|
-
bool both$ = payload == EMPTY_RETURN_STATE && !a_parent && !b_parent;
|
282
|
-
bool ax_ax = (a_parent && b_parent) && *a_parent == *b_parent; // ax+ax -> ax
|
283
|
-
if (both$ || ax_ax) {
|
284
|
-
mergedParents[k] = a_parent; // choose left
|
285
|
-
mergedReturnStates[k] = payload;
|
286
|
-
}
|
287
|
-
else { // ax+ay -> a'[x,y]
|
288
|
-
Ref<PredictionContext> mergedParent = merge(a_parent, b_parent, rootIsWildcard, mergeCache);
|
289
|
-
mergedParents[k] = mergedParent;
|
290
|
-
mergedReturnStates[k] = payload;
|
291
|
-
}
|
292
|
-
i++; // hop over left one as usual
|
293
|
-
j++; // but also skip one in right side since we merge
|
294
|
-
} else if (a->returnStates[i] < b->returnStates[j]) { // copy a[i] to M
|
295
|
-
mergedParents[k] = a_parent;
|
296
|
-
mergedReturnStates[k] = a->returnStates[i];
|
297
|
-
i++;
|
298
|
-
}
|
299
|
-
else { // b > a, copy b[j] to M
|
300
|
-
mergedParents[k] = b_parent;
|
301
|
-
mergedReturnStates[k] = b->returnStates[j];
|
302
|
-
j++;
|
303
|
-
}
|
304
|
-
k++;
|
305
|
-
}
|
306
|
-
|
307
|
-
// copy over any payloads remaining in either array
|
308
|
-
if (i < a->returnStates.size()) {
|
309
|
-
for (std::vector<int>::size_type p = i; p < a->returnStates.size(); p++) {
|
310
|
-
mergedParents[k] = a->parents[p];
|
311
|
-
mergedReturnStates[k] = a->returnStates[p];
|
312
|
-
k++;
|
313
|
-
}
|
314
|
-
} else {
|
315
|
-
for (std::vector<int>::size_type p = j; p < b->returnStates.size(); p++) {
|
316
|
-
mergedParents[k] = b->parents[p];
|
317
|
-
mergedReturnStates[k] = b->returnStates[p];
|
318
|
-
k++;
|
319
|
-
}
|
320
|
-
}
|
321
|
-
|
322
|
-
// trim merged if we combined a few that had same stack tops
|
323
|
-
if (k < mergedParents.size()) { // write index < last position; trim
|
324
|
-
if (k == 1) { // for just one merged element, return singleton top
|
325
|
-
Ref<PredictionContext> a_ = SingletonPredictionContext::create(mergedParents[0], mergedReturnStates[0]);
|
326
|
-
if (mergeCache != nullptr) {
|
327
|
-
mergeCache->put(a, b, a_);
|
328
|
-
}
|
329
|
-
return a_;
|
330
|
-
}
|
331
|
-
mergedParents.resize(k);
|
332
|
-
mergedReturnStates.resize(k);
|
333
|
-
}
|
334
|
-
|
335
|
-
Ref<ArrayPredictionContext> M = std::make_shared<ArrayPredictionContext>(mergedParents, mergedReturnStates);
|
336
|
-
|
337
|
-
// if we created same array as a or b, return that instead
|
338
|
-
// TODO: track whether this is possible above during merge sort for speed
|
339
|
-
if (*M == *a) {
|
340
|
-
if (mergeCache != nullptr) {
|
341
|
-
mergeCache->put(a, b, a);
|
342
|
-
}
|
343
|
-
return a;
|
344
|
-
}
|
345
|
-
if (*M == *b) {
|
346
|
-
if (mergeCache != nullptr) {
|
347
|
-
mergeCache->put(a, b, b);
|
348
|
-
}
|
349
|
-
return b;
|
350
|
-
}
|
351
|
-
|
352
|
-
// ml: this part differs from Java code. We have to recreate the context as the parents array is copied on creation.
|
353
|
-
if (combineCommonParents(mergedParents)) {
|
354
|
-
mergedReturnStates.resize(mergedParents.size());
|
355
|
-
M = std::make_shared<ArrayPredictionContext>(mergedParents, mergedReturnStates);
|
356
|
-
}
|
357
|
-
|
358
|
-
if (mergeCache != nullptr) {
|
359
|
-
mergeCache->put(a, b, M);
|
360
|
-
}
|
361
|
-
return M;
|
362
|
-
}
|
363
|
-
|
364
|
-
bool PredictionContext::combineCommonParents(std::vector<Ref<PredictionContext>> &parents) {
|
365
|
-
|
366
|
-
std::set<Ref<PredictionContext>> uniqueParents;
|
367
|
-
for (size_t p = 0; p < parents.size(); ++p) {
|
368
|
-
Ref<PredictionContext> parent = parents[p];
|
369
|
-
if (uniqueParents.find(parent) == uniqueParents.end()) { // don't replace
|
370
|
-
uniqueParents.insert(parent);
|
371
|
-
}
|
372
|
-
}
|
373
|
-
|
374
|
-
for (size_t p = 0; p < parents.size(); ++p) {
|
375
|
-
parents[p] = *uniqueParents.find(parents[p]);
|
376
|
-
}
|
377
|
-
|
378
|
-
return true;
|
379
|
-
}
|
380
|
-
|
381
|
-
std::string PredictionContext::toDOTString(const Ref<PredictionContext> &context) {
|
382
|
-
if (context == nullptr) {
|
383
|
-
return "";
|
384
|
-
}
|
385
|
-
|
386
|
-
std::stringstream ss;
|
387
|
-
ss << "digraph G {\n" << "rankdir=LR;\n";
|
388
|
-
|
389
|
-
std::vector<Ref<PredictionContext>> nodes = getAllContextNodes(context);
|
390
|
-
std::sort(nodes.begin(), nodes.end(), [](const Ref<PredictionContext> &o1, const Ref<PredictionContext> &o2) {
|
391
|
-
return o1->id - o2->id;
|
392
|
-
});
|
393
|
-
|
394
|
-
for (auto current : nodes) {
|
395
|
-
if (is<SingletonPredictionContext>(current)) {
|
396
|
-
std::string s = std::to_string(current->id);
|
397
|
-
ss << " s" << s;
|
398
|
-
std::string returnState = std::to_string(current->getReturnState(0));
|
399
|
-
if (is<EmptyPredictionContext>(current)) {
|
400
|
-
returnState = "$";
|
401
|
-
}
|
402
|
-
ss << " [label=\"" << returnState << "\"];\n";
|
403
|
-
continue;
|
404
|
-
}
|
405
|
-
Ref<ArrayPredictionContext> arr = std::static_pointer_cast<ArrayPredictionContext>(current);
|
406
|
-
ss << " s" << arr->id << " [shape=box, label=\"" << "[";
|
407
|
-
bool first = true;
|
408
|
-
for (auto inv : arr->returnStates) {
|
409
|
-
if (!first) {
|
410
|
-
ss << ", ";
|
411
|
-
}
|
412
|
-
if (inv == EMPTY_RETURN_STATE) {
|
413
|
-
ss << "$";
|
414
|
-
} else {
|
415
|
-
ss << inv;
|
416
|
-
}
|
417
|
-
first = false;
|
418
|
-
}
|
419
|
-
ss << "]";
|
420
|
-
ss << "\"];\n";
|
421
|
-
}
|
422
|
-
|
423
|
-
for (auto current : nodes) {
|
424
|
-
if (current == EMPTY) {
|
425
|
-
continue;
|
426
|
-
}
|
427
|
-
for (size_t i = 0; i < current->size(); i++) {
|
428
|
-
if (!current->getParent(i)) {
|
429
|
-
continue;
|
430
|
-
}
|
431
|
-
ss << " s" << current->id << "->" << "s" << current->getParent(i)->id;
|
432
|
-
if (current->size() > 1) {
|
433
|
-
ss << " [label=\"parent[" << i << "]\"];\n";
|
434
|
-
} else {
|
435
|
-
ss << ";\n";
|
436
|
-
}
|
437
|
-
}
|
438
|
-
}
|
439
|
-
|
440
|
-
ss << "}\n";
|
441
|
-
return ss.str();
|
442
|
-
}
|
443
|
-
|
444
|
-
// The "visited" map is just a temporary structure to control the retrieval process (which is recursive).
|
445
|
-
Ref<PredictionContext> PredictionContext::getCachedContext(const Ref<PredictionContext> &context,
|
446
|
-
PredictionContextCache &contextCache, std::map<Ref<PredictionContext>, Ref<PredictionContext>> &visited) {
|
447
|
-
if (context->isEmpty()) {
|
448
|
-
return context;
|
449
|
-
}
|
450
|
-
|
451
|
-
{
|
452
|
-
auto iterator = visited.find(context);
|
453
|
-
if (iterator != visited.end())
|
454
|
-
return iterator->second; // Not necessarly the same as context.
|
455
|
-
}
|
456
|
-
|
457
|
-
auto iterator = contextCache.find(context);
|
458
|
-
if (iterator != contextCache.end()) {
|
459
|
-
visited[context] = *iterator;
|
460
|
-
|
461
|
-
return *iterator;
|
462
|
-
}
|
463
|
-
|
464
|
-
bool changed = false;
|
465
|
-
|
466
|
-
std::vector<Ref<PredictionContext>> parents(context->size());
|
467
|
-
for (size_t i = 0; i < parents.size(); i++) {
|
468
|
-
Ref<PredictionContext> parent = getCachedContext(context->getParent(i), contextCache, visited);
|
469
|
-
if (changed || parent != context->getParent(i)) {
|
470
|
-
if (!changed) {
|
471
|
-
parents.clear();
|
472
|
-
for (size_t j = 0; j < context->size(); j++) {
|
473
|
-
parents.push_back(context->getParent(j));
|
474
|
-
}
|
475
|
-
|
476
|
-
changed = true;
|
477
|
-
}
|
478
|
-
|
479
|
-
parents[i] = parent;
|
480
|
-
}
|
481
|
-
}
|
482
|
-
|
483
|
-
if (!changed) {
|
484
|
-
contextCache.insert(context);
|
485
|
-
visited[context] = context;
|
486
|
-
|
487
|
-
return context;
|
488
|
-
}
|
489
|
-
|
490
|
-
Ref<PredictionContext> updated;
|
491
|
-
if (parents.empty()) {
|
492
|
-
updated = EMPTY;
|
493
|
-
} else if (parents.size() == 1) {
|
494
|
-
updated = SingletonPredictionContext::create(parents[0], context->getReturnState(0));
|
495
|
-
contextCache.insert(updated);
|
496
|
-
} else {
|
497
|
-
updated = std::make_shared<ArrayPredictionContext>(parents, std::dynamic_pointer_cast<ArrayPredictionContext>(context)->returnStates);
|
498
|
-
contextCache.insert(updated);
|
499
|
-
}
|
500
|
-
|
501
|
-
visited[updated] = updated;
|
502
|
-
visited[context] = updated;
|
503
|
-
|
504
|
-
return updated;
|
505
|
-
}
|
506
|
-
|
507
|
-
std::vector<Ref<PredictionContext>> PredictionContext::getAllContextNodes(const Ref<PredictionContext> &context) {
|
508
|
-
std::vector<Ref<PredictionContext>> nodes;
|
509
|
-
std::set<PredictionContext *> visited;
|
510
|
-
getAllContextNodes_(context, nodes, visited);
|
511
|
-
return nodes;
|
512
|
-
}
|
513
|
-
|
514
|
-
|
515
|
-
void PredictionContext::getAllContextNodes_(const Ref<PredictionContext> &context, std::vector<Ref<PredictionContext>> &nodes,
|
516
|
-
std::set<PredictionContext *> &visited) {
|
517
|
-
|
518
|
-
if (visited.find(context.get()) != visited.end()) {
|
519
|
-
return; // Already done.
|
520
|
-
}
|
521
|
-
|
522
|
-
visited.insert(context.get());
|
523
|
-
nodes.push_back(context);
|
524
|
-
|
525
|
-
for (size_t i = 0; i < context->size(); i++) {
|
526
|
-
getAllContextNodes_(context->getParent(i), nodes, visited);
|
527
|
-
}
|
528
|
-
}
|
529
|
-
|
530
|
-
std::string PredictionContext::toString() const {
|
531
|
-
|
532
|
-
return antlrcpp::toString(this);
|
533
|
-
}
|
534
|
-
|
535
|
-
std::string PredictionContext::toString(Recognizer * /*recog*/) const {
|
536
|
-
return toString();
|
537
|
-
}
|
538
|
-
|
539
|
-
std::vector<std::string> PredictionContext::toStrings(Recognizer *recognizer, int currentState) {
|
540
|
-
return toStrings(recognizer, EMPTY, currentState);
|
541
|
-
}
|
542
|
-
|
543
|
-
std::vector<std::string> PredictionContext::toStrings(Recognizer *recognizer, const Ref<PredictionContext> &stop, int currentState) {
|
544
|
-
|
545
|
-
std::vector<std::string> result;
|
546
|
-
|
547
|
-
for (size_t perm = 0; ; perm++) {
|
548
|
-
size_t offset = 0;
|
549
|
-
bool last = true;
|
550
|
-
PredictionContext *p = this;
|
551
|
-
size_t stateNumber = currentState;
|
552
|
-
|
553
|
-
std::stringstream ss;
|
554
|
-
ss << "[";
|
555
|
-
bool outerContinue = false;
|
556
|
-
while (!p->isEmpty() && p != stop.get()) {
|
557
|
-
size_t index = 0;
|
558
|
-
if (p->size() > 0) {
|
559
|
-
size_t bits = 1;
|
560
|
-
while ((1ULL << bits) < p->size()) {
|
561
|
-
bits++;
|
562
|
-
}
|
563
|
-
|
564
|
-
size_t mask = (1 << bits) - 1;
|
565
|
-
index = (perm >> offset) & mask;
|
566
|
-
last &= index >= p->size() - 1;
|
567
|
-
if (index >= p->size()) {
|
568
|
-
outerContinue = true;
|
569
|
-
break;
|
570
|
-
}
|
571
|
-
offset += bits;
|
572
|
-
}
|
573
|
-
|
574
|
-
if (recognizer != nullptr) {
|
575
|
-
if (ss.tellp() > 1) {
|
576
|
-
// first char is '[', if more than that this isn't the first rule
|
577
|
-
ss << ' ';
|
578
|
-
}
|
579
|
-
|
580
|
-
const ATN &atn = recognizer->getATN();
|
581
|
-
ATNState *s = atn.states[stateNumber];
|
582
|
-
std::string ruleName = recognizer->getRuleNames()[s->ruleIndex];
|
583
|
-
ss << ruleName;
|
584
|
-
} else if (p->getReturnState(index) != EMPTY_RETURN_STATE) {
|
585
|
-
if (!p->isEmpty()) {
|
586
|
-
if (ss.tellp() > 1) {
|
587
|
-
// first char is '[', if more than that this isn't the first rule
|
588
|
-
ss << ' ';
|
589
|
-
}
|
590
|
-
|
591
|
-
ss << p->getReturnState(index);
|
592
|
-
}
|
593
|
-
}
|
594
|
-
stateNumber = p->getReturnState(index);
|
595
|
-
p = p->getParent(index).get();
|
596
|
-
}
|
597
|
-
|
598
|
-
if (outerContinue)
|
599
|
-
continue;
|
600
|
-
|
601
|
-
ss << "]";
|
602
|
-
result.push_back(ss.str());
|
603
|
-
|
604
|
-
if (last) {
|
605
|
-
break;
|
606
|
-
}
|
607
|
-
}
|
608
|
-
|
609
|
-
return result;
|
610
|
-
}
|
611
|
-
|
612
|
-
//----------------- PredictionContextMergeCache ------------------------------------------------------------------------
|
613
|
-
|
614
|
-
Ref<PredictionContext> PredictionContextMergeCache::put(Ref<PredictionContext> const& key1, Ref<PredictionContext> const& key2,
|
615
|
-
Ref<PredictionContext> const& value) {
|
616
|
-
Ref<PredictionContext> previous;
|
617
|
-
|
618
|
-
auto iterator = _data.find(key1);
|
619
|
-
if (iterator == _data.end())
|
620
|
-
_data[key1][key2] = value;
|
621
|
-
else {
|
622
|
-
auto iterator2 = iterator->second.find(key2);
|
623
|
-
if (iterator2 != iterator->second.end())
|
624
|
-
previous = iterator2->second;
|
625
|
-
iterator->second[key2] = value;
|
626
|
-
}
|
627
|
-
|
628
|
-
return previous;
|
629
|
-
}
|
630
|
-
|
631
|
-
Ref<PredictionContext> PredictionContextMergeCache::get(Ref<PredictionContext> const& key1, Ref<PredictionContext> const& key2) {
|
632
|
-
auto iterator = _data.find(key1);
|
633
|
-
if (iterator == _data.end())
|
634
|
-
return nullptr;
|
635
|
-
|
636
|
-
auto iterator2 = iterator->second.find(key2);
|
637
|
-
if (iterator2 == iterator->second.end())
|
638
|
-
return nullptr;
|
639
|
-
|
640
|
-
return iterator2->second;
|
641
|
-
}
|
642
|
-
|
643
|
-
void PredictionContextMergeCache::clear() {
|
644
|
-
_data.clear();
|
645
|
-
}
|
646
|
-
|
647
|
-
std::string PredictionContextMergeCache::toString() const {
|
648
|
-
std::string result;
|
649
|
-
for (auto pair : _data)
|
650
|
-
for (auto pair2 : pair.second)
|
651
|
-
result += pair2.second->toString() + "\n";
|
652
|
-
|
653
|
-
return result;
|
654
|
-
}
|
655
|
-
|
656
|
-
size_t PredictionContextMergeCache::count() const {
|
657
|
-
size_t result = 0;
|
658
|
-
for (auto entry : _data)
|
659
|
-
result += entry.second.size();
|
660
|
-
return result;
|
661
|
-
}
|
662
|
-
|