expressir 0.2.5-x64-mingw32 → 0.2.11-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 +2551 -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 +73 -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 +70 -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 +77 -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
data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h
DELETED
@@ -1,132 +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 "antlr4-common.h"
|
9
|
-
|
10
|
-
namespace antlr4 {
|
11
|
-
namespace tree {
|
12
|
-
namespace pattern {
|
13
|
-
|
14
|
-
/// Represents the result of matching a ParseTree against a tree pattern.
|
15
|
-
class ANTLR4CPP_PUBLIC ParseTreeMatch {
|
16
|
-
private:
|
17
|
-
/// This is the backing field for getTree().
|
18
|
-
ParseTree *_tree;
|
19
|
-
|
20
|
-
/// This is the backing field for getPattern().
|
21
|
-
const ParseTreePattern &_pattern;
|
22
|
-
|
23
|
-
/// This is the backing field for getLabels().
|
24
|
-
std::map<std::string, std::vector<ParseTree *>> _labels;
|
25
|
-
|
26
|
-
/// This is the backing field for getMismatchedNode().
|
27
|
-
ParseTree *_mismatchedNode;
|
28
|
-
|
29
|
-
public:
|
30
|
-
/// <summary>
|
31
|
-
/// Constructs a new instance of <seealso cref="ParseTreeMatch"/> from the specified
|
32
|
-
/// parse tree and pattern.
|
33
|
-
/// </summary>
|
34
|
-
/// <param name="tree"> The parse tree to match against the pattern. </param>
|
35
|
-
/// <param name="pattern"> The parse tree pattern. </param>
|
36
|
-
/// <param name="labels"> A mapping from label names to collections of
|
37
|
-
/// <seealso cref="ParseTree"/> objects located by the tree pattern matching process. </param>
|
38
|
-
/// <param name="mismatchedNode"> The first node which failed to match the tree
|
39
|
-
/// pattern during the matching process.
|
40
|
-
/// </param>
|
41
|
-
/// <exception cref="IllegalArgumentException"> if {@code tree} is {@code null} </exception>
|
42
|
-
/// <exception cref="IllegalArgumentException"> if {@code pattern} is {@code null} </exception>
|
43
|
-
/// <exception cref="IllegalArgumentException"> if {@code labels} is {@code null} </exception>
|
44
|
-
ParseTreeMatch(ParseTree *tree, ParseTreePattern const& pattern,
|
45
|
-
const std::map<std::string, std::vector<ParseTree *>> &labels, ParseTree *mismatchedNode);
|
46
|
-
ParseTreeMatch(ParseTreeMatch const&) = default;
|
47
|
-
virtual ~ParseTreeMatch();
|
48
|
-
|
49
|
-
/// <summary>
|
50
|
-
/// Get the last node associated with a specific {@code label}.
|
51
|
-
/// <p/>
|
52
|
-
/// For example, for pattern {@code <id:ID>}, {@code get("id")} returns the
|
53
|
-
/// node matched for that {@code ID}. If more than one node
|
54
|
-
/// matched the specified label, only the last is returned. If there is
|
55
|
-
/// no node associated with the label, this returns {@code null}.
|
56
|
-
/// <p/>
|
57
|
-
/// Pattern tags like {@code <ID>} and {@code <expr>} without labels are
|
58
|
-
/// considered to be labeled with {@code ID} and {@code expr}, respectively.
|
59
|
-
/// </summary>
|
60
|
-
/// <param name="labe"> The label to check.
|
61
|
-
/// </param>
|
62
|
-
/// <returns> The last <seealso cref="ParseTree"/> to match a tag with the specified
|
63
|
-
/// label, or {@code null} if no parse tree matched a tag with the label. </returns>
|
64
|
-
virtual ParseTree* get(const std::string &label);
|
65
|
-
|
66
|
-
/// <summary>
|
67
|
-
/// Return all nodes matching a rule or token tag with the specified label.
|
68
|
-
/// <p/>
|
69
|
-
/// If the {@code label} is the name of a parser rule or token in the
|
70
|
-
/// grammar, the resulting list will contain both the parse trees matching
|
71
|
-
/// rule or tags explicitly labeled with the label and the complete set of
|
72
|
-
/// parse trees matching the labeled and unlabeled tags in the pattern for
|
73
|
-
/// the parser rule or token. For example, if {@code label} is {@code "foo"},
|
74
|
-
/// the result will contain <em>all</em> of the following.
|
75
|
-
///
|
76
|
-
/// <ul>
|
77
|
-
/// <li>Parse tree nodes matching tags of the form {@code <foo:anyRuleName>} and
|
78
|
-
/// {@code <foo:AnyTokenName>}.</li>
|
79
|
-
/// <li>Parse tree nodes matching tags of the form {@code <anyLabel:foo>}.</li>
|
80
|
-
/// <li>Parse tree nodes matching tags of the form {@code <foo>}.</li>
|
81
|
-
/// </ul>
|
82
|
-
/// </summary>
|
83
|
-
/// <param name="labe"> The label.
|
84
|
-
/// </param>
|
85
|
-
/// <returns> A collection of all <seealso cref="ParseTree"/> nodes matching tags with
|
86
|
-
/// the specified {@code label}. If no nodes matched the label, an empty list
|
87
|
-
/// is returned. </returns>
|
88
|
-
virtual std::vector<ParseTree *> getAll(const std::string &label);
|
89
|
-
|
90
|
-
/// <summary>
|
91
|
-
/// Return a mapping from label → [list of nodes].
|
92
|
-
/// <p/>
|
93
|
-
/// The map includes special entries corresponding to the names of rules and
|
94
|
-
/// tokens referenced in tags in the original pattern. For additional
|
95
|
-
/// information, see the description of <seealso cref="#getAll(String)"/>.
|
96
|
-
/// </summary>
|
97
|
-
/// <returns> A mapping from labels to parse tree nodes. If the parse tree
|
98
|
-
/// pattern did not contain any rule or token tags, this map will be empty. </returns>
|
99
|
-
virtual std::map<std::string, std::vector<ParseTree *>>& getLabels();
|
100
|
-
|
101
|
-
/// <summary>
|
102
|
-
/// Get the node at which we first detected a mismatch.
|
103
|
-
/// </summary>
|
104
|
-
/// <returns> the node at which we first detected a mismatch, or {@code null}
|
105
|
-
/// if the match was successful. </returns>
|
106
|
-
virtual ParseTree* getMismatchedNode();
|
107
|
-
|
108
|
-
/// <summary>
|
109
|
-
/// Gets a value indicating whether the match operation succeeded.
|
110
|
-
/// </summary>
|
111
|
-
/// <returns> {@code true} if the match operation succeeded; otherwise,
|
112
|
-
/// {@code false}. </returns>
|
113
|
-
virtual bool succeeded();
|
114
|
-
|
115
|
-
/// <summary>
|
116
|
-
/// Get the tree pattern we are matching against.
|
117
|
-
/// </summary>
|
118
|
-
/// <returns> The tree pattern we are matching against. </returns>
|
119
|
-
virtual const ParseTreePattern& getPattern();
|
120
|
-
|
121
|
-
/// <summary>
|
122
|
-
/// Get the parse tree we are trying to match to a pattern.
|
123
|
-
/// </summary>
|
124
|
-
/// <returns> The <seealso cref="ParseTree"/> we are trying to match to a pattern. </returns>
|
125
|
-
virtual ParseTree* getTree();
|
126
|
-
|
127
|
-
virtual std::string toString();
|
128
|
-
};
|
129
|
-
|
130
|
-
} // namespace pattern
|
131
|
-
} // namespace tree
|
132
|
-
} // namespace antlr4
|
data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp
DELETED
@@ -1,64 +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 "tree/ParseTree.h"
|
7
|
-
#include "tree/pattern/ParseTreePatternMatcher.h"
|
8
|
-
#include "tree/pattern/ParseTreeMatch.h"
|
9
|
-
|
10
|
-
#include "tree/xpath/XPath.h"
|
11
|
-
#include "tree/xpath/XPathElement.h"
|
12
|
-
|
13
|
-
#include "tree/pattern/ParseTreePattern.h"
|
14
|
-
|
15
|
-
using namespace antlr4::tree;
|
16
|
-
using namespace antlr4::tree::pattern;
|
17
|
-
|
18
|
-
using namespace antlrcpp;
|
19
|
-
|
20
|
-
ParseTreePattern::ParseTreePattern(ParseTreePatternMatcher *matcher, const std::string &pattern, int patternRuleIndex_,
|
21
|
-
ParseTree *patternTree)
|
22
|
-
: patternRuleIndex(patternRuleIndex_), _pattern(pattern), _patternTree(patternTree), _matcher(matcher) {
|
23
|
-
}
|
24
|
-
|
25
|
-
ParseTreePattern::~ParseTreePattern() {
|
26
|
-
}
|
27
|
-
|
28
|
-
ParseTreeMatch ParseTreePattern::match(ParseTree *tree) {
|
29
|
-
return _matcher->match(tree, *this);
|
30
|
-
}
|
31
|
-
|
32
|
-
bool ParseTreePattern::matches(ParseTree *tree) {
|
33
|
-
return _matcher->match(tree, *this).succeeded();
|
34
|
-
}
|
35
|
-
|
36
|
-
std::vector<ParseTreeMatch> ParseTreePattern::findAll(ParseTree *tree, const std::string &xpath) {
|
37
|
-
xpath::XPath finder(_matcher->getParser(), xpath);
|
38
|
-
std::vector<ParseTree *> subtrees = finder.evaluate(tree);
|
39
|
-
std::vector<ParseTreeMatch> matches;
|
40
|
-
for (auto t : subtrees) {
|
41
|
-
ParseTreeMatch aMatch = match(t);
|
42
|
-
if (aMatch.succeeded()) {
|
43
|
-
matches.push_back(aMatch);
|
44
|
-
}
|
45
|
-
}
|
46
|
-
return matches;
|
47
|
-
}
|
48
|
-
|
49
|
-
|
50
|
-
ParseTreePatternMatcher *ParseTreePattern::getMatcher() const {
|
51
|
-
return _matcher;
|
52
|
-
}
|
53
|
-
|
54
|
-
std::string ParseTreePattern::getPattern() const {
|
55
|
-
return _pattern;
|
56
|
-
}
|
57
|
-
|
58
|
-
int ParseTreePattern::getPatternRuleIndex() const {
|
59
|
-
return patternRuleIndex;
|
60
|
-
}
|
61
|
-
|
62
|
-
ParseTree* ParseTreePattern::getPatternTree() const {
|
63
|
-
return _patternTree;
|
64
|
-
}
|
data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h
DELETED
@@ -1,105 +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 "antlr4-common.h"
|
9
|
-
|
10
|
-
namespace antlr4 {
|
11
|
-
namespace tree {
|
12
|
-
namespace pattern {
|
13
|
-
|
14
|
-
/// <summary>
|
15
|
-
/// A pattern like {@code <ID> = <expr>;} converted to a <seealso cref="ParseTree"/> by
|
16
|
-
/// <seealso cref="ParseTreePatternMatcher#compile(String, int)"/>.
|
17
|
-
/// </summary>
|
18
|
-
class ANTLR4CPP_PUBLIC ParseTreePattern {
|
19
|
-
public:
|
20
|
-
/// <summary>
|
21
|
-
/// Construct a new instance of the <seealso cref="ParseTreePattern"/> class.
|
22
|
-
/// </summary>
|
23
|
-
/// <param name="matcher"> The <seealso cref="ParseTreePatternMatcher"/> which created this
|
24
|
-
/// tree pattern. </param>
|
25
|
-
/// <param name="pattern"> The tree pattern in concrete syntax form. </param>
|
26
|
-
/// <param name="patternRuleIndex"> The parser rule which serves as the root of the
|
27
|
-
/// tree pattern. </param>
|
28
|
-
/// <param name="patternTree"> The tree pattern in <seealso cref="ParseTree"/> form. </param>
|
29
|
-
ParseTreePattern(ParseTreePatternMatcher *matcher, const std::string &pattern, int patternRuleIndex,
|
30
|
-
ParseTree *patternTree);
|
31
|
-
ParseTreePattern(ParseTreePattern const&) = default;
|
32
|
-
virtual ~ParseTreePattern();
|
33
|
-
|
34
|
-
/// <summary>
|
35
|
-
/// Match a specific parse tree against this tree pattern.
|
36
|
-
/// </summary>
|
37
|
-
/// <param name="tree"> The parse tree to match against this tree pattern. </param>
|
38
|
-
/// <returns> A <seealso cref="ParseTreeMatch"/> object describing the result of the
|
39
|
-
/// match operation. The <seealso cref="ParseTreeMatch#succeeded()"/> method can be
|
40
|
-
/// used to determine whether or not the match was successful. </returns>
|
41
|
-
virtual ParseTreeMatch match(ParseTree *tree);
|
42
|
-
|
43
|
-
/// <summary>
|
44
|
-
/// Determine whether or not a parse tree matches this tree pattern.
|
45
|
-
/// </summary>
|
46
|
-
/// <param name="tree"> The parse tree to match against this tree pattern. </param>
|
47
|
-
/// <returns> {@code true} if {@code tree} is a match for the current tree
|
48
|
-
/// pattern; otherwise, {@code false}. </returns>
|
49
|
-
virtual bool matches(ParseTree *tree);
|
50
|
-
|
51
|
-
/// Find all nodes using XPath and then try to match those subtrees against
|
52
|
-
/// this tree pattern.
|
53
|
-
/// @param tree The ParseTree to match against this pattern.
|
54
|
-
/// @param xpath An expression matching the nodes
|
55
|
-
///
|
56
|
-
/// @returns A collection of ParseTreeMatch objects describing the
|
57
|
-
/// successful matches. Unsuccessful matches are omitted from the result,
|
58
|
-
/// regardless of the reason for the failure.
|
59
|
-
virtual std::vector<ParseTreeMatch> findAll(ParseTree *tree, const std::string &xpath);
|
60
|
-
|
61
|
-
/// <summary>
|
62
|
-
/// Get the <seealso cref="ParseTreePatternMatcher"/> which created this tree pattern.
|
63
|
-
/// </summary>
|
64
|
-
/// <returns> The <seealso cref="ParseTreePatternMatcher"/> which created this tree
|
65
|
-
/// pattern. </returns>
|
66
|
-
virtual ParseTreePatternMatcher *getMatcher() const;
|
67
|
-
|
68
|
-
/// <summary>
|
69
|
-
/// Get the tree pattern in concrete syntax form.
|
70
|
-
/// </summary>
|
71
|
-
/// <returns> The tree pattern in concrete syntax form. </returns>
|
72
|
-
virtual std::string getPattern() const;
|
73
|
-
|
74
|
-
/// <summary>
|
75
|
-
/// Get the parser rule which serves as the outermost rule for the tree
|
76
|
-
/// pattern.
|
77
|
-
/// </summary>
|
78
|
-
/// <returns> The parser rule which serves as the outermost rule for the tree
|
79
|
-
/// pattern. </returns>
|
80
|
-
virtual int getPatternRuleIndex() const;
|
81
|
-
|
82
|
-
/// <summary>
|
83
|
-
/// Get the tree pattern as a <seealso cref="ParseTree"/>. The rule and token tags from
|
84
|
-
/// the pattern are present in the parse tree as terminal nodes with a symbol
|
85
|
-
/// of type <seealso cref="RuleTagToken"/> or <seealso cref="TokenTagToken"/>.
|
86
|
-
/// </summary>
|
87
|
-
/// <returns> The tree pattern as a <seealso cref="ParseTree"/>. </returns>
|
88
|
-
virtual ParseTree* getPatternTree() const;
|
89
|
-
|
90
|
-
private:
|
91
|
-
const int patternRuleIndex;
|
92
|
-
|
93
|
-
/// This is the backing field for <seealso cref="#getPattern()"/>.
|
94
|
-
const std::string _pattern;
|
95
|
-
|
96
|
-
/// This is the backing field for <seealso cref="#getPatternTree()"/>.
|
97
|
-
ParseTree *_patternTree;
|
98
|
-
|
99
|
-
/// This is the backing field for <seealso cref="#getMatcher()"/>.
|
100
|
-
ParseTreePatternMatcher *const _matcher;
|
101
|
-
};
|
102
|
-
|
103
|
-
} // namespace pattern
|
104
|
-
} // namespace tree
|
105
|
-
} // namespace antlr4
|
@@ -1,371 +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 "tree/pattern/ParseTreePattern.h"
|
7
|
-
#include "tree/pattern/ParseTreeMatch.h"
|
8
|
-
#include "tree/TerminalNode.h"
|
9
|
-
#include "CommonTokenStream.h"
|
10
|
-
#include "ParserInterpreter.h"
|
11
|
-
#include "tree/pattern/TokenTagToken.h"
|
12
|
-
#include "ParserRuleContext.h"
|
13
|
-
#include "tree/pattern/RuleTagToken.h"
|
14
|
-
#include "tree/pattern/TagChunk.h"
|
15
|
-
#include "atn/ATN.h"
|
16
|
-
#include "Lexer.h"
|
17
|
-
#include "BailErrorStrategy.h"
|
18
|
-
|
19
|
-
#include "ListTokenSource.h"
|
20
|
-
#include "tree/pattern/TextChunk.h"
|
21
|
-
#include "ANTLRInputStream.h"
|
22
|
-
#include "support/Arrays.h"
|
23
|
-
#include "Exceptions.h"
|
24
|
-
#include "support/StringUtils.h"
|
25
|
-
#include "support/CPPUtils.h"
|
26
|
-
|
27
|
-
#include "tree/pattern/ParseTreePatternMatcher.h"
|
28
|
-
|
29
|
-
using namespace antlr4;
|
30
|
-
using namespace antlr4::tree;
|
31
|
-
using namespace antlr4::tree::pattern;
|
32
|
-
using namespace antlrcpp;
|
33
|
-
|
34
|
-
ParseTreePatternMatcher::CannotInvokeStartRule::CannotInvokeStartRule(const RuntimeException &e) : RuntimeException(e.what()) {
|
35
|
-
}
|
36
|
-
|
37
|
-
ParseTreePatternMatcher::CannotInvokeStartRule::~CannotInvokeStartRule() {
|
38
|
-
}
|
39
|
-
|
40
|
-
ParseTreePatternMatcher::StartRuleDoesNotConsumeFullPattern::~StartRuleDoesNotConsumeFullPattern() {
|
41
|
-
}
|
42
|
-
|
43
|
-
ParseTreePatternMatcher::ParseTreePatternMatcher(Lexer *lexer, Parser *parser) : _lexer(lexer), _parser(parser) {
|
44
|
-
InitializeInstanceFields();
|
45
|
-
}
|
46
|
-
|
47
|
-
ParseTreePatternMatcher::~ParseTreePatternMatcher() {
|
48
|
-
}
|
49
|
-
|
50
|
-
void ParseTreePatternMatcher::setDelimiters(const std::string &start, const std::string &stop, const std::string &escapeLeft) {
|
51
|
-
if (start.empty()) {
|
52
|
-
throw IllegalArgumentException("start cannot be null or empty");
|
53
|
-
}
|
54
|
-
|
55
|
-
if (stop.empty()) {
|
56
|
-
throw IllegalArgumentException("stop cannot be null or empty");
|
57
|
-
}
|
58
|
-
|
59
|
-
_start = start;
|
60
|
-
_stop = stop;
|
61
|
-
_escape = escapeLeft;
|
62
|
-
}
|
63
|
-
|
64
|
-
bool ParseTreePatternMatcher::matches(ParseTree *tree, const std::string &pattern, int patternRuleIndex) {
|
65
|
-
ParseTreePattern p = compile(pattern, patternRuleIndex);
|
66
|
-
return matches(tree, p);
|
67
|
-
}
|
68
|
-
|
69
|
-
bool ParseTreePatternMatcher::matches(ParseTree *tree, const ParseTreePattern &pattern) {
|
70
|
-
std::map<std::string, std::vector<ParseTree *>> labels;
|
71
|
-
ParseTree *mismatchedNode = matchImpl(tree, pattern.getPatternTree(), labels);
|
72
|
-
return mismatchedNode == nullptr;
|
73
|
-
}
|
74
|
-
|
75
|
-
ParseTreeMatch ParseTreePatternMatcher::match(ParseTree *tree, const std::string &pattern, int patternRuleIndex) {
|
76
|
-
ParseTreePattern p = compile(pattern, patternRuleIndex);
|
77
|
-
return match(tree, p);
|
78
|
-
}
|
79
|
-
|
80
|
-
ParseTreeMatch ParseTreePatternMatcher::match(ParseTree *tree, const ParseTreePattern &pattern) {
|
81
|
-
std::map<std::string, std::vector<ParseTree *>> labels;
|
82
|
-
tree::ParseTree *mismatchedNode = matchImpl(tree, pattern.getPatternTree(), labels);
|
83
|
-
return ParseTreeMatch(tree, pattern, labels, mismatchedNode);
|
84
|
-
}
|
85
|
-
|
86
|
-
ParseTreePattern ParseTreePatternMatcher::compile(const std::string &pattern, int patternRuleIndex) {
|
87
|
-
ListTokenSource tokenSrc(tokenize(pattern));
|
88
|
-
CommonTokenStream tokens(&tokenSrc);
|
89
|
-
|
90
|
-
ParserInterpreter parserInterp(_parser->getGrammarFileName(), _parser->getVocabulary(),
|
91
|
-
_parser->getRuleNames(), _parser->getATNWithBypassAlts(), &tokens);
|
92
|
-
|
93
|
-
ParserRuleContext *tree = nullptr;
|
94
|
-
try {
|
95
|
-
parserInterp.setErrorHandler(std::make_shared<BailErrorStrategy>());
|
96
|
-
tree = parserInterp.parse(patternRuleIndex);
|
97
|
-
} catch (ParseCancellationException &e) {
|
98
|
-
#if defined(_MSC_FULL_VER) && _MSC_FULL_VER < 190023026
|
99
|
-
// rethrow_if_nested is not available before VS 2015.
|
100
|
-
throw e;
|
101
|
-
#else
|
102
|
-
std::rethrow_if_nested(e); // Unwrap the nested exception.
|
103
|
-
#endif
|
104
|
-
} catch (RecognitionException &re) {
|
105
|
-
throw re;
|
106
|
-
#if defined(_MSC_FULL_VER) && _MSC_FULL_VER < 190023026
|
107
|
-
} catch (std::exception &e) {
|
108
|
-
// throw_with_nested is not available before VS 2015.
|
109
|
-
throw e;
|
110
|
-
#else
|
111
|
-
} catch (std::exception & /*e*/) {
|
112
|
-
std::throw_with_nested((const char*)"Cannot invoke start rule"); // Wrap any other exception. We should however probably use one of the ANTLR exceptions here.
|
113
|
-
#endif
|
114
|
-
}
|
115
|
-
|
116
|
-
// Make sure tree pattern compilation checks for a complete parse
|
117
|
-
if (tokens.LA(1) != Token::EOF) {
|
118
|
-
throw StartRuleDoesNotConsumeFullPattern();
|
119
|
-
}
|
120
|
-
|
121
|
-
return ParseTreePattern(this, pattern, patternRuleIndex, tree);
|
122
|
-
}
|
123
|
-
|
124
|
-
Lexer* ParseTreePatternMatcher::getLexer() {
|
125
|
-
return _lexer;
|
126
|
-
}
|
127
|
-
|
128
|
-
Parser* ParseTreePatternMatcher::getParser() {
|
129
|
-
return _parser;
|
130
|
-
}
|
131
|
-
|
132
|
-
ParseTree* ParseTreePatternMatcher::matchImpl(ParseTree *tree, ParseTree *patternTree,
|
133
|
-
std::map<std::string, std::vector<ParseTree *>> &labels) {
|
134
|
-
if (tree == nullptr) {
|
135
|
-
throw IllegalArgumentException("tree cannot be nul");
|
136
|
-
}
|
137
|
-
|
138
|
-
if (patternTree == nullptr) {
|
139
|
-
throw IllegalArgumentException("patternTree cannot be nul");
|
140
|
-
}
|
141
|
-
|
142
|
-
// x and <ID>, x and y, or x and x; or could be mismatched types
|
143
|
-
if (is<TerminalNode *>(tree) && is<TerminalNode *>(patternTree)) {
|
144
|
-
TerminalNode *t1 = dynamic_cast<TerminalNode *>(tree);
|
145
|
-
TerminalNode *t2 = dynamic_cast<TerminalNode *>(patternTree);
|
146
|
-
|
147
|
-
ParseTree *mismatchedNode = nullptr;
|
148
|
-
// both are tokens and they have same type
|
149
|
-
if (t1->getSymbol()->getType() == t2->getSymbol()->getType()) {
|
150
|
-
if (is<TokenTagToken *>(t2->getSymbol())) { // x and <ID>
|
151
|
-
TokenTagToken *tokenTagToken = dynamic_cast<TokenTagToken *>(t2->getSymbol());
|
152
|
-
|
153
|
-
// track label->list-of-nodes for both token name and label (if any)
|
154
|
-
labels[tokenTagToken->getTokenName()].push_back(tree);
|
155
|
-
if (tokenTagToken->getLabel() != "") {
|
156
|
-
labels[tokenTagToken->getLabel()].push_back(tree);
|
157
|
-
}
|
158
|
-
} else if (t1->getText() == t2->getText()) {
|
159
|
-
// x and x
|
160
|
-
} else {
|
161
|
-
// x and y
|
162
|
-
if (mismatchedNode == nullptr) {
|
163
|
-
mismatchedNode = t1;
|
164
|
-
}
|
165
|
-
}
|
166
|
-
} else {
|
167
|
-
if (mismatchedNode == nullptr) {
|
168
|
-
mismatchedNode = t1;
|
169
|
-
}
|
170
|
-
}
|
171
|
-
|
172
|
-
return mismatchedNode;
|
173
|
-
}
|
174
|
-
|
175
|
-
if (is<ParserRuleContext *>(tree) && is<ParserRuleContext *>(patternTree)) {
|
176
|
-
ParserRuleContext *r1 = dynamic_cast<ParserRuleContext *>(tree);
|
177
|
-
ParserRuleContext *r2 = dynamic_cast<ParserRuleContext *>(patternTree);
|
178
|
-
ParseTree *mismatchedNode = nullptr;
|
179
|
-
|
180
|
-
// (expr ...) and <expr>
|
181
|
-
RuleTagToken *ruleTagToken = getRuleTagToken(r2);
|
182
|
-
if (ruleTagToken != nullptr) {
|
183
|
-
//ParseTreeMatch *m = nullptr; // unused?
|
184
|
-
if (r1->getRuleIndex() == r2->getRuleIndex()) {
|
185
|
-
// track label->list-of-nodes for both rule name and label (if any)
|
186
|
-
labels[ruleTagToken->getRuleName()].push_back(tree);
|
187
|
-
if (ruleTagToken->getLabel() != "") {
|
188
|
-
labels[ruleTagToken->getLabel()].push_back(tree);
|
189
|
-
}
|
190
|
-
} else {
|
191
|
-
if (!mismatchedNode) {
|
192
|
-
mismatchedNode = r1;
|
193
|
-
}
|
194
|
-
}
|
195
|
-
|
196
|
-
return mismatchedNode;
|
197
|
-
}
|
198
|
-
|
199
|
-
// (expr ...) and (expr ...)
|
200
|
-
if (r1->children.size() != r2->children.size()) {
|
201
|
-
if (mismatchedNode == nullptr) {
|
202
|
-
mismatchedNode = r1;
|
203
|
-
}
|
204
|
-
|
205
|
-
return mismatchedNode;
|
206
|
-
}
|
207
|
-
|
208
|
-
std::size_t n = r1->children.size();
|
209
|
-
for (size_t i = 0; i < n; i++) {
|
210
|
-
ParseTree *childMatch = matchImpl(r1->children[i], patternTree->children[i], labels);
|
211
|
-
if (childMatch) {
|
212
|
-
return childMatch;
|
213
|
-
}
|
214
|
-
}
|
215
|
-
|
216
|
-
return mismatchedNode;
|
217
|
-
}
|
218
|
-
|
219
|
-
// if nodes aren't both tokens or both rule nodes, can't match
|
220
|
-
return tree;
|
221
|
-
}
|
222
|
-
|
223
|
-
RuleTagToken* ParseTreePatternMatcher::getRuleTagToken(ParseTree *t) {
|
224
|
-
if (t->children.size() == 1 && is<TerminalNode *>(t->children[0])) {
|
225
|
-
TerminalNode *c = dynamic_cast<TerminalNode *>(t->children[0]);
|
226
|
-
if (is<RuleTagToken *>(c->getSymbol())) {
|
227
|
-
return dynamic_cast<RuleTagToken *>(c->getSymbol());
|
228
|
-
}
|
229
|
-
}
|
230
|
-
return nullptr;
|
231
|
-
}
|
232
|
-
|
233
|
-
std::vector<std::unique_ptr<Token>> ParseTreePatternMatcher::tokenize(const std::string &pattern) {
|
234
|
-
// split pattern into chunks: sea (raw input) and islands (<ID>, <expr>)
|
235
|
-
std::vector<Chunk> chunks = split(pattern);
|
236
|
-
|
237
|
-
// create token stream from text and tags
|
238
|
-
std::vector<std::unique_ptr<Token>> tokens;
|
239
|
-
for (auto chunk : chunks) {
|
240
|
-
if (is<TagChunk *>(&chunk)) {
|
241
|
-
TagChunk &tagChunk = (TagChunk&)chunk;
|
242
|
-
// add special rule token or conjure up new token from name
|
243
|
-
if (isupper(tagChunk.getTag()[0])) {
|
244
|
-
size_t ttype = _parser->getTokenType(tagChunk.getTag());
|
245
|
-
if (ttype == Token::INVALID_TYPE) {
|
246
|
-
throw IllegalArgumentException("Unknown token " + tagChunk.getTag() + " in pattern: " + pattern);
|
247
|
-
}
|
248
|
-
tokens.emplace_back(new TokenTagToken(tagChunk.getTag(), (int)ttype, tagChunk.getLabel()));
|
249
|
-
} else if (islower(tagChunk.getTag()[0])) {
|
250
|
-
size_t ruleIndex = _parser->getRuleIndex(tagChunk.getTag());
|
251
|
-
if (ruleIndex == INVALID_INDEX) {
|
252
|
-
throw IllegalArgumentException("Unknown rule " + tagChunk.getTag() + " in pattern: " + pattern);
|
253
|
-
}
|
254
|
-
size_t ruleImaginaryTokenType = _parser->getATNWithBypassAlts().ruleToTokenType[ruleIndex];
|
255
|
-
tokens.emplace_back(new RuleTagToken(tagChunk.getTag(), ruleImaginaryTokenType, tagChunk.getLabel()));
|
256
|
-
} else {
|
257
|
-
throw IllegalArgumentException("invalid tag: " + tagChunk.getTag() + " in pattern: " + pattern);
|
258
|
-
}
|
259
|
-
} else {
|
260
|
-
TextChunk &textChunk = (TextChunk&)chunk;
|
261
|
-
ANTLRInputStream input(textChunk.getText());
|
262
|
-
_lexer->setInputStream(&input);
|
263
|
-
std::unique_ptr<Token> t(_lexer->nextToken());
|
264
|
-
while (t->getType() != Token::EOF) {
|
265
|
-
tokens.push_back(std::move(t));
|
266
|
-
t = _lexer->nextToken();
|
267
|
-
}
|
268
|
-
_lexer->setInputStream(nullptr);
|
269
|
-
}
|
270
|
-
}
|
271
|
-
|
272
|
-
return tokens;
|
273
|
-
}
|
274
|
-
|
275
|
-
std::vector<Chunk> ParseTreePatternMatcher::split(const std::string &pattern) {
|
276
|
-
size_t p = 0;
|
277
|
-
size_t n = pattern.length();
|
278
|
-
std::vector<Chunk> chunks;
|
279
|
-
|
280
|
-
// find all start and stop indexes first, then collect
|
281
|
-
std::vector<size_t> starts;
|
282
|
-
std::vector<size_t> stops;
|
283
|
-
while (p < n) {
|
284
|
-
if (p == pattern.find(_escape + _start,p)) {
|
285
|
-
p += _escape.length() + _start.length();
|
286
|
-
} else if (p == pattern.find(_escape + _stop,p)) {
|
287
|
-
p += _escape.length() + _stop.length();
|
288
|
-
} else if (p == pattern.find(_start,p)) {
|
289
|
-
starts.push_back(p);
|
290
|
-
p += _start.length();
|
291
|
-
} else if (p == pattern.find(_stop,p)) {
|
292
|
-
stops.push_back(p);
|
293
|
-
p += _stop.length();
|
294
|
-
} else {
|
295
|
-
p++;
|
296
|
-
}
|
297
|
-
}
|
298
|
-
|
299
|
-
if (starts.size() > stops.size()) {
|
300
|
-
throw IllegalArgumentException("unterminated tag in pattern: " + pattern);
|
301
|
-
}
|
302
|
-
|
303
|
-
if (starts.size() < stops.size()) {
|
304
|
-
throw IllegalArgumentException("missing start tag in pattern: " + pattern);
|
305
|
-
}
|
306
|
-
|
307
|
-
size_t ntags = starts.size();
|
308
|
-
for (size_t i = 0; i < ntags; i++) {
|
309
|
-
if (starts[i] >= stops[i]) {
|
310
|
-
throw IllegalArgumentException("tag delimiters out of order in pattern: " + pattern);
|
311
|
-
}
|
312
|
-
}
|
313
|
-
|
314
|
-
// collect into chunks now
|
315
|
-
if (ntags == 0) {
|
316
|
-
std::string text = pattern.substr(0, n);
|
317
|
-
chunks.push_back(TextChunk(text));
|
318
|
-
}
|
319
|
-
|
320
|
-
if (ntags > 0 && starts[0] > 0) { // copy text up to first tag into chunks
|
321
|
-
std::string text = pattern.substr(0, starts[0]);
|
322
|
-
chunks.push_back(TextChunk(text));
|
323
|
-
}
|
324
|
-
|
325
|
-
for (size_t i = 0; i < ntags; i++) {
|
326
|
-
// copy inside of <tag>
|
327
|
-
std::string tag = pattern.substr(starts[i] + _start.length(), stops[i] - (starts[i] + _start.length()));
|
328
|
-
std::string ruleOrToken = tag;
|
329
|
-
std::string label = "";
|
330
|
-
size_t colon = tag.find(':');
|
331
|
-
if (colon != std::string::npos) {
|
332
|
-
label = tag.substr(0,colon);
|
333
|
-
ruleOrToken = tag.substr(colon + 1, tag.length() - (colon + 1));
|
334
|
-
}
|
335
|
-
chunks.push_back(TagChunk(label, ruleOrToken));
|
336
|
-
if (i + 1 < ntags) {
|
337
|
-
// copy from end of <tag> to start of next
|
338
|
-
std::string text = pattern.substr(stops[i] + _stop.length(), starts[i + 1] - (stops[i] + _stop.length()));
|
339
|
-
chunks.push_back(TextChunk(text));
|
340
|
-
}
|
341
|
-
}
|
342
|
-
|
343
|
-
if (ntags > 0) {
|
344
|
-
size_t afterLastTag = stops[ntags - 1] + _stop.length();
|
345
|
-
if (afterLastTag < n) { // copy text from end of last tag to end
|
346
|
-
std::string text = pattern.substr(afterLastTag, n - afterLastTag);
|
347
|
-
chunks.push_back(TextChunk(text));
|
348
|
-
}
|
349
|
-
}
|
350
|
-
|
351
|
-
// strip out all backslashes from text chunks but not tags
|
352
|
-
for (size_t i = 0; i < chunks.size(); i++) {
|
353
|
-
Chunk &c = chunks[i];
|
354
|
-
if (is<TextChunk *>(&c)) {
|
355
|
-
TextChunk &tc = (TextChunk&)c;
|
356
|
-
std::string unescaped = tc.getText();
|
357
|
-
unescaped.erase(std::remove(unescaped.begin(), unescaped.end(), '\\'), unescaped.end());
|
358
|
-
if (unescaped.length() < tc.getText().length()) {
|
359
|
-
chunks[i] = TextChunk(unescaped);
|
360
|
-
}
|
361
|
-
}
|
362
|
-
}
|
363
|
-
|
364
|
-
return chunks;
|
365
|
-
}
|
366
|
-
|
367
|
-
void ParseTreePatternMatcher::InitializeInstanceFields() {
|
368
|
-
_start = "<";
|
369
|
-
_stop = ">";
|
370
|
-
_escape = "\\";
|
371
|
-
}
|