expressir 0.2.5-x64-mingw32 → 0.2.7-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 +84 -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/cli/ui.rb +36 -36
- data/lib/expressir/cli.rb +27 -27
- data/lib/expressir/config.rb +23 -23
- 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.rb +11 -11
- 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 +1449 -1449
- data/lib/expressir/express_exp/parser.rb +40 -35
- data/lib/expressir/express_exp/visitor.rb +2463 -2450
- data/lib/expressir/express_parser.rb +30 -30
- data/lib/expressir/model/attribute.rb +26 -26
- data/lib/expressir/model/constant.rb +16 -16
- data/lib/expressir/model/entity.rb +45 -45
- data/lib/expressir/model/enumeration_item.rb +10 -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 +25 -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 +61 -61
- data/lib/expressir/model/identifier.rb +9 -8
- 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/parameter.rb +16 -16
- data/lib/expressir/model/procedure.rb +59 -59
- data/lib/expressir/model/renamed_ref.rb +12 -12
- data/lib/expressir/model/repository.rb +18 -18
- data/lib/expressir/model/rule.rb +61 -61
- data/lib/expressir/model/schema.rb +66 -66
- data/lib/expressir/model/scope.rb +16 -16
- data/lib/expressir/model/statements/alias.rb +25 -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 +33 -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 +26 -26
- data/lib/expressir/model/type.rb +23 -23
- data/lib/expressir/model/types/aggregate.rb +16 -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 +12 -12
- data/lib/expressir/model/types/generic_entity.rb +12 -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 +14 -14
- data/lib/expressir/model/variable.rb +16 -16
- data/lib/expressir/model/where.rb +14 -14
- data/lib/expressir/model.rb +64 -64
- data/lib/expressir/parser/owl_parser.rb +8 -8
- data/lib/expressir/parser.rb +6 -6
- data/lib/expressir/version.rb +3 -3
- data/lib/expressir.rb +21 -21
- 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 +146 -145
- data/original/examples/syntax/remark_formatted.exp +174 -173
- data/original/examples/syntax/syntax.exp +311 -310
- data/original/examples/syntax/syntax_formatted.exp +1190 -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/parse_remark_spec.rb +346 -345
- data/spec/expressir/express_exp/parse_syntax_spec.rb +3003 -2998
- data/spec/expressir/model/find_spec.rb +110 -110
- data/spec/expressr_spec.rb +5 -5
- data/spec/spec_helper.rb +17 -17
- data/spec/support/console_helper.rb +29 -29
- metadata +32 -370
- 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,521 +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 "misc/MurmurHash.h"
|
7
|
-
#include "Lexer.h"
|
8
|
-
#include "Exceptions.h"
|
9
|
-
#include "Vocabulary.h"
|
10
|
-
|
11
|
-
#include "misc/IntervalSet.h"
|
12
|
-
|
13
|
-
using namespace antlr4;
|
14
|
-
using namespace antlr4::misc;
|
15
|
-
|
16
|
-
IntervalSet const IntervalSet::COMPLETE_CHAR_SET =
|
17
|
-
IntervalSet::of(Lexer::MIN_CHAR_VALUE, Lexer::MAX_CHAR_VALUE);
|
18
|
-
|
19
|
-
IntervalSet const IntervalSet::EMPTY_SET;
|
20
|
-
|
21
|
-
IntervalSet::IntervalSet() : _intervals() {
|
22
|
-
}
|
23
|
-
|
24
|
-
IntervalSet::IntervalSet(const IntervalSet &set) : IntervalSet() {
|
25
|
-
_intervals = set._intervals;
|
26
|
-
}
|
27
|
-
|
28
|
-
IntervalSet::IntervalSet(IntervalSet&& set) : IntervalSet(std::move(set._intervals)) {
|
29
|
-
}
|
30
|
-
|
31
|
-
IntervalSet::IntervalSet(std::vector<Interval>&& intervals) : _intervals(std::move(intervals)) {
|
32
|
-
}
|
33
|
-
|
34
|
-
IntervalSet& IntervalSet::operator=(const IntervalSet& other) {
|
35
|
-
_intervals = other._intervals;
|
36
|
-
return *this;
|
37
|
-
}
|
38
|
-
|
39
|
-
IntervalSet& IntervalSet::operator=(IntervalSet&& other) {
|
40
|
-
_intervals = move(other._intervals);
|
41
|
-
return *this;
|
42
|
-
}
|
43
|
-
|
44
|
-
IntervalSet IntervalSet::of(ssize_t a) {
|
45
|
-
return IntervalSet({ Interval(a, a) });
|
46
|
-
}
|
47
|
-
|
48
|
-
IntervalSet IntervalSet::of(ssize_t a, ssize_t b) {
|
49
|
-
return IntervalSet({ Interval(a, b) });
|
50
|
-
}
|
51
|
-
|
52
|
-
void IntervalSet::clear() {
|
53
|
-
_intervals.clear();
|
54
|
-
}
|
55
|
-
|
56
|
-
void IntervalSet::add(ssize_t el) {
|
57
|
-
add(el, el);
|
58
|
-
}
|
59
|
-
|
60
|
-
void IntervalSet::add(ssize_t a, ssize_t b) {
|
61
|
-
add(Interval(a, b));
|
62
|
-
}
|
63
|
-
|
64
|
-
void IntervalSet::add(const Interval &addition) {
|
65
|
-
if (addition.b < addition.a) {
|
66
|
-
return;
|
67
|
-
}
|
68
|
-
|
69
|
-
// find position in list
|
70
|
-
for (auto iterator = _intervals.begin(); iterator != _intervals.end(); ++iterator) {
|
71
|
-
Interval r = *iterator;
|
72
|
-
if (addition == r) {
|
73
|
-
return;
|
74
|
-
}
|
75
|
-
|
76
|
-
if (addition.adjacent(r) || !addition.disjoint(r)) {
|
77
|
-
// next to each other, make a single larger interval
|
78
|
-
Interval bigger = addition.Union(r);
|
79
|
-
*iterator = bigger;
|
80
|
-
|
81
|
-
// make sure we didn't just create an interval that
|
82
|
-
// should be merged with next interval in list
|
83
|
-
while (iterator + 1 != _intervals.end()) {
|
84
|
-
Interval next = *++iterator;
|
85
|
-
if (!bigger.adjacent(next) && bigger.disjoint(next)) {
|
86
|
-
break;
|
87
|
-
}
|
88
|
-
|
89
|
-
// if we bump up against or overlap next, merge
|
90
|
-
iterator = _intervals.erase(iterator);// remove this one
|
91
|
-
--iterator; // move backwards to what we just set
|
92
|
-
*iterator = bigger.Union(next); // set to 3 merged ones
|
93
|
-
// ml: no need to advance iterator, we do that in the next round anyway. ++iterator; // first call to next after previous duplicates the result
|
94
|
-
}
|
95
|
-
return;
|
96
|
-
}
|
97
|
-
|
98
|
-
if (addition.startsBeforeDisjoint(r)) {
|
99
|
-
// insert before r
|
100
|
-
//--iterator;
|
101
|
-
_intervals.insert(iterator, addition);
|
102
|
-
return;
|
103
|
-
}
|
104
|
-
|
105
|
-
// if disjoint and after r, a future iteration will handle it
|
106
|
-
}
|
107
|
-
|
108
|
-
// ok, must be after last interval (and disjoint from last interval)
|
109
|
-
// just add it
|
110
|
-
_intervals.push_back(addition);
|
111
|
-
}
|
112
|
-
|
113
|
-
IntervalSet IntervalSet::Or(const std::vector<IntervalSet> &sets) {
|
114
|
-
IntervalSet result;
|
115
|
-
for (auto &s : sets) {
|
116
|
-
result.addAll(s);
|
117
|
-
}
|
118
|
-
return result;
|
119
|
-
}
|
120
|
-
|
121
|
-
IntervalSet& IntervalSet::addAll(const IntervalSet &set) {
|
122
|
-
// walk set and add each interval
|
123
|
-
for (auto const& interval : set._intervals) {
|
124
|
-
add(interval);
|
125
|
-
}
|
126
|
-
return *this;
|
127
|
-
}
|
128
|
-
|
129
|
-
IntervalSet IntervalSet::complement(ssize_t minElement, ssize_t maxElement) const {
|
130
|
-
return complement(IntervalSet::of(minElement, maxElement));
|
131
|
-
}
|
132
|
-
|
133
|
-
IntervalSet IntervalSet::complement(const IntervalSet &vocabulary) const {
|
134
|
-
return vocabulary.subtract(*this);
|
135
|
-
}
|
136
|
-
|
137
|
-
IntervalSet IntervalSet::subtract(const IntervalSet &other) const {
|
138
|
-
return subtract(*this, other);
|
139
|
-
}
|
140
|
-
|
141
|
-
IntervalSet IntervalSet::subtract(const IntervalSet &left, const IntervalSet &right) {
|
142
|
-
if (left.isEmpty()) {
|
143
|
-
return IntervalSet();
|
144
|
-
}
|
145
|
-
|
146
|
-
if (right.isEmpty()) {
|
147
|
-
// right set has no elements; just return the copy of the current set
|
148
|
-
return left;
|
149
|
-
}
|
150
|
-
|
151
|
-
IntervalSet result(left);
|
152
|
-
size_t resultI = 0;
|
153
|
-
size_t rightI = 0;
|
154
|
-
while (resultI < result._intervals.size() && rightI < right._intervals.size()) {
|
155
|
-
Interval &resultInterval = result._intervals[resultI];
|
156
|
-
const Interval &rightInterval = right._intervals[rightI];
|
157
|
-
|
158
|
-
// operation: (resultInterval - rightInterval) and update indexes
|
159
|
-
|
160
|
-
if (rightInterval.b < resultInterval.a) {
|
161
|
-
rightI++;
|
162
|
-
continue;
|
163
|
-
}
|
164
|
-
|
165
|
-
if (rightInterval.a > resultInterval.b) {
|
166
|
-
resultI++;
|
167
|
-
continue;
|
168
|
-
}
|
169
|
-
|
170
|
-
Interval beforeCurrent;
|
171
|
-
Interval afterCurrent;
|
172
|
-
if (rightInterval.a > resultInterval.a) {
|
173
|
-
beforeCurrent = Interval(resultInterval.a, rightInterval.a - 1);
|
174
|
-
}
|
175
|
-
|
176
|
-
if (rightInterval.b < resultInterval.b) {
|
177
|
-
afterCurrent = Interval(rightInterval.b + 1, resultInterval.b);
|
178
|
-
}
|
179
|
-
|
180
|
-
if (beforeCurrent.a > -1) { // -1 is the default value
|
181
|
-
if (afterCurrent.a > -1) {
|
182
|
-
// split the current interval into two
|
183
|
-
result._intervals[resultI] = beforeCurrent;
|
184
|
-
result._intervals.insert(result._intervals.begin() + resultI + 1, afterCurrent);
|
185
|
-
resultI++;
|
186
|
-
rightI++;
|
187
|
-
} else {
|
188
|
-
// replace the current interval
|
189
|
-
result._intervals[resultI] = beforeCurrent;
|
190
|
-
resultI++;
|
191
|
-
}
|
192
|
-
} else {
|
193
|
-
if (afterCurrent.a > -1) {
|
194
|
-
// replace the current interval
|
195
|
-
result._intervals[resultI] = afterCurrent;
|
196
|
-
rightI++;
|
197
|
-
} else {
|
198
|
-
// remove the current interval (thus no need to increment resultI)
|
199
|
-
result._intervals.erase(result._intervals.begin() + resultI);
|
200
|
-
}
|
201
|
-
}
|
202
|
-
}
|
203
|
-
|
204
|
-
// If rightI reached right.intervals.size(), no more intervals to subtract from result.
|
205
|
-
// If resultI reached result.intervals.size(), we would be subtracting from an empty set.
|
206
|
-
// Either way, we are done.
|
207
|
-
return result;
|
208
|
-
}
|
209
|
-
|
210
|
-
IntervalSet IntervalSet::Or(const IntervalSet &a) const {
|
211
|
-
IntervalSet result;
|
212
|
-
result.addAll(*this);
|
213
|
-
result.addAll(a);
|
214
|
-
return result;
|
215
|
-
}
|
216
|
-
|
217
|
-
IntervalSet IntervalSet::And(const IntervalSet &other) const {
|
218
|
-
IntervalSet intersection;
|
219
|
-
size_t i = 0;
|
220
|
-
size_t j = 0;
|
221
|
-
|
222
|
-
// iterate down both interval lists looking for nondisjoint intervals
|
223
|
-
while (i < _intervals.size() && j < other._intervals.size()) {
|
224
|
-
Interval mine = _intervals[i];
|
225
|
-
Interval theirs = other._intervals[j];
|
226
|
-
|
227
|
-
if (mine.startsBeforeDisjoint(theirs)) {
|
228
|
-
// move this iterator looking for interval that might overlap
|
229
|
-
i++;
|
230
|
-
} else if (theirs.startsBeforeDisjoint(mine)) {
|
231
|
-
// move other iterator looking for interval that might overlap
|
232
|
-
j++;
|
233
|
-
} else if (mine.properlyContains(theirs)) {
|
234
|
-
// overlap, add intersection, get next theirs
|
235
|
-
intersection.add(mine.intersection(theirs));
|
236
|
-
j++;
|
237
|
-
} else if (theirs.properlyContains(mine)) {
|
238
|
-
// overlap, add intersection, get next mine
|
239
|
-
intersection.add(mine.intersection(theirs));
|
240
|
-
i++;
|
241
|
-
} else if (!mine.disjoint(theirs)) {
|
242
|
-
// overlap, add intersection
|
243
|
-
intersection.add(mine.intersection(theirs));
|
244
|
-
|
245
|
-
// Move the iterator of lower range [a..b], but not
|
246
|
-
// the upper range as it may contain elements that will collide
|
247
|
-
// with the next iterator. So, if mine=[0..115] and
|
248
|
-
// theirs=[115..200], then intersection is 115 and move mine
|
249
|
-
// but not theirs as theirs may collide with the next range
|
250
|
-
// in thisIter.
|
251
|
-
// move both iterators to next ranges
|
252
|
-
if (mine.startsAfterNonDisjoint(theirs)) {
|
253
|
-
j++;
|
254
|
-
} else if (theirs.startsAfterNonDisjoint(mine)) {
|
255
|
-
i++;
|
256
|
-
}
|
257
|
-
}
|
258
|
-
}
|
259
|
-
|
260
|
-
return intersection;
|
261
|
-
}
|
262
|
-
|
263
|
-
bool IntervalSet::contains(size_t el) const {
|
264
|
-
return contains(symbolToNumeric(el));
|
265
|
-
}
|
266
|
-
|
267
|
-
bool IntervalSet::contains(ssize_t el) const {
|
268
|
-
if (_intervals.empty())
|
269
|
-
return false;
|
270
|
-
|
271
|
-
if (el < _intervals[0].a) // list is sorted and el is before first interval; not here
|
272
|
-
return false;
|
273
|
-
|
274
|
-
for (auto &interval : _intervals) {
|
275
|
-
if (el >= interval.a && el <= interval.b) {
|
276
|
-
return true; // found in this interval
|
277
|
-
}
|
278
|
-
}
|
279
|
-
return false;
|
280
|
-
}
|
281
|
-
|
282
|
-
bool IntervalSet::isEmpty() const {
|
283
|
-
return _intervals.empty();
|
284
|
-
}
|
285
|
-
|
286
|
-
ssize_t IntervalSet::getSingleElement() const {
|
287
|
-
if (_intervals.size() == 1) {
|
288
|
-
if (_intervals[0].a == _intervals[0].b) {
|
289
|
-
return _intervals[0].a;
|
290
|
-
}
|
291
|
-
}
|
292
|
-
|
293
|
-
return Token::INVALID_TYPE; // XXX: this value is 0, but 0 is a valid interval range, how can that work?
|
294
|
-
}
|
295
|
-
|
296
|
-
ssize_t IntervalSet::getMaxElement() const {
|
297
|
-
if (_intervals.empty()) {
|
298
|
-
return Token::INVALID_TYPE;
|
299
|
-
}
|
300
|
-
|
301
|
-
return _intervals.back().b;
|
302
|
-
}
|
303
|
-
|
304
|
-
ssize_t IntervalSet::getMinElement() const {
|
305
|
-
if (_intervals.empty()) {
|
306
|
-
return Token::INVALID_TYPE;
|
307
|
-
}
|
308
|
-
|
309
|
-
return _intervals[0].a;
|
310
|
-
}
|
311
|
-
|
312
|
-
std::vector<Interval> const& IntervalSet::getIntervals() const {
|
313
|
-
return _intervals;
|
314
|
-
}
|
315
|
-
|
316
|
-
size_t IntervalSet::hashCode() const {
|
317
|
-
size_t hash = MurmurHash::initialize();
|
318
|
-
for (auto &interval : _intervals) {
|
319
|
-
hash = MurmurHash::update(hash, interval.a);
|
320
|
-
hash = MurmurHash::update(hash, interval.b);
|
321
|
-
}
|
322
|
-
|
323
|
-
return MurmurHash::finish(hash, _intervals.size() * 2);
|
324
|
-
}
|
325
|
-
|
326
|
-
bool IntervalSet::operator == (const IntervalSet &other) const {
|
327
|
-
if (_intervals.empty() && other._intervals.empty())
|
328
|
-
return true;
|
329
|
-
|
330
|
-
if (_intervals.size() != other._intervals.size())
|
331
|
-
return false;
|
332
|
-
|
333
|
-
return std::equal(_intervals.begin(), _intervals.end(), other._intervals.begin());
|
334
|
-
}
|
335
|
-
|
336
|
-
std::string IntervalSet::toString() const {
|
337
|
-
return toString(false);
|
338
|
-
}
|
339
|
-
|
340
|
-
std::string IntervalSet::toString(bool elemAreChar) const {
|
341
|
-
if (_intervals.empty()) {
|
342
|
-
return "{}";
|
343
|
-
}
|
344
|
-
|
345
|
-
std::stringstream ss;
|
346
|
-
size_t effectiveSize = size();
|
347
|
-
if (effectiveSize > 1) {
|
348
|
-
ss << "{";
|
349
|
-
}
|
350
|
-
|
351
|
-
bool firstEntry = true;
|
352
|
-
for (auto &interval : _intervals) {
|
353
|
-
if (!firstEntry)
|
354
|
-
ss << ", ";
|
355
|
-
firstEntry = false;
|
356
|
-
|
357
|
-
ssize_t a = interval.a;
|
358
|
-
ssize_t b = interval.b;
|
359
|
-
if (a == b) {
|
360
|
-
if (a == -1) {
|
361
|
-
ss << "<EOF>";
|
362
|
-
} else if (elemAreChar) {
|
363
|
-
ss << "'" << static_cast<char>(a) << "'";
|
364
|
-
} else {
|
365
|
-
ss << a;
|
366
|
-
}
|
367
|
-
} else {
|
368
|
-
if (elemAreChar) {
|
369
|
-
ss << "'" << static_cast<char>(a) << "'..'" << static_cast<char>(b) << "'";
|
370
|
-
} else {
|
371
|
-
ss << a << ".." << b;
|
372
|
-
}
|
373
|
-
}
|
374
|
-
}
|
375
|
-
if (effectiveSize > 1) {
|
376
|
-
ss << "}";
|
377
|
-
}
|
378
|
-
|
379
|
-
return ss.str();
|
380
|
-
}
|
381
|
-
|
382
|
-
std::string IntervalSet::toString(const std::vector<std::string> &tokenNames) const {
|
383
|
-
return toString(dfa::Vocabulary::fromTokenNames(tokenNames));
|
384
|
-
}
|
385
|
-
|
386
|
-
std::string IntervalSet::toString(const dfa::Vocabulary &vocabulary) const {
|
387
|
-
if (_intervals.empty()) {
|
388
|
-
return "{}";
|
389
|
-
}
|
390
|
-
|
391
|
-
std::stringstream ss;
|
392
|
-
size_t effectiveSize = size();
|
393
|
-
if (effectiveSize > 1) {
|
394
|
-
ss << "{";
|
395
|
-
}
|
396
|
-
|
397
|
-
bool firstEntry = true;
|
398
|
-
for (auto &interval : _intervals) {
|
399
|
-
if (!firstEntry)
|
400
|
-
ss << ", ";
|
401
|
-
firstEntry = false;
|
402
|
-
|
403
|
-
ssize_t a = interval.a;
|
404
|
-
ssize_t b = interval.b;
|
405
|
-
if (a == b) {
|
406
|
-
ss << elementName(vocabulary, a);
|
407
|
-
} else {
|
408
|
-
for (ssize_t i = a; i <= b; i++) {
|
409
|
-
if (i > a) {
|
410
|
-
ss << ", ";
|
411
|
-
}
|
412
|
-
ss << elementName(vocabulary, i);
|
413
|
-
}
|
414
|
-
}
|
415
|
-
}
|
416
|
-
if (effectiveSize > 1) {
|
417
|
-
ss << "}";
|
418
|
-
}
|
419
|
-
|
420
|
-
return ss.str();
|
421
|
-
}
|
422
|
-
|
423
|
-
std::string IntervalSet::elementName(const std::vector<std::string> &tokenNames, ssize_t a) const {
|
424
|
-
return elementName(dfa::Vocabulary::fromTokenNames(tokenNames), a);
|
425
|
-
}
|
426
|
-
|
427
|
-
std::string IntervalSet::elementName(const dfa::Vocabulary &vocabulary, ssize_t a) const {
|
428
|
-
if (a == -1) {
|
429
|
-
return "<EOF>";
|
430
|
-
} else if (a == -2) {
|
431
|
-
return "<EPSILON>";
|
432
|
-
} else {
|
433
|
-
return vocabulary.getDisplayName(a);
|
434
|
-
}
|
435
|
-
}
|
436
|
-
|
437
|
-
size_t IntervalSet::size() const {
|
438
|
-
size_t result = 0;
|
439
|
-
for (auto &interval : _intervals) {
|
440
|
-
result += size_t(interval.b - interval.a + 1);
|
441
|
-
}
|
442
|
-
return result;
|
443
|
-
}
|
444
|
-
|
445
|
-
std::vector<ssize_t> IntervalSet::toList() const {
|
446
|
-
std::vector<ssize_t> result;
|
447
|
-
for (auto &interval : _intervals) {
|
448
|
-
ssize_t a = interval.a;
|
449
|
-
ssize_t b = interval.b;
|
450
|
-
for (ssize_t v = a; v <= b; v++) {
|
451
|
-
result.push_back(v);
|
452
|
-
}
|
453
|
-
}
|
454
|
-
return result;
|
455
|
-
}
|
456
|
-
|
457
|
-
std::set<ssize_t> IntervalSet::toSet() const {
|
458
|
-
std::set<ssize_t> result;
|
459
|
-
for (auto &interval : _intervals) {
|
460
|
-
ssize_t a = interval.a;
|
461
|
-
ssize_t b = interval.b;
|
462
|
-
for (ssize_t v = a; v <= b; v++) {
|
463
|
-
result.insert(v);
|
464
|
-
}
|
465
|
-
}
|
466
|
-
return result;
|
467
|
-
}
|
468
|
-
|
469
|
-
ssize_t IntervalSet::get(size_t i) const {
|
470
|
-
size_t index = 0;
|
471
|
-
for (auto &interval : _intervals) {
|
472
|
-
ssize_t a = interval.a;
|
473
|
-
ssize_t b = interval.b;
|
474
|
-
for (ssize_t v = a; v <= b; v++) {
|
475
|
-
if (index == i) {
|
476
|
-
return v;
|
477
|
-
}
|
478
|
-
index++;
|
479
|
-
}
|
480
|
-
}
|
481
|
-
return -1;
|
482
|
-
}
|
483
|
-
|
484
|
-
void IntervalSet::remove(size_t el) {
|
485
|
-
remove(symbolToNumeric(el));
|
486
|
-
}
|
487
|
-
|
488
|
-
void IntervalSet::remove(ssize_t el) {
|
489
|
-
for (size_t i = 0; i < _intervals.size(); ++i) {
|
490
|
-
Interval &interval = _intervals[i];
|
491
|
-
ssize_t a = interval.a;
|
492
|
-
ssize_t b = interval.b;
|
493
|
-
if (el < a) {
|
494
|
-
break; // list is sorted and el is before this interval; not here
|
495
|
-
}
|
496
|
-
|
497
|
-
// if whole interval x..x, rm
|
498
|
-
if (el == a && el == b) {
|
499
|
-
_intervals.erase(_intervals.begin() + (long)i);
|
500
|
-
break;
|
501
|
-
}
|
502
|
-
// if on left edge x..b, adjust left
|
503
|
-
if (el == a) {
|
504
|
-
interval.a++;
|
505
|
-
break;
|
506
|
-
}
|
507
|
-
// if on right edge a..x, adjust right
|
508
|
-
if (el == b) {
|
509
|
-
interval.b--;
|
510
|
-
break;
|
511
|
-
}
|
512
|
-
// if in middle a..x..b, split interval
|
513
|
-
if (el > a && el < b) { // found in this interval
|
514
|
-
ssize_t oldb = interval.b;
|
515
|
-
interval.b = el - 1; // [a..x-1]
|
516
|
-
add(el + 1, oldb); // add [x+1..b]
|
517
|
-
|
518
|
-
break; // ml: not in the Java code but I believe we also should stop searching here, as we found x.
|
519
|
-
}
|
520
|
-
}
|
521
|
-
}
|
@@ -1,198 +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 "misc/Interval.h"
|
9
|
-
#include "Exceptions.h"
|
10
|
-
|
11
|
-
namespace antlr4 {
|
12
|
-
namespace misc {
|
13
|
-
|
14
|
-
/**
|
15
|
-
* This class implements the {@link IntSet} backed by a sorted array of
|
16
|
-
* non-overlapping intervals. It is particularly efficient for representing
|
17
|
-
* large collections of numbers, where the majority of elements appear as part
|
18
|
-
* of a sequential range of numbers that are all part of the set. For example,
|
19
|
-
* the set { 1, 2, 3, 4, 7, 8 } may be represented as { [1, 4], [7, 8] }.
|
20
|
-
*
|
21
|
-
* <p>
|
22
|
-
* This class is able to represent sets containing any combination of values in
|
23
|
-
* the range {@link Integer#MIN_VALUE} to {@link Integer#MAX_VALUE}
|
24
|
-
* (inclusive).</p>
|
25
|
-
*/
|
26
|
-
class ANTLR4CPP_PUBLIC IntervalSet {
|
27
|
-
public:
|
28
|
-
static IntervalSet const COMPLETE_CHAR_SET;
|
29
|
-
static IntervalSet const EMPTY_SET;
|
30
|
-
|
31
|
-
private:
|
32
|
-
/// The list of sorted, disjoint intervals.
|
33
|
-
std::vector<Interval> _intervals;
|
34
|
-
|
35
|
-
explicit IntervalSet(std::vector<Interval>&& intervals);
|
36
|
-
|
37
|
-
public:
|
38
|
-
IntervalSet();
|
39
|
-
IntervalSet(IntervalSet const& set);
|
40
|
-
IntervalSet(IntervalSet&& set);
|
41
|
-
|
42
|
-
template<typename T1, typename... T_NEXT>
|
43
|
-
IntervalSet(int, T1 t1, T_NEXT&&... next) : IntervalSet() {
|
44
|
-
// The first int argument is an ignored count for compatibility
|
45
|
-
// with the previous varargs based interface.
|
46
|
-
addItems(t1, std::forward<T_NEXT>(next)...);
|
47
|
-
}
|
48
|
-
|
49
|
-
IntervalSet& operator=(IntervalSet const& set);
|
50
|
-
IntervalSet& operator=(IntervalSet&& set);
|
51
|
-
|
52
|
-
/// Create a set with a single element, el.
|
53
|
-
static IntervalSet of(ssize_t a);
|
54
|
-
|
55
|
-
/// Create a set with all ints within range [a..b] (inclusive)
|
56
|
-
static IntervalSet of(ssize_t a, ssize_t b);
|
57
|
-
|
58
|
-
void clear();
|
59
|
-
|
60
|
-
/// Add a single element to the set. An isolated element is stored
|
61
|
-
/// as a range el..el.
|
62
|
-
void add(ssize_t el);
|
63
|
-
|
64
|
-
/// Add interval; i.e., add all integers from a to b to set.
|
65
|
-
/// If b<a, do nothing.
|
66
|
-
/// Keep list in sorted order (by left range value).
|
67
|
-
/// If overlap, combine ranges. For example,
|
68
|
-
/// If this is {1..5, 10..20}, adding 6..7 yields
|
69
|
-
/// {1..5, 6..7, 10..20}. Adding 4..8 yields {1..8, 10..20}.
|
70
|
-
void add(ssize_t a, ssize_t b);
|
71
|
-
|
72
|
-
/// combine all sets in the array returned the or'd value
|
73
|
-
static IntervalSet Or(const std::vector<IntervalSet> &sets);
|
74
|
-
|
75
|
-
// Copy on write so we can cache a..a intervals and sets of that.
|
76
|
-
void add(const Interval &addition);
|
77
|
-
IntervalSet& addAll(const IntervalSet &set);
|
78
|
-
|
79
|
-
template<typename T1, typename... T_NEXT>
|
80
|
-
void addItems(T1 t1, T_NEXT&&... next) {
|
81
|
-
add(t1);
|
82
|
-
addItems(std::forward<T_NEXT>(next)...);
|
83
|
-
}
|
84
|
-
|
85
|
-
IntervalSet complement(ssize_t minElement, ssize_t maxElement) const;
|
86
|
-
|
87
|
-
/// Given the set of possible values (rather than, say UNICODE or MAXINT),
|
88
|
-
/// return a new set containing all elements in vocabulary, but not in
|
89
|
-
/// this. The computation is (vocabulary - this).
|
90
|
-
///
|
91
|
-
/// 'this' is assumed to be either a subset or equal to vocabulary.
|
92
|
-
IntervalSet complement(const IntervalSet &vocabulary) const;
|
93
|
-
|
94
|
-
/// Compute this-other via this&~other.
|
95
|
-
/// Return a new set containing all elements in this but not in other.
|
96
|
-
/// other is assumed to be a subset of this;
|
97
|
-
/// anything that is in other but not in this will be ignored.
|
98
|
-
IntervalSet subtract(const IntervalSet &other) const;
|
99
|
-
|
100
|
-
/**
|
101
|
-
* Compute the set difference between two interval sets. The specific
|
102
|
-
* operation is {@code left - right}. If either of the input sets is
|
103
|
-
* {@code null}, it is treated as though it was an empty set.
|
104
|
-
*/
|
105
|
-
static IntervalSet subtract(const IntervalSet &left, const IntervalSet &right);
|
106
|
-
|
107
|
-
IntervalSet Or(const IntervalSet &a) const;
|
108
|
-
|
109
|
-
/// Return a new set with the intersection of this set with other. Because
|
110
|
-
/// the intervals are sorted, we can use an iterator for each list and
|
111
|
-
/// just walk them together. This is roughly O(min(n,m)) for interval
|
112
|
-
/// list lengths n and m.
|
113
|
-
IntervalSet And(const IntervalSet &other) const;
|
114
|
-
|
115
|
-
/// Is el in any range of this set?
|
116
|
-
bool contains(size_t el) const; // For mapping of e.g. Token::EOF to -1 etc.
|
117
|
-
bool contains(ssize_t el) const;
|
118
|
-
|
119
|
-
/// return true if this set has no members
|
120
|
-
bool isEmpty() const;
|
121
|
-
|
122
|
-
/// If this set is a single integer, return it otherwise Token.INVALID_TYPE.
|
123
|
-
ssize_t getSingleElement() const;
|
124
|
-
|
125
|
-
/**
|
126
|
-
* Returns the maximum value contained in the set.
|
127
|
-
*
|
128
|
-
* @return the maximum value contained in the set. If the set is empty, this
|
129
|
-
* method returns {@link Token#INVALID_TYPE}.
|
130
|
-
*/
|
131
|
-
ssize_t getMaxElement() const;
|
132
|
-
|
133
|
-
/**
|
134
|
-
* Returns the minimum value contained in the set.
|
135
|
-
*
|
136
|
-
* @return the minimum value contained in the set. If the set is empty, this
|
137
|
-
* method returns {@link Token#INVALID_TYPE}.
|
138
|
-
*/
|
139
|
-
ssize_t getMinElement() const;
|
140
|
-
|
141
|
-
/// <summary>
|
142
|
-
/// Return a list of Interval objects. </summary>
|
143
|
-
std::vector<Interval> const& getIntervals() const;
|
144
|
-
|
145
|
-
size_t hashCode() const;
|
146
|
-
|
147
|
-
/// Are two IntervalSets equal? Because all intervals are sorted
|
148
|
-
/// and disjoint, equals is a simple linear walk over both lists
|
149
|
-
/// to make sure they are the same.
|
150
|
-
bool operator == (const IntervalSet &other) const;
|
151
|
-
std::string toString() const;
|
152
|
-
std::string toString(bool elemAreChar) const;
|
153
|
-
|
154
|
-
/**
|
155
|
-
* @deprecated Use {@link #toString(Vocabulary)} instead.
|
156
|
-
*/
|
157
|
-
std::string toString(const std::vector<std::string> &tokenNames) const;
|
158
|
-
std::string toString(const dfa::Vocabulary &vocabulary) const;
|
159
|
-
|
160
|
-
protected:
|
161
|
-
/**
|
162
|
-
* @deprecated Use {@link #elementName(Vocabulary, int)} instead.
|
163
|
-
*/
|
164
|
-
std::string elementName(const std::vector<std::string> &tokenNames, ssize_t a) const;
|
165
|
-
std::string elementName(const dfa::Vocabulary &vocabulary, ssize_t a) const;
|
166
|
-
|
167
|
-
public:
|
168
|
-
size_t size() const;
|
169
|
-
std::vector<ssize_t> toList() const;
|
170
|
-
std::set<ssize_t> toSet() const;
|
171
|
-
|
172
|
-
/// Get the ith element of ordered set. Used only by RandomPhrase so
|
173
|
-
/// don't bother to implement if you're not doing that for a new
|
174
|
-
/// ANTLR code gen target.
|
175
|
-
ssize_t get(size_t i) const;
|
176
|
-
void remove(size_t el); // For mapping of e.g. Token::EOF to -1 etc.
|
177
|
-
void remove(ssize_t el);
|
178
|
-
|
179
|
-
private:
|
180
|
-
void addItems() { /* No-op */ }
|
181
|
-
};
|
182
|
-
|
183
|
-
} // namespace atn
|
184
|
-
} // namespace antlr4
|
185
|
-
|
186
|
-
// Hash function for IntervalSet.
|
187
|
-
|
188
|
-
namespace std {
|
189
|
-
using antlr4::misc::IntervalSet;
|
190
|
-
|
191
|
-
template <> struct hash<IntervalSet>
|
192
|
-
{
|
193
|
-
size_t operator() (const IntervalSet &x) const
|
194
|
-
{
|
195
|
-
return x.hashCode();
|
196
|
-
}
|
197
|
-
};
|
198
|
-
}
|