From e8072816fd3bd84e5bb5396687fcf7aa45f50419 Mon Sep 17 00:00:00 2001 From: Luke Imhoff Date: Thu, 28 Jul 2016 20:26:05 -0500 Subject: [PATCH] Add `A.{B, C}` to grammar Includes the ability to quote multiple aliases, but no references yet. Ports https://github.com/elixir-lang/elixir/pull/3666. --- gen/org/elixir_lang/parser/ElixirParser.java | 154 ++++++++++--- ...ElixirMatchedQualifiedMultipleAliases.java | 21 ++ .../psi/ElixirMultipleAliases.java | 24 ++ gen/org/elixir_lang/psi/ElixirTypes.java | 12 + ...ixirUnmatchedQualifiedMultipleAliases.java | 21 ++ gen/org/elixir_lang/psi/ElixirVisitor.java | 14 ++ ...irMatchedQualifiedMultipleAliasesImpl.java | 49 ++++ .../psi/impl/ElixirMultipleAliasesImpl.java | 53 +++++ ...UnmatchedQualifiedMultipleAliasesImpl.java | 49 ++++ src/org/elixir_lang/Elixir.bnf | 39 +++- .../psi/QualifiedMultipleAliases.java | 7 + .../psi/impl/ElixirPsiImplUtil.java | 48 ++++ .../BinaryWholeNumber.txt | 2 +- .../CharListHeredoc.txt | 2 +- .../CharToken.txt | 2 +- .../DecimalFloat.txt | 2 +- .../DecimalWholeNumber.txt | 2 +- .../HexadecimalWholeNumber.txt | 2 +- .../List.txt | 2 +- .../OctalWholeNumber.txt | 2 +- .../Sigil.txt | 2 +- .../StringHeredoc.txt | 2 +- .../UnknownBaseWholeNumber.txt | 2 +- .../TrailingDecimalMark.txt | 2 +- .../Atom.txt | 2 +- .../BinaryWholeNumber.txt | 2 +- .../CharListHeredoc.txt | 2 +- .../CharToken.txt | 2 +- .../DecimalFloat.txt | 2 +- .../DecimalWholeNumber.txt | 2 +- .../HexadecimalWholeNumber.txt | 2 +- .../List.txt | 2 +- .../OctalWholeNumber.txt | 2 +- .../Sigil.txt | 2 +- .../StringHeredoc.txt | 2 +- .../UnknownBaseWholeNumber.txt | 2 +- .../Atom.txt | 4 +- .../BinaryWholeNumber.txt | 4 +- .../CharToken.txt | 4 +- .../DecimalFloat.txt | 4 +- .../DecimalWholeNumber.txt | 4 +- .../HexadecimalWholeNumber.txt | 4 +- .../List.txt | 2 +- .../OctalWholeNumber.txt | 4 +- .../Sigil.txt | 4 +- .../UnknownBaseWholeNumber.txt | 4 +- .../Atom.txt | 2 +- .../BinaryWholeNumber.txt | 2 +- .../CharListHeredoc.txt | 2 +- .../CharToken.txt | 2 +- .../DecimalFloat.txt | 2 +- .../DecimalWholeNumber.txt | 2 +- .../HexadecimalWholeNumber.txt | 2 +- .../OctalWholeNumber.txt | 2 +- .../Sigil.txt | 2 +- .../StringHeredoc.txt | 2 +- .../UnknownBaseWholeNumber.txt | 2 +- .../Alias.txt | 9 - .../AliasDotIdentifier.txt | 9 - .../AliasDotIdentifierDotIdentifier.txt | 14 -- .../Associativity.txt | 74 ------ .../AtNonNumericOperation.txt | 16 -- .../AtNumericOperation.txt | 18 -- .../Atom.txt | 2 +- .../AtomKeyword.txt | 10 - .../BinaryWholeNumber.txt | 2 +- .../CaptureNumericOperation.txt | 18 -- .../CharListHeredoc.txt | 2 +- .../CharListLine.txt | 16 -- .../CharToken.txt | 2 +- .../DecimalFloat.txt | 2 +- .../DecimalWholeNumber.txt | 15 -- .../EmptyBlock.txt | 14 -- .../HexadecimalWholeNumber.txt | 2 +- .../IdentifierDotIdentifierDotIdentifier.txt | 14 -- .../List.txt | 2 +- .../MatchedCallOperation.txt | 25 -- .../OctalWholeNumber.txt | 2 +- .../Sigil.txt | 2 +- .../StringHeredoc.txt | 2 +- .../StringLine.txt | 16 -- .../UnaryNumericOperation.txt | 18 -- .../UnknownBaseWholeNumber.txt | 2 +- .../Variable.txt | 9 - .../Alias.ex | 3 + .../Alias.txt | 43 ++++ .../AtNumericOperation.ex | 3 + .../AtNumericOperation.txt | 55 +++++ .../AtomKeyword.ex | 3 + .../AtomKeyword.txt | 43 ++++ .../BinaryWholeNumber.ex | 3 + .../BinaryWholeNumber.txt | 52 +++++ .../CaptureNumericOperation.ex | 3 + .../CaptureNumericOperation.txt | 55 +++++ .../CharListHeredoc.ex | 11 + .../CharListHeredoc.txt | 75 ++++++ .../CharListLine.ex | 3 + .../CharListLine.txt | 52 +++++ .../CharToken.ex | 3 + .../CharToken.txt | 46 ++++ .../DecimalFloat.ex | 3 + .../DecimalFloat.txt | 88 +++++++ .../DecimalWholeNumber.ex | 3 + .../DecimalWholeNumber.txt | 46 ++++ .../EmptyBlock.ex | 3 + .../EmptyBlock.txt | 49 ++++ .../HexadecimalWholeNumber.ex | 3 + .../HexadecimalWholeNumber.txt | 52 +++++ .../List.ex | 3 + .../List.txt | 46 ++++ .../MatchedAdditionOperation.ex | 3 + .../MatchedAdditionOperation.txt | 96 ++++++++ .../MatchedAndOperation.ex | 3 + .../MatchedAndOperation.txt | 96 ++++++++ .../MatchedArrowOperation.ex | 3 + .../MatchedArrowOperation.txt | 96 ++++++++ .../MatchedAtNonNumericOperation.ex | 3 + .../MatchedAtNonNumericOperation.txt | 52 +++++ .../MatchedCaptureNonNumericOperation.ex | 3 + .../MatchedCaptureNonNumericOperation.txt | 52 +++++ .../MatchedComparisonOperation.ex | 3 + .../MatchedComparisonOperation.txt | 96 ++++++++ .../MatchedDotCallOperation.ex | 17 ++ .../MatchedDotCallOperation.txt | 175 ++++++++++++++ .../MatchedInMatchOperation.ex | 3 + .../MatchedInMatchOperation.txt | 96 ++++++++ .../MatchedInOperation.ex | 3 + .../MatchedInOperation.txt | 96 ++++++++ .../MatchedMatchOperation.ex | 3 + .../MatchedMatchOperation.txt | 96 ++++++++ .../MatchedMultiplicationOperation.ex | 3 + .../MatchedMultiplicationOperation.txt | 96 ++++++++ .../MatchedOrOperation.ex | 3 + .../MatchedOrOperation.txt | 96 ++++++++ .../MatchedPipeOperation.ex | 3 + .../MatchedPipeOperation.txt | 96 ++++++++ .../MatchedQualifiedAliasOperation.ex | 9 + .../MatchedQualifiedAliasOperation.txt | 218 ++++++++++++++++++ .../MatchedQualifiedCallOperation.ex | 10 + .../MatchedQualifiedCallOperation.txt | 170 ++++++++++++++ .../MatchedRelationalOperation.ex | 3 + .../MatchedRelationalOperation.txt | 96 ++++++++ .../MatchedTwoOperation.ex | 3 + .../MatchedTwoOperation.txt | 96 ++++++++ .../MatchedTypeOperation.ex | 3 + .../MatchedTypeOperation.txt | 96 ++++++++ .../MatchedUnaryNonNumericOperation.ex | 3 + .../MatchedUnaryNonNumericOperation.txt | 52 +++++ .../MatchedUnqualifiedCallOperation.ex | 10 + .../MatchedUnqualifiedCallOperation.txt | 160 +++++++++++++ ...tchedWhenNoParenthesesKeywordsOperation.ex | 3 + ...chedWhenNoParenthesesKeywordsOperation.txt | 85 +++++++ .../MatchedWhenOperation.ex | 3 + .../MatchedWhenOperation.txt | 96 ++++++++ .../OctalWholeNumber.ex | 3 + .../OctalWholeNumber.txt | 52 +++++ .../Sigil.ex | 3 + .../Sigil.txt | 94 ++++++++ .../StringHeredoc.ex | 11 + .../StringHeredoc.txt | 75 ++++++ .../StringLine.ex | 3 + .../StringLine.txt | 52 +++++ .../UnaryNumericOperation.ex | 3 + .../UnaryNumericOperation.txt | 55 +++++ .../UnknownBaseWholeNumber.ex | 3 + .../UnknownBaseWholeNumber.txt | 52 +++++ .../Variable.ex | 3 + .../Variable.txt | 43 ++++ .../Atom.txt | 12 +- .../CharListHeredoc.txt | 2 +- .../List.txt | 2 +- .../Sigil.txt | 12 +- .../StringHeredoc.txt | 2 +- .../Atom.txt | 2 +- .../BinaryWholeNumber.txt | 2 +- .../CharListHeredoc.txt | 2 +- .../CharToken.txt | 2 +- .../DecimalFloat.txt | 2 +- .../DecimalWholeNumber.txt | 2 +- .../HexadecimalWholeNumber.txt | 2 +- .../List.txt | 2 +- .../OctalWholeNumber.txt | 2 +- .../Sigil.txt | 2 +- .../StringHeredoc.txt | 2 +- .../UnknownBaseWholeNumber.txt | 2 +- ...alifiedMultipleAliasesParsingTestCase.java | 192 +++++++++++++++ 186 files changed, 4348 insertions(+), 423 deletions(-) create mode 100644 gen/org/elixir_lang/psi/ElixirMatchedQualifiedMultipleAliases.java create mode 100644 gen/org/elixir_lang/psi/ElixirMultipleAliases.java create mode 100644 gen/org/elixir_lang/psi/ElixirUnmatchedQualifiedMultipleAliases.java create mode 100644 gen/org/elixir_lang/psi/impl/ElixirMatchedQualifiedMultipleAliasesImpl.java create mode 100644 gen/org/elixir_lang/psi/impl/ElixirMultipleAliasesImpl.java create mode 100644 gen/org/elixir_lang/psi/impl/ElixirUnmatchedQualifiedMultipleAliasesImpl.java create mode 100644 src/org/elixir_lang/psi/QualifiedMultipleAliases.java delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Alias.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AliasDotIdentifier.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AliasDotIdentifierDotIdentifier.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Associativity.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtNonNumericOperation.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtNumericOperation.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtomKeyword.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CaptureNumericOperation.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharListLine.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/DecimalWholeNumber.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/EmptyBlock.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/IdentifierDotIdentifierDotIdentifier.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/MatchedCallOperation.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/StringLine.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/UnaryNumericOperation.txt delete mode 100644 testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Variable.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Alias.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Alias.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtNumericOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtNumericOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtomKeyword.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtomKeyword.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/BinaryWholeNumber.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/BinaryWholeNumber.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CaptureNumericOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CaptureNumericOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListHeredoc.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListHeredoc.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListLine.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListLine.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharToken.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharToken.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalFloat.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalFloat.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalWholeNumber.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalWholeNumber.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/EmptyBlock.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/EmptyBlock.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/HexadecimalWholeNumber.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/HexadecimalWholeNumber.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/List.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/List.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAdditionOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAdditionOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAndOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAndOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedArrowOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedArrowOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAtNonNumericOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAtNonNumericOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedCaptureNonNumericOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedCaptureNonNumericOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedComparisonOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedComparisonOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedDotCallOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedDotCallOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInMatchOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInMatchOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMatchOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMatchOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMultiplicationOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMultiplicationOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedOrOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedOrOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedPipeOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedPipeOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedAliasOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedAliasOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedCallOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedCallOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedRelationalOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedRelationalOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTwoOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTwoOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTypeOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTypeOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnaryNonNumericOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnaryNonNumericOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnqualifiedCallOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnqualifiedCallOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenNoParenthesesKeywordsOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenNoParenthesesKeywordsOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/OctalWholeNumber.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/OctalWholeNumber.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Sigil.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Sigil.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringHeredoc.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringHeredoc.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringLine.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringLine.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnaryNumericOperation.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnaryNumericOperation.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnknownBaseWholeNumber.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnknownBaseWholeNumber.txt create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Variable.ex create mode 100644 testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Variable.txt create mode 100644 tests/org/elixir_lang/parser_definition/MatchedQualifiedMultipleAliasesParsingTestCase.java diff --git a/gen/org/elixir_lang/parser/ElixirParser.java b/gen/org/elixir_lang/parser/ElixirParser.java index bfd9740f2..7e844a488 100644 --- a/gen/org/elixir_lang/parser/ElixirParser.java +++ b/gen/org/elixir_lang/parser/ElixirParser.java @@ -333,6 +333,9 @@ else if (t == MATCHED_EXPRESSION) { else if (t == MATCHED_PARENTHESES_ARGUMENTS) { r = matchedParenthesesArguments(b, 0); } + else if (t == MULTIPLE_ALIASES) { + r = multipleAliases(b, 0); + } else if (t == MULTIPLICATION_INFIX_OPERATOR) { r = multiplicationInfixOperator(b, 0); } @@ -475,17 +478,19 @@ protected boolean parse_root_(IElementType t, PsiBuilder b, int l) { MATCHED_CAPTURE_NON_NUMERIC_OPERATION, MATCHED_COMPARISON_OPERATION, MATCHED_DOT_CALL, MATCHED_EXPRESSION, MATCHED_IN_MATCH_OPERATION, MATCHED_IN_OPERATION, MATCHED_MATCH_OPERATION, MATCHED_MULTIPLICATION_OPERATION, MATCHED_OR_OPERATION, MATCHED_PIPE_OPERATION, MATCHED_QUALIFIED_ALIAS, MATCHED_QUALIFIED_BRACKET_OPERATION, - MATCHED_QUALIFIED_NO_ARGUMENTS_CALL, MATCHED_QUALIFIED_NO_PARENTHESES_CALL, MATCHED_QUALIFIED_PARENTHESES_CALL, MATCHED_RELATIONAL_OPERATION, - MATCHED_TWO_OPERATION, MATCHED_TYPE_OPERATION, MATCHED_UNARY_NON_NUMERIC_OPERATION, MATCHED_UNQUALIFIED_BRACKET_OPERATION, - MATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL, MATCHED_UNQUALIFIED_NO_PARENTHESES_CALL, MATCHED_UNQUALIFIED_PARENTHESES_CALL, MATCHED_WHEN_OPERATION), + MATCHED_QUALIFIED_MULTIPLE_ALIASES, MATCHED_QUALIFIED_NO_ARGUMENTS_CALL, MATCHED_QUALIFIED_NO_PARENTHESES_CALL, MATCHED_QUALIFIED_PARENTHESES_CALL, + MATCHED_RELATIONAL_OPERATION, MATCHED_TWO_OPERATION, MATCHED_TYPE_OPERATION, MATCHED_UNARY_NON_NUMERIC_OPERATION, + MATCHED_UNQUALIFIED_BRACKET_OPERATION, MATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL, MATCHED_UNQUALIFIED_NO_PARENTHESES_CALL, MATCHED_UNQUALIFIED_PARENTHESES_CALL, + MATCHED_WHEN_OPERATION), create_token_set_(ACCESS_EXPRESSION, UNMATCHED_ADDITION_OPERATION, UNMATCHED_AND_OPERATION, UNMATCHED_ARROW_OPERATION, UNMATCHED_AT_NON_NUMERIC_OPERATION, UNMATCHED_AT_UNQUALIFIED_BRACKET_OPERATION, UNMATCHED_AT_UNQUALIFIED_NO_PARENTHESES_CALL, UNMATCHED_BRACKET_OPERATION, UNMATCHED_CAPTURE_NON_NUMERIC_OPERATION, UNMATCHED_COMPARISON_OPERATION, UNMATCHED_DOT_CALL, UNMATCHED_EXPRESSION, UNMATCHED_IN_MATCH_OPERATION, UNMATCHED_IN_OPERATION, UNMATCHED_MATCH_OPERATION, UNMATCHED_MULTIPLICATION_OPERATION, UNMATCHED_OR_OPERATION, UNMATCHED_PIPE_OPERATION, UNMATCHED_QUALIFIED_ALIAS, UNMATCHED_QUALIFIED_BRACKET_OPERATION, - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL, UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL, UNMATCHED_QUALIFIED_PARENTHESES_CALL, UNMATCHED_RELATIONAL_OPERATION, - UNMATCHED_TWO_OPERATION, UNMATCHED_TYPE_OPERATION, UNMATCHED_UNARY_NON_NUMERIC_OPERATION, UNMATCHED_UNQUALIFIED_BRACKET_OPERATION, - UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL, UNMATCHED_UNQUALIFIED_NO_PARENTHESES_CALL, UNMATCHED_UNQUALIFIED_PARENTHESES_CALL, UNMATCHED_WHEN_OPERATION), + UNMATCHED_QUALIFIED_MULTIPLE_ALIASES, UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL, UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL, UNMATCHED_QUALIFIED_PARENTHESES_CALL, + UNMATCHED_RELATIONAL_OPERATION, UNMATCHED_TWO_OPERATION, UNMATCHED_TYPE_OPERATION, UNMATCHED_UNARY_NON_NUMERIC_OPERATION, + UNMATCHED_UNQUALIFIED_BRACKET_OPERATION, UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL, UNMATCHED_UNQUALIFIED_NO_PARENTHESES_CALL, UNMATCHED_UNQUALIFIED_PARENTHESES_CALL, + UNMATCHED_WHEN_OPERATION), }; /* ********************************************************** */ @@ -3704,7 +3709,7 @@ private static boolean maxExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "maxExpression_1")) return false; boolean r; Marker m = enter_section_(b); - r = matchedExpression(b, l + 1, 22); + r = matchedExpression(b, l + 1, 23); r = r && maxExpression_1_1(b, l + 1); exit_section_(b, m, null, r); return r; @@ -3731,7 +3736,7 @@ private static boolean maxExpression_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "maxExpression_2")) return false; boolean r; Marker m = enter_section_(b); - r = matchedExpression(b, l + 1, 24); + r = matchedExpression(b, l + 1, 25); r = r && maxQualifiedParenthesesCall(b, l + 1); exit_section_(b, m, null, r); return r; @@ -3826,6 +3831,55 @@ public static boolean maxQualifiedParenthesesCall(PsiBuilder b, int l) { return r; } + /* ********************************************************** */ + // OPENING_CURLY EOL* + // containerArguments? EOL* + // CLOSING_CURLY + public static boolean multipleAliases(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "multipleAliases")) return false; + if (!nextTokenIs(b, OPENING_CURLY)) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeToken(b, OPENING_CURLY); + r = r && multipleAliases_1(b, l + 1); + r = r && multipleAliases_2(b, l + 1); + r = r && multipleAliases_3(b, l + 1); + r = r && consumeToken(b, CLOSING_CURLY); + exit_section_(b, m, MULTIPLE_ALIASES, r); + return r; + } + + // EOL* + private static boolean multipleAliases_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "multipleAliases_1")) return false; + int c = current_position_(b); + while (true) { + if (!consumeToken(b, EOL)) break; + if (!empty_element_parsed_guard_(b, "multipleAliases_1", c)) break; + c = current_position_(b); + } + return true; + } + + // containerArguments? + private static boolean multipleAliases_2(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "multipleAliases_2")) return false; + containerArguments(b, l + 1); + return true; + } + + // EOL* + private static boolean multipleAliases_3(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "multipleAliases_3")) return false; + int c = current_position_(b); + while (true) { + if (!consumeToken(b, EOL)) break; + if (!empty_element_parsed_guard_(b, "multipleAliases_3", c)) break; + c = current_position_(b); + } + return true; + } + /* ********************************************************** */ // EOL* MULTIPLICATION_OPERATOR EOL* public static boolean multiplicationInfixOperator(PsiBuilder b, int l) { @@ -5454,15 +5508,16 @@ private static boolean whenInfixOperator_2(PsiBuilder b, int l) { // 20: ATOM(matchedUnqualifiedNoParenthesesCall) // 21: POSTFIX(matchedBracketOperation) // 22: POSTFIX(matchedQualifiedAlias) - // 23: POSTFIX(matchedQualifiedBracketOperation) - // 24: POSTFIX(matchedQualifiedParenthesesCall) - // 25: POSTFIX(matchedQualifiedNoArgumentsCall) - // 26: ATOM(matchedAtUnqualifiedBracketOperation) - // 27: PREFIX(matchedAtNonNumericOperation) - // 28: ATOM(matchedUnqualifiedParenthesesCall) - // 29: ATOM(matchedUnqualifiedBracketOperation) - // 30: ATOM(matchedUnqualifiedNoArgumentsCall) - // 31: ATOM(matchedAccessExpression) + // 23: POSTFIX(matchedQualifiedMultipleAliases) + // 24: POSTFIX(matchedQualifiedBracketOperation) + // 25: POSTFIX(matchedQualifiedParenthesesCall) + // 26: POSTFIX(matchedQualifiedNoArgumentsCall) + // 27: ATOM(matchedAtUnqualifiedBracketOperation) + // 28: PREFIX(matchedAtNonNumericOperation) + // 29: ATOM(matchedUnqualifiedParenthesesCall) + // 30: ATOM(matchedUnqualifiedBracketOperation) + // 31: ATOM(matchedUnqualifiedNoArgumentsCall) + // 32: ATOM(matchedAccessExpression) public static boolean matchedExpression(PsiBuilder b, int l, int g) { if (!recursion_guard_(b, l, "matchedExpression")) return false; addVariant(b, ""); @@ -5565,15 +5620,19 @@ else if (g < 22 && matchedQualifiedAlias_0(b, l + 1)) { r = true; exit_section_(b, l, m, MATCHED_QUALIFIED_ALIAS, r, true, null); } - else if (g < 23 && matchedQualifiedBracketOperation_0(b, l + 1)) { + else if (g < 23 && matchedQualifiedMultipleAliases_0(b, l + 1)) { + r = true; + exit_section_(b, l, m, MATCHED_QUALIFIED_MULTIPLE_ALIASES, r, true, null); + } + else if (g < 24 && matchedQualifiedBracketOperation_0(b, l + 1)) { r = true; exit_section_(b, l, m, MATCHED_QUALIFIED_BRACKET_OPERATION, r, true, null); } - else if (g < 24 && matchedQualifiedParenthesesCall_0(b, l + 1)) { + else if (g < 25 && matchedQualifiedParenthesesCall_0(b, l + 1)) { r = true; exit_section_(b, l, m, MATCHED_QUALIFIED_PARENTHESES_CALL, r, true, null); } - else if (g < 25 && matchedQualifiedNoArgumentsCall_0(b, l + 1)) { + else if (g < 26 && matchedQualifiedNoArgumentsCall_0(b, l + 1)) { r = true; exit_section_(b, l, m, MATCHED_QUALIFIED_NO_ARGUMENTS_CALL, r, true, null); } @@ -5727,6 +5786,17 @@ private static boolean matchedQualifiedAlias_0(PsiBuilder b, int l) { return r; } + // dotInfixOperator multipleAliases + private static boolean matchedQualifiedMultipleAliases_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "matchedQualifiedMultipleAliases_0")) return false; + boolean r; + Marker m = enter_section_(b); + r = dotInfixOperator(b, l + 1); + r = r && multipleAliases(b, l + 1); + exit_section_(b, m, null, r); + return r; + } + // dotInfixOperator relativeIdentifier CALL bracketArguments private static boolean matchedQualifiedBracketOperation_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "matchedQualifiedBracketOperation_0")) return false; @@ -5794,7 +5864,7 @@ public static boolean matchedAtNonNumericOperation(PsiBuilder b, int l) { Marker m = enter_section_(b, l, _NONE_, null); r = matchedAtNonNumericOperation_0(b, l + 1); p = r; - r = p && matchedExpression(b, l, 27); + r = p && matchedExpression(b, l, 28); exit_section_(b, l, m, MATCHED_AT_NON_NUMERIC_OPERATION, r, p, null); return r || p; } @@ -5903,15 +5973,16 @@ public static boolean matchedAccessExpression(PsiBuilder b, int l) { // 20: ATOM(unmatchedUnqualifiedNoParenthesesCall) // 21: POSTFIX(unmatchedBracketOperation) // 22: POSTFIX(unmatchedQualifiedAlias) - // 23: POSTFIX(unmatchedQualifiedBracketOperation) - // 24: POSTFIX(unmatchedQualifiedParenthesesCall) - // 25: POSTFIX(unmatchedQualifiedNoArgumentsCall) - // 26: ATOM(unmatchedAtUnqualifiedBracketOperation) - // 27: PREFIX(unmatchedAtNonNumericOperation) - // 28: ATOM(unmatchedUnqualifiedParenthesesCall) - // 29: ATOM(unmatchedUnqualifiedBracketOperation) - // 30: ATOM(unmatchedUnqualifiedNoArgumentsCall) - // 31: ATOM(unmatchedAccessExpression) + // 23: POSTFIX(unmatchedQualifiedMultipleAliases) + // 24: POSTFIX(unmatchedQualifiedBracketOperation) + // 25: POSTFIX(unmatchedQualifiedParenthesesCall) + // 26: POSTFIX(unmatchedQualifiedNoArgumentsCall) + // 27: ATOM(unmatchedAtUnqualifiedBracketOperation) + // 28: PREFIX(unmatchedAtNonNumericOperation) + // 29: ATOM(unmatchedUnqualifiedParenthesesCall) + // 30: ATOM(unmatchedUnqualifiedBracketOperation) + // 31: ATOM(unmatchedUnqualifiedNoArgumentsCall) + // 32: ATOM(unmatchedAccessExpression) public static boolean unmatchedExpression(PsiBuilder b, int l, int g) { if (!recursion_guard_(b, l, "unmatchedExpression")) return false; addVariant(b, ""); @@ -6014,15 +6085,19 @@ else if (g < 22 && unmatchedQualifiedAlias_0(b, l + 1)) { r = true; exit_section_(b, l, m, UNMATCHED_QUALIFIED_ALIAS, r, true, null); } - else if (g < 23 && unmatchedQualifiedBracketOperation_0(b, l + 1)) { + else if (g < 23 && unmatchedQualifiedMultipleAliases_0(b, l + 1)) { + r = true; + exit_section_(b, l, m, UNMATCHED_QUALIFIED_MULTIPLE_ALIASES, r, true, null); + } + else if (g < 24 && unmatchedQualifiedBracketOperation_0(b, l + 1)) { r = true; exit_section_(b, l, m, UNMATCHED_QUALIFIED_BRACKET_OPERATION, r, true, null); } - else if (g < 24 && unmatchedQualifiedParenthesesCall_0(b, l + 1)) { + else if (g < 25 && unmatchedQualifiedParenthesesCall_0(b, l + 1)) { r = true; exit_section_(b, l, m, UNMATCHED_QUALIFIED_PARENTHESES_CALL, r, true, null); } - else if (g < 25 && unmatchedQualifiedNoArgumentsCall_0(b, l + 1)) { + else if (g < 26 && unmatchedQualifiedNoArgumentsCall_0(b, l + 1)) { r = true; exit_section_(b, l, m, UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL, r, true, null); } @@ -6208,6 +6283,17 @@ private static boolean unmatchedQualifiedAlias_0(PsiBuilder b, int l) { return r; } + // dotInfixOperator multipleAliases + private static boolean unmatchedQualifiedMultipleAliases_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "unmatchedQualifiedMultipleAliases_0")) return false; + boolean r; + Marker m = enter_section_(b); + r = dotInfixOperator(b, l + 1); + r = r && multipleAliases(b, l + 1); + exit_section_(b, m, null, r); + return r; + } + // dotInfixOperator relativeIdentifier CALL bracketArguments private static boolean unmatchedQualifiedBracketOperation_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unmatchedQualifiedBracketOperation_0")) return false; @@ -6291,7 +6377,7 @@ public static boolean unmatchedAtNonNumericOperation(PsiBuilder b, int l) { Marker m = enter_section_(b, l, _NONE_, null); r = unmatchedAtNonNumericOperation_0(b, l + 1); p = r; - r = p && unmatchedExpression(b, l, 27); + r = p && unmatchedExpression(b, l, 28); exit_section_(b, l, m, UNMATCHED_AT_NON_NUMERIC_OPERATION, r, p, null); return r || p; } diff --git a/gen/org/elixir_lang/psi/ElixirMatchedQualifiedMultipleAliases.java b/gen/org/elixir_lang/psi/ElixirMatchedQualifiedMultipleAliases.java new file mode 100644 index 000000000..ae7bb7439 --- /dev/null +++ b/gen/org/elixir_lang/psi/ElixirMatchedQualifiedMultipleAliases.java @@ -0,0 +1,21 @@ +// This is a generated file. Not intended for manual editing. +package org.elixir_lang.psi; + +import com.ericsson.otp.erlang.OtpErlangObject; +import org.jetbrains.annotations.NotNull; + +public interface ElixirMatchedQualifiedMultipleAliases extends ElixirMatchedExpression, QualifiedMultipleAliases { + + @NotNull + ElixirDotInfixOperator getDotInfixOperator(); + + @NotNull + ElixirMatchedExpression getMatchedExpression(); + + @NotNull + ElixirMultipleAliases getMultipleAliases(); + + @NotNull + OtpErlangObject quote(); + +} diff --git a/gen/org/elixir_lang/psi/ElixirMultipleAliases.java b/gen/org/elixir_lang/psi/ElixirMultipleAliases.java new file mode 100644 index 000000000..56215737b --- /dev/null +++ b/gen/org/elixir_lang/psi/ElixirMultipleAliases.java @@ -0,0 +1,24 @@ +// This is a generated file. Not intended for manual editing. +package org.elixir_lang.psi; + +import com.ericsson.otp.erlang.OtpErlangObject; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public interface ElixirMultipleAliases extends Quotable { + + @NotNull + List getEmptyParenthesesList(); + + @Nullable + ElixirKeywords getKeywords(); + + @NotNull + List getUnmatchedExpressionList(); + + @NotNull + OtpErlangObject quote(); + +} diff --git a/gen/org/elixir_lang/psi/ElixirTypes.java b/gen/org/elixir_lang/psi/ElixirTypes.java index 6ebb43fd5..dee92e848 100644 --- a/gen/org/elixir_lang/psi/ElixirTypes.java +++ b/gen/org/elixir_lang/psi/ElixirTypes.java @@ -129,6 +129,7 @@ public interface ElixirTypes { IElementType MATCHED_PIPE_OPERATION = new ElixirElementType("MATCHED_PIPE_OPERATION"); IElementType MATCHED_QUALIFIED_ALIAS = new ElixirElementType("MATCHED_QUALIFIED_ALIAS"); IElementType MATCHED_QUALIFIED_BRACKET_OPERATION = new ElixirElementType("MATCHED_QUALIFIED_BRACKET_OPERATION"); + IElementType MATCHED_QUALIFIED_MULTIPLE_ALIASES = new ElixirElementType("MATCHED_QUALIFIED_MULTIPLE_ALIASES"); IElementType MATCHED_QUALIFIED_NO_ARGUMENTS_CALL = ElementTypeFactory.factory("MATCHED_QUALIFIED_NO_ARGUMENTS_CALL"); IElementType MATCHED_QUALIFIED_NO_PARENTHESES_CALL = ElementTypeFactory.factory("MATCHED_QUALIFIED_NO_PARENTHESES_CALL"); IElementType MATCHED_QUALIFIED_PARENTHESES_CALL = ElementTypeFactory.factory("MATCHED_QUALIFIED_PARENTHESES_CALL"); @@ -142,6 +143,7 @@ public interface ElixirTypes { IElementType MATCHED_UNQUALIFIED_PARENTHESES_CALL = ElementTypeFactory.factory("MATCHED_UNQUALIFIED_PARENTHESES_CALL"); IElementType MATCHED_WHEN_OPERATION = new ElixirElementType("MATCHED_WHEN_OPERATION"); IElementType MATCH_INFIX_OPERATOR = new ElixirElementType("MATCH_INFIX_OPERATOR"); + IElementType MULTIPLE_ALIASES = new ElixirElementType("MULTIPLE_ALIASES"); IElementType MULTIPLICATION_INFIX_OPERATOR = new ElixirElementType("MULTIPLICATION_INFIX_OPERATOR"); IElementType NO_PARENTHESES_ARGUMENTS = new ElixirElementType("NO_PARENTHESES_ARGUMENTS"); IElementType NO_PARENTHESES_KEYWORDS = new ElixirElementType("NO_PARENTHESES_KEYWORDS"); @@ -199,6 +201,7 @@ public interface ElixirTypes { IElementType UNMATCHED_PIPE_OPERATION = new ElixirElementType("UNMATCHED_PIPE_OPERATION"); IElementType UNMATCHED_QUALIFIED_ALIAS = new ElixirElementType("UNMATCHED_QUALIFIED_ALIAS"); IElementType UNMATCHED_QUALIFIED_BRACKET_OPERATION = new ElixirElementType("UNMATCHED_QUALIFIED_BRACKET_OPERATION"); + IElementType UNMATCHED_QUALIFIED_MULTIPLE_ALIASES = new ElixirElementType("UNMATCHED_QUALIFIED_MULTIPLE_ALIASES"); IElementType UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL = ElementTypeFactory.factory("UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL"); IElementType UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL = ElementTypeFactory.factory("UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL"); IElementType UNMATCHED_QUALIFIED_PARENTHESES_CALL = ElementTypeFactory.factory("UNMATCHED_QUALIFIED_PARENTHESES_CALL"); @@ -704,6 +707,9 @@ else if (type == MATCHED_QUALIFIED_ALIAS) { else if (type == MATCHED_QUALIFIED_BRACKET_OPERATION) { return new ElixirMatchedQualifiedBracketOperationImpl(node); } + else if (type == MATCHED_QUALIFIED_MULTIPLE_ALIASES) { + return new ElixirMatchedQualifiedMultipleAliasesImpl(node); + } else if (type == MATCHED_QUALIFIED_NO_ARGUMENTS_CALL) { return new ElixirMatchedQualifiedNoArgumentsCallImpl(node); } @@ -743,6 +749,9 @@ else if (type == MATCHED_WHEN_OPERATION) { else if (type == MATCH_INFIX_OPERATOR) { return new ElixirMatchInfixOperatorImpl(node); } + else if (type == MULTIPLE_ALIASES) { + return new ElixirMultipleAliasesImpl(node); + } else if (type == MULTIPLICATION_INFIX_OPERATOR) { return new ElixirMultiplicationInfixOperatorImpl(node); } @@ -914,6 +923,9 @@ else if (type == UNMATCHED_QUALIFIED_ALIAS) { else if (type == UNMATCHED_QUALIFIED_BRACKET_OPERATION) { return new ElixirUnmatchedQualifiedBracketOperationImpl(node); } + else if (type == UNMATCHED_QUALIFIED_MULTIPLE_ALIASES) { + return new ElixirUnmatchedQualifiedMultipleAliasesImpl(node); + } else if (type == UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL) { return new ElixirUnmatchedQualifiedNoArgumentsCallImpl(node); } diff --git a/gen/org/elixir_lang/psi/ElixirUnmatchedQualifiedMultipleAliases.java b/gen/org/elixir_lang/psi/ElixirUnmatchedQualifiedMultipleAliases.java new file mode 100644 index 000000000..fa4c1845d --- /dev/null +++ b/gen/org/elixir_lang/psi/ElixirUnmatchedQualifiedMultipleAliases.java @@ -0,0 +1,21 @@ +// This is a generated file. Not intended for manual editing. +package org.elixir_lang.psi; + +import com.ericsson.otp.erlang.OtpErlangObject; +import org.jetbrains.annotations.NotNull; + +public interface ElixirUnmatchedQualifiedMultipleAliases extends ElixirUnmatchedExpression, QualifiedMultipleAliases { + + @NotNull + ElixirDotInfixOperator getDotInfixOperator(); + + @NotNull + ElixirMultipleAliases getMultipleAliases(); + + @NotNull + ElixirUnmatchedExpression getUnmatchedExpression(); + + @NotNull + OtpErlangObject quote(); + +} diff --git a/gen/org/elixir_lang/psi/ElixirVisitor.java b/gen/org/elixir_lang/psi/ElixirVisitor.java index c5bbf87f3..d7163c424 100644 --- a/gen/org/elixir_lang/psi/ElixirVisitor.java +++ b/gen/org/elixir_lang/psi/ElixirVisitor.java @@ -559,6 +559,11 @@ public void visitMatchedQualifiedBracketOperation(@NotNull ElixirMatchedQualifie // visitQualifiedBracketOperation(o); } + public void visitMatchedQualifiedMultipleAliases(@NotNull ElixirMatchedQualifiedMultipleAliases o) { + visitMatchedExpression(o); + // visitQualifiedMultipleAliases(o); + } + public void visitMatchedQualifiedNoArgumentsCall(@NotNull ElixirMatchedQualifiedNoArgumentsCall o) { visitMatchedExpression(o); // visitMatchedCall(o); @@ -629,6 +634,10 @@ public void visitMatchedWhenOperation(@NotNull ElixirMatchedWhenOperation o) { // visitWhen(o); } + public void visitMultipleAliases(@NotNull ElixirMultipleAliases o) { + visitQuotable(o); + } + public void visitMultiplicationInfixOperator(@NotNull ElixirMultiplicationInfixOperator o) { visitOperator(o); } @@ -896,6 +905,11 @@ public void visitUnmatchedQualifiedBracketOperation(@NotNull ElixirUnmatchedQual // visitQualifiedBracketOperation(o); } + public void visitUnmatchedQualifiedMultipleAliases(@NotNull ElixirUnmatchedQualifiedMultipleAliases o) { + visitUnmatchedExpression(o); + // visitQualifiedMultipleAliases(o); + } + public void visitUnmatchedQualifiedNoArgumentsCall(@NotNull ElixirUnmatchedQualifiedNoArgumentsCall o) { visitUnmatchedExpression(o); // visitQualifiedNoArgumentsCall(o); diff --git a/gen/org/elixir_lang/psi/impl/ElixirMatchedQualifiedMultipleAliasesImpl.java b/gen/org/elixir_lang/psi/impl/ElixirMatchedQualifiedMultipleAliasesImpl.java new file mode 100644 index 000000000..8092a9ca6 --- /dev/null +++ b/gen/org/elixir_lang/psi/impl/ElixirMatchedQualifiedMultipleAliasesImpl.java @@ -0,0 +1,49 @@ +// This is a generated file. Not intended for manual editing. +package org.elixir_lang.psi.impl; + +import com.ericsson.otp.erlang.OtpErlangObject; +import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.util.PsiTreeUtil; +import org.elixir_lang.psi.*; +import org.jetbrains.annotations.NotNull; + +public class ElixirMatchedQualifiedMultipleAliasesImpl extends ElixirMatchedExpressionImpl implements ElixirMatchedQualifiedMultipleAliases { + + public ElixirMatchedQualifiedMultipleAliasesImpl(ASTNode node) { + super(node); + } + + public void accept(@NotNull ElixirVisitor visitor) { + visitor.visitMatchedQualifiedMultipleAliases(this); + } + + public void accept(@NotNull PsiElementVisitor visitor) { + if (visitor instanceof ElixirVisitor) accept((ElixirVisitor)visitor); + else super.accept(visitor); + } + + @Override + @NotNull + public ElixirDotInfixOperator getDotInfixOperator() { + return notNullChild(PsiTreeUtil.getChildOfType(this, ElixirDotInfixOperator.class)); + } + + @Override + @NotNull + public ElixirMatchedExpression getMatchedExpression() { + return notNullChild(PsiTreeUtil.getChildOfType(this, ElixirMatchedExpression.class)); + } + + @Override + @NotNull + public ElixirMultipleAliases getMultipleAliases() { + return notNullChild(PsiTreeUtil.getChildOfType(this, ElixirMultipleAliases.class)); + } + + @NotNull + public OtpErlangObject quote() { + return ElixirPsiImplUtil.quote(this); + } + +} diff --git a/gen/org/elixir_lang/psi/impl/ElixirMultipleAliasesImpl.java b/gen/org/elixir_lang/psi/impl/ElixirMultipleAliasesImpl.java new file mode 100644 index 000000000..a4b3ed1f5 --- /dev/null +++ b/gen/org/elixir_lang/psi/impl/ElixirMultipleAliasesImpl.java @@ -0,0 +1,53 @@ +// This is a generated file. Not intended for manual editing. +package org.elixir_lang.psi.impl; + +import com.ericsson.otp.erlang.OtpErlangObject; +import com.intellij.extapi.psi.ASTWrapperPsiElement; +import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.util.PsiTreeUtil; +import org.elixir_lang.psi.*; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class ElixirMultipleAliasesImpl extends ASTWrapperPsiElement implements ElixirMultipleAliases { + + public ElixirMultipleAliasesImpl(ASTNode node) { + super(node); + } + + public void accept(@NotNull ElixirVisitor visitor) { + visitor.visitMultipleAliases(this); + } + + public void accept(@NotNull PsiElementVisitor visitor) { + if (visitor instanceof ElixirVisitor) accept((ElixirVisitor)visitor); + else super.accept(visitor); + } + + @Override + @NotNull + public List getEmptyParenthesesList() { + return PsiTreeUtil.getChildrenOfTypeAsList(this, ElixirEmptyParentheses.class); + } + + @Override + @Nullable + public ElixirKeywords getKeywords() { + return PsiTreeUtil.getChildOfType(this, ElixirKeywords.class); + } + + @Override + @NotNull + public List getUnmatchedExpressionList() { + return PsiTreeUtil.getChildrenOfTypeAsList(this, ElixirUnmatchedExpression.class); + } + + @NotNull + public OtpErlangObject quote() { + return ElixirPsiImplUtil.quote(this); + } + +} diff --git a/gen/org/elixir_lang/psi/impl/ElixirUnmatchedQualifiedMultipleAliasesImpl.java b/gen/org/elixir_lang/psi/impl/ElixirUnmatchedQualifiedMultipleAliasesImpl.java new file mode 100644 index 000000000..1956425b4 --- /dev/null +++ b/gen/org/elixir_lang/psi/impl/ElixirUnmatchedQualifiedMultipleAliasesImpl.java @@ -0,0 +1,49 @@ +// This is a generated file. Not intended for manual editing. +package org.elixir_lang.psi.impl; + +import com.ericsson.otp.erlang.OtpErlangObject; +import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.util.PsiTreeUtil; +import org.elixir_lang.psi.*; +import org.jetbrains.annotations.NotNull; + +public class ElixirUnmatchedQualifiedMultipleAliasesImpl extends ElixirUnmatchedExpressionImpl implements ElixirUnmatchedQualifiedMultipleAliases { + + public ElixirUnmatchedQualifiedMultipleAliasesImpl(ASTNode node) { + super(node); + } + + public void accept(@NotNull ElixirVisitor visitor) { + visitor.visitUnmatchedQualifiedMultipleAliases(this); + } + + public void accept(@NotNull PsiElementVisitor visitor) { + if (visitor instanceof ElixirVisitor) accept((ElixirVisitor)visitor); + else super.accept(visitor); + } + + @Override + @NotNull + public ElixirDotInfixOperator getDotInfixOperator() { + return notNullChild(PsiTreeUtil.getChildOfType(this, ElixirDotInfixOperator.class)); + } + + @Override + @NotNull + public ElixirMultipleAliases getMultipleAliases() { + return notNullChild(PsiTreeUtil.getChildOfType(this, ElixirMultipleAliases.class)); + } + + @Override + @NotNull + public ElixirUnmatchedExpression getUnmatchedExpression() { + return notNullChild(PsiTreeUtil.getChildOfType(this, ElixirUnmatchedExpression.class)); + } + + @NotNull + public OtpErlangObject quote() { + return ElixirPsiImplUtil.quote(this); + } + +} diff --git a/src/org/elixir_lang/Elixir.bnf b/src/org/elixir_lang/Elixir.bnf index c3d7ab276..73efb6a21 100644 --- a/src/org/elixir_lang/Elixir.bnf +++ b/src/org/elixir_lang/Elixir.bnf @@ -3,9 +3,9 @@ extends="com.intellij.extapi.psi.ASTWrapperPsiElement" // direct children of matchedExpression - extends("matched(AccessExpression|.*Operation|((((At)?Unq)|Q)ualified(No)?(Argument|Parenthese)s|Dot)Call|QualifiedAlias)")=matchedExpression + extends("matched(AccessExpression|.*Operation|((((At)?Unq)|Q)ualified(No)?(Argument|Parenthese)s|Dot)Call|Qualified(Alias|MultipleAliases))")=matchedExpression // direct children of unmatchedExpression - extends("unmatched(AccessExpression|.*Operation|((((At)?Unq)|Q)ualified(No)?(Argument|Parenthese)s|Dot)Call|QualifiedAlias)")=unmatchedExpression + extends("unmatched(AccessExpression|.*Operation|((((At)?Unq)|Q)ualified(No)?(Argument|Parenthese)s|Dot)Call|Qualified(Alias|MultipleAliases))")=unmatchedExpression // name identifier owner calls - no argument calls are included because in a pipeline they can have effective arguments elementTypeFactory("((un)?matched((((At)?Unq)|Q)ualified(No)?(Argument|Parenthese)s|Dot)||unqualifiedNoParenthesesManyArguments)Call")="org.elixir_lang.ElementTypeFactory.factory" @@ -1264,6 +1264,7 @@ matchedExpression ::= matchedCaptureNonNumericOperation | matchedUnqualifiedNoParenthesesCall | matchedBracketOperation | matchedQualifiedAlias | + matchedQualifiedMultipleAliases | matchedQualifiedBracketOperation | matchedQualifiedParenthesesCall | matchedQualifiedNoArgumentsCall | @@ -1812,6 +1813,26 @@ matchedQualifiedAlias ::= matchedExpression dotInfixOperator alias ] } +/* + * Qualified Multiple Alias + * + * See https://github.com/elixir-lang/elixir/pull/3666 + */ +matchedQualifiedMultipleAliases ::= matchedExpression dotInfixOperator multipleAliases + { + implements = "org.elixir_lang.psi.QualifiedMultipleAliases" + methods = [ + quote + ] + } + +// same rules as tuple, but quoting is different, so separate rule. +multipleAliases ::= OPENING_CURLY EOL* + containerArguments? EOL* + CLOSING_CURLY + { implements = "org.elixir_lang.psi.Quotable" methods = [quote] } + + /* * Qualified Identifier Bracket Operation */ @@ -2515,6 +2536,19 @@ unmatchedQualifiedAlias ::= unmatchedExpression dotInfixOperator alias ] } +/* + * Qualified Multiple Alias + * + * See https://github.com/elixir-lang/elixir/pull/3666 + */ +unmatchedQualifiedMultipleAliases ::= unmatchedExpression dotInfixOperator multipleAliases + { + implements = "org.elixir_lang.psi.QualifiedMultipleAliases" + methods = [ + quote + ] + } + /* * Qualified Identifier Bracket Operation */ @@ -2666,6 +2700,7 @@ unmatchedExpression ::= unmatchedCaptureNonNumericOperation | unmatchedUnqualifiedNoParenthesesCall | unmatchedBracketOperation | unmatchedQualifiedAlias | + unmatchedQualifiedMultipleAliases | unmatchedQualifiedBracketOperation | unmatchedQualifiedParenthesesCall | unmatchedQualifiedNoArgumentsCall | diff --git a/src/org/elixir_lang/psi/QualifiedMultipleAliases.java b/src/org/elixir_lang/psi/QualifiedMultipleAliases.java new file mode 100644 index 000000000..1ae40edb6 --- /dev/null +++ b/src/org/elixir_lang/psi/QualifiedMultipleAliases.java @@ -0,0 +1,7 @@ +package org.elixir_lang.psi; + +/** + * dotInfixOperator multipleAliases + */ +public interface QualifiedMultipleAliases extends Quotable { +} diff --git a/src/org/elixir_lang/psi/impl/ElixirPsiImplUtil.java b/src/org/elixir_lang/psi/impl/ElixirPsiImplUtil.java index 1386a655b..033b677b1 100644 --- a/src/org/elixir_lang/psi/impl/ElixirPsiImplUtil.java +++ b/src/org/elixir_lang/psi/impl/ElixirPsiImplUtil.java @@ -91,6 +91,7 @@ public class ElixirPsiImplUtil { public static final OtpErlangAtom FALSE = new OtpErlangAtom("false"); public static final OtpErlangAtom FN = new OtpErlangAtom("fn"); public static final OtpErlangAtom MINUS = new OtpErlangAtom("-"); + public static final OtpErlangAtom MULTIPLE_ALIASES = new OtpErlangAtom("{}"); public static final OtpErlangAtom NOT = new OtpErlangAtom("not"); public static final OtpErlangAtom PLUS = new OtpErlangAtom("+"); public static final OtpErlangAtom TRUE = new OtpErlangAtom("true"); @@ -3375,6 +3376,21 @@ public static OtpErlangObject quote(@NotNull final ElixirMapUpdateArguments mapU ); } + @Contract(pure = true) + @NotNull + public static OtpErlangObject quote(@NotNull final ElixirMultipleAliases multipleAliases) { + PsiElement[] children = multipleAliases.getChildren(); + OtpErlangObject[] quotedChildren = new OtpErlangObject[children.length]; + + int i = 0; + for (PsiElement child : children) { + Quotable quotableChild = (Quotable) child; + quotedChildren[i++] = quotableChild.quote(); + } + + return quotedFunctionArguments(quotedChildren); + } + @Contract(pure = true) @NotNull public static OtpErlangObject quote(@NotNull final ElixirNoParenthesesManyStrictNoParenthesesExpression noParenthesesManyStrictNoParenthesesExpression) { @@ -3628,6 +3644,38 @@ public static OtpErlangObject quote(@NotNull final QualifiedAlias qualifiedAlias ); } + @Contract(pure = true) + @NotNull + public static OtpErlangObject quote(@NotNull final QualifiedMultipleAliases qualifiedMultipleAliases) { + PsiElement[] children = qualifiedMultipleAliases.getChildren(); + + assert children.length == 3; + + Quotable multipleAliases = (Quotable) children[2]; + OtpErlangObject quotedMultipleAliases = multipleAliases.quote(); + + Quotable expression = (Quotable) children[0]; + OtpErlangObject quotedExpression = expression.quote(); + + OtpErlangList metadata = metadata((Operator) children[1]); + + // See https://github.com/lexmag/elixir/blob/8c57c9110301c1ee02d84b574c59feff00e14ba3/lib/elixir/src/elixir_parser.yrl#L644 + OtpErlangObject head = quotedFunctionCall( + ".", + metadata, + quotedExpression, + MULTIPLE_ALIASES + ); + + return new OtpErlangTuple( + new OtpErlangObject[] { + head, + metadata, + quotedMultipleAliases + } + ); + } + @Contract(pure = true) @NotNull public static OtpErlangObject quote(@NotNull final QualifiedBracketOperation qualifiedBracketOperation) { diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/BinaryWholeNumber.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/BinaryWholeNumber.txt index 531f6f5a6..b989171f1 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/BinaryWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/BinaryWholeNumber.txt @@ -4,7 +4,7 @@ Elixir File(0,9) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(6,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(6,7) PsiElement(0)('0')(6,7) PsiElement(b)('b')(7,8) PsiElement(0-1)('0')(8,9) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/CharListHeredoc.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/CharListHeredoc.txt index 5594878c1..ea75e1385 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/CharListHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/CharListHeredoc.txt @@ -4,7 +4,7 @@ Elixir File(0,23) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '''''(6,9) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '''''(6,9) PsiElement(Char List Heredoc Promoter ('''))(''''')(6,9) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(9,10) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/CharToken.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/CharToken.txt index 5aa8a3ad6..74939cc36 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/CharToken.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/CharToken.txt @@ -4,6 +4,6 @@ Elixir File(0,8) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '?'(6,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '?'(6,7) PsiElement(?)('?')(6,7) PsiElement(Char List Fragment)('2')(7,8) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/DecimalFloat.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/DecimalFloat.txt index 23cad0651..0a1da9c2c 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/DecimalFloat.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/DecimalFloat.txt @@ -4,7 +4,7 @@ Elixir File(0,9) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(6,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(6,7) PsiElement(0-9)('2')(6,7) PsiElement(Decimal Mark (.))('.')(7,8) PsiElement(0-9)('3')(8,9) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/DecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/DecimalWholeNumber.txt index 7aba9bae1..ce792d03b 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/DecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/DecimalWholeNumber.txt @@ -4,5 +4,5 @@ Elixir File(0,7) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(6,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(6,7) PsiElement(0-9)('2')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt index 5cfe8ab03..4b824f23e 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt @@ -4,7 +4,7 @@ Elixir File(0,9) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(6,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(6,7) PsiElement(0)('0')(6,7) PsiElement(x)('x')(7,8) PsiElement(A-F, a-f, 0-9)('2')(8,9) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/List.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/List.txt index 3576fb9af..808cd16a5 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/List.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/List.txt @@ -4,6 +4,6 @@ Elixir File(0,8) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '['(6,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '['(6,7) PsiElement([)('[')(6,7) PsiElement(])(']')(7,8) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/OctalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/OctalWholeNumber.txt index 530c4fff5..add66b362 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/OctalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/OctalWholeNumber.txt @@ -4,7 +4,7 @@ Elixir File(0,9) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(6,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(6,7) PsiElement(0)('0')(6,7) PsiElement(o)('o')(7,8) PsiElement(0-7)('2')(8,9) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/Sigil.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/Sigil.txt index f04e1a84c..4333f59f4 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/Sigil.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/Sigil.txt @@ -4,7 +4,7 @@ Elixir File(0,13) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(6,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(6,7) PsiElement(~)('~')(6,7) PsiElement(c)('c')(7,8) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(8,9) diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/StringHeredoc.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/StringHeredoc.txt index 8451dc851..b01daf122 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/StringHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/StringHeredoc.txt @@ -4,7 +4,7 @@ Elixir File(0,23) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '"""'(6,9) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '"""'(6,9) PsiElement(String Heredoc Promoter ("""))('"""')(6,9) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(9,10) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt index ca289144a..65b4f7e3e 100644 --- a/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/atom_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt @@ -4,7 +4,7 @@ Elixir File(0,9) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(1,5) PsiElement(.)('.')(5,6) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(6,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(6,7) PsiElement(0)('0')(6,7) PsiElement(A-Z, a, c-n, p-w, z)('z')(7,8) PsiElement(A-Z, a-z, 0-9)('2')(8,9) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/decimal_float_parsing_test_case/TrailingDecimalMark.txt b/testData/org/elixir_lang/parser_definition/decimal_float_parsing_test_case/TrailingDecimalMark.txt index 48cb586e2..c23dc12f8 100644 --- a/testData/org/elixir_lang/parser_definition/decimal_float_parsing_test_case/TrailingDecimalMark.txt +++ b/testData/org/elixir_lang/parser_definition/decimal_float_parsing_test_case/TrailingDecimalMark.txt @@ -4,5 +4,5 @@ Elixir File(0,2) ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(0,1) PsiElement(0-9)('0')(0,1) PsiElement(.)('.')(1,2) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, unexpected end of file(2,2) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, unexpected end of file(2,2) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/Atom.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/Atom.txt index 732521373..014fabcf0 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/Atom.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/Atom.txt @@ -5,6 +5,6 @@ Elixir File(0,9) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(4,5) PsiElement(:)(':')(4,5) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(5,9) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/BinaryWholeNumber.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/BinaryWholeNumber.txt index d8368d1d4..04f5dc322 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/BinaryWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/BinaryWholeNumber.txt @@ -5,7 +5,7 @@ Elixir File(0,7) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(4,5) PsiElement(0)('0')(4,5) PsiElement(b)('b')(5,6) PsiElement(0-1)('0')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/CharListHeredoc.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/CharListHeredoc.txt index dc4917256..7822e0c5b 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/CharListHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/CharListHeredoc.txt @@ -5,7 +5,7 @@ Elixir File(0,23) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '''''(4,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '''''(4,7) PsiElement(Char List Heredoc Promoter ('''))(''''')(4,7) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(7,8) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/CharToken.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/CharToken.txt index 388c1b7a5..d99e6ba7d 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/CharToken.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/CharToken.txt @@ -5,6 +5,6 @@ Elixir File(0,6) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '?'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '?'(4,5) PsiElement(?)('?')(4,5) PsiElement(Char List Fragment)('2')(5,6) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/DecimalFloat.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/DecimalFloat.txt index 6fd6e6b88..9258eca09 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/DecimalFloat.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/DecimalFloat.txt @@ -5,7 +5,7 @@ Elixir File(0,7) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(4,5) PsiElement(0-9)('2')(4,5) PsiElement(Decimal Mark (.))('.')(5,6) PsiElement(0-9)('3')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/DecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/DecimalWholeNumber.txt index 1b3b119c4..c84e6db59 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/DecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/DecimalWholeNumber.txt @@ -5,5 +5,5 @@ Elixir File(0,5) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(4,5) PsiElement(0-9)('2')(4,5) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt index 3a9015a12..da7153c87 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt @@ -5,7 +5,7 @@ Elixir File(0,7) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(4,5) PsiElement(0)('0')(4,5) PsiElement(x)('x')(5,6) PsiElement(A-F, a-f, 0-9)('2')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/List.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/List.txt index e5c29b024..21d6a6537 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/List.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/List.txt @@ -5,7 +5,7 @@ Elixir File(0,13) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '['(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '['(4,5) PsiElement([)('[')(4,5) PsiElement(identifier)('one')(5,8) PsiElement(Keyword Pair Colon (:))(':')(8,9) diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/OctalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/OctalWholeNumber.txt index 3dcb0edda..17da1a06b 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/OctalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/OctalWholeNumber.txt @@ -5,7 +5,7 @@ Elixir File(0,7) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(4,5) PsiElement(0)('0')(4,5) PsiElement(o)('o')(5,6) PsiElement(0-7)('2')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/Sigil.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/Sigil.txt index 3b88dfe9b..6dd871548 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/Sigil.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/Sigil.txt @@ -5,7 +5,7 @@ Elixir File(0,11) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(4,5) PsiElement(~)('~')(4,5) PsiElement(c)('c')(5,6) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(6,7) diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/StringHeredoc.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/StringHeredoc.txt index b6d939db6..2553e9852 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/StringHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/StringHeredoc.txt @@ -5,7 +5,7 @@ Elixir File(0,23) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '"""'(4,7) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '"""'(4,7) PsiElement(String Heredoc Promoter ("""))('"""')(4,7) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(7,8) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt index 9e9281f7a..fe9647a33 100644 --- a/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/empty_block_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt @@ -5,7 +5,7 @@ Elixir File(0,7) PsiElement(;)(';')(1,2) PsiElement())(')')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(4,5) PsiElement(0)('0')(4,5) PsiElement(A-Z, a, c-n, p-w, z)('z')(5,6) PsiElement(A-Z, a-z, 0-9)('2')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/Atom.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/Atom.txt index aafd2ae45..34d677493 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/Atom.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/Atom.txt @@ -13,7 +13,7 @@ Elixir File(0,33) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(12,13) PsiElement(:)(':')(12,13) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('two')(13,16) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) @@ -32,6 +32,6 @@ Elixir File(0,33) PsiElement(String Heredoc Terminator ("""))('"""')(25,28) PsiElement(.)('.')(28,29) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(29,30) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(29,30) PsiElement(:)(':')(29,30) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('two')(30,33) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/BinaryWholeNumber.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/BinaryWholeNumber.txt index c4917ea5e..555453b6c 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/BinaryWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/BinaryWholeNumber.txt @@ -13,7 +13,7 @@ Elixir File(0,31) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(12,13) PsiElement(0)('0')(12,13) PsiElement(b)('b')(13,14) PsiElement(0-1)('0')(14,15) @@ -33,7 +33,7 @@ Elixir File(0,31) PsiElement(String Heredoc Terminator ("""))('"""')(24,27) PsiElement(.)('.')(27,28) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(28,29) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(28,29) PsiElement(0)('0')(28,29) PsiElement(b)('b')(29,30) PsiElement(0-1)('0')(30,31) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/CharToken.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/CharToken.txt index 9fcc781d5..6e24bb7ba 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/CharToken.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/CharToken.txt @@ -13,7 +13,7 @@ Elixir File(0,29) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '?'(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '?'(12,13) PsiElement(?)('?')(12,13) PsiElement(Char List Fragment)('2')(13,14) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(14,15) @@ -32,6 +32,6 @@ Elixir File(0,29) PsiElement(String Heredoc Terminator ("""))('"""')(23,26) PsiElement(.)('.')(26,27) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '?'(27,28) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '?'(27,28) PsiElement(?)('?')(27,28) PsiElement(Char List Fragment)('2')(28,29) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/DecimalFloat.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/DecimalFloat.txt index bf3d622db..8640e3fae 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/DecimalFloat.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/DecimalFloat.txt @@ -13,7 +13,7 @@ Elixir File(0,31) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(12,13) PsiElement(0-9)('2')(12,13) PsiElement(Decimal Mark (.))('.')(13,14) PsiElement(0-9)('3')(14,15) @@ -33,7 +33,7 @@ Elixir File(0,31) PsiElement(String Heredoc Terminator ("""))('"""')(24,27) PsiElement(.)('.')(27,28) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(28,29) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(28,29) PsiElement(0-9)('2')(28,29) PsiElement(Decimal Mark (.))('.')(29,30) PsiElement(0-9)('3')(30,31) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/DecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/DecimalWholeNumber.txt index a22c4a6bc..6ddc6abd7 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/DecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/DecimalWholeNumber.txt @@ -13,7 +13,7 @@ Elixir File(0,27) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(12,13) PsiElement(0-9)('2')(12,13) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(13,14) PsiElement(\\n, \\r\\n)('\n')(13,14) @@ -31,5 +31,5 @@ Elixir File(0,27) PsiElement(String Heredoc Terminator ("""))('"""')(22,25) PsiElement(.)('.')(25,26) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(26,27) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(26,27) PsiElement(0-9)('2')(26,27) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt index e5e1dc08a..2d0772c82 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt @@ -13,7 +13,7 @@ Elixir File(0,31) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(12,13) PsiElement(0)('0')(12,13) PsiElement(x)('x')(13,14) PsiElement(A-F, a-f, 0-9)('2')(14,15) @@ -33,7 +33,7 @@ Elixir File(0,31) PsiElement(String Heredoc Terminator ("""))('"""')(24,27) PsiElement(.)('.')(27,28) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(28,29) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(28,29) PsiElement(0)('0')(28,29) PsiElement(x)('x')(29,30) PsiElement(A-F, a-f, 0-9)('2')(30,31) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/List.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/List.txt index 3d8877504..9569b788b 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/List.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/List.txt @@ -13,7 +13,7 @@ Elixir File(0,29) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '['(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '['(12,13) PsiElement([)('[')(12,13) PsiElement(])(']')(13,14) PsiElement(\\n, \\r\\n)('\n')(14,15) diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/OctalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/OctalWholeNumber.txt index 2e4882555..ab4c2fda4 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/OctalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/OctalWholeNumber.txt @@ -13,7 +13,7 @@ Elixir File(0,31) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(12,13) PsiElement(0)('0')(12,13) PsiElement(o)('o')(13,14) PsiElement(0-7)('2')(14,15) @@ -33,7 +33,7 @@ Elixir File(0,31) PsiElement(String Heredoc Terminator ("""))('"""')(24,27) PsiElement(.)('.')(27,28) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(28,29) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(28,29) PsiElement(0)('0')(28,29) PsiElement(o)('o')(29,30) PsiElement(0-7)('2')(30,31) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/Sigil.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/Sigil.txt index 8dc4a85bd..f137a25bb 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/Sigil.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/Sigil.txt @@ -13,7 +13,7 @@ Elixir File(0,39) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(12,13) PsiElement(~)('~')(12,13) PsiElement(c)('c')(13,14) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(14,15) @@ -35,7 +35,7 @@ Elixir File(0,39) PsiElement(Char List Heredoc Terminator ('''))(''''')(28,31) PsiElement(.)('.')(31,32) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(32,33) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(32,33) PsiElement(~)('~')(32,33) PsiElement(c)('c')(33,34) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(34,35) diff --git a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt index 9ae5d2981..f3e60b2f4 100644 --- a/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/heredoc_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt @@ -13,7 +13,7 @@ Elixir File(0,31) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(12,13) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(12,13) PsiElement(0)('0')(12,13) PsiElement(A-Z, a, c-n, p-w, z)('z')(13,14) PsiElement(A-Z, a-z, 0-9)('2')(14,15) @@ -33,7 +33,7 @@ Elixir File(0,31) PsiElement(String Heredoc Terminator ("""))('"""')(24,27) PsiElement(.)('.')(27,28) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(28,29) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(28,29) PsiElement(0)('0')(28,29) PsiElement(A-Z, a, c-n, p-w, z)('z')(29,30) PsiElement(A-Z, a-z, 0-9)('2')(30,31) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/Atom.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/Atom.txt index 81468f436..4396070d3 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/Atom.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/Atom.txt @@ -4,6 +4,6 @@ Elixir File(0,7) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(3,4) PsiElement(:)(':')(3,4) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('two')(4,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/BinaryWholeNumber.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/BinaryWholeNumber.txt index ec6fcb78a..8d63982eb 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/BinaryWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/BinaryWholeNumber.txt @@ -4,7 +4,7 @@ Elixir File(0,6) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(3,4) PsiElement(0)('0')(3,4) PsiElement(b)('b')(4,5) PsiElement(0-1)('0')(5,6) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/CharListHeredoc.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/CharListHeredoc.txt index c58d368f0..a5424f838 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/CharListHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/CharListHeredoc.txt @@ -4,7 +4,7 @@ Elixir File(0,20) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '''''(3,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '''''(3,6) PsiElement(Char List Heredoc Promoter ('''))(''''')(3,6) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(6,7) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/CharToken.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/CharToken.txt index d8755381e..515f10f44 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/CharToken.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/CharToken.txt @@ -4,6 +4,6 @@ Elixir File(0,5) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '?'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '?'(3,4) PsiElement(?)('?')(3,4) PsiElement(Char List Fragment)('2')(4,5) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/DecimalFloat.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/DecimalFloat.txt index cee6ae673..f146062d5 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/DecimalFloat.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/DecimalFloat.txt @@ -4,7 +4,7 @@ Elixir File(0,6) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(3,4) PsiElement(0-9)('2')(3,4) PsiElement(Decimal Mark (.))('.')(4,5) PsiElement(0-9)('3')(5,6) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/DecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/DecimalWholeNumber.txt index 31d57e488..b0407fd35 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/DecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/DecimalWholeNumber.txt @@ -4,5 +4,5 @@ Elixir File(0,4) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(3,4) PsiElement(0-9)('2')(3,4) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt index 8668fa7cc..c0a5d1afc 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt @@ -4,7 +4,7 @@ Elixir File(0,6) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(3,4) PsiElement(0)('0')(3,4) PsiElement(x)('x')(4,5) PsiElement(A-F, a-f, 0-9)('2')(5,6) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/OctalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/OctalWholeNumber.txt index 1b8a36f81..40f4ec978 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/OctalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/OctalWholeNumber.txt @@ -4,7 +4,7 @@ Elixir File(0,6) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(3,4) PsiElement(0)('0')(3,4) PsiElement(o)('o')(4,5) PsiElement(0-7)('2')(5,6) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/Sigil.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/Sigil.txt index 65e25c5d1..2fa53fdd6 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/Sigil.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/Sigil.txt @@ -4,7 +4,7 @@ Elixir File(0,10) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(3,4) PsiElement(~)('~')(3,4) PsiElement(c)('c')(4,5) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(5,6) diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/StringHeredoc.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/StringHeredoc.txt index 35c8cdafc..c88a271f5 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/StringHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/StringHeredoc.txt @@ -4,7 +4,7 @@ Elixir File(0,20) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '"""'(3,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '"""'(3,6) PsiElement(String Heredoc Promoter ("""))('"""')(3,6) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(6,7) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt index c67e83502..541820a1e 100644 --- a/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/list_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt @@ -4,7 +4,7 @@ Elixir File(0,6) PsiElement([)('[')(0,1) PsiElement(])(']')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(3,4) PsiElement(0)('0')(3,4) PsiElement(A-Z, a, c-n, p-w, z)('z')(4,5) PsiElement(A-Z, a-z, 0-9)('2')(5,6) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Alias.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Alias.txt deleted file mode 100644 index 30b471cf6..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Alias.txt +++ /dev/null @@ -1,9 +0,0 @@ -Elixir File(0,7) - ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(0,7) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) - ElixirAliasImpl(ALIAS)(0,3) - PsiElement(Alias)('One')(0,3) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) - PsiElement(.)('.')(3,4) - ElixirAliasImpl(ALIAS)(4,7) - PsiElement(Alias)('Two')(4,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AliasDotIdentifier.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AliasDotIdentifier.txt deleted file mode 100644 index 94b6e089d..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AliasDotIdentifier.txt +++ /dev/null @@ -1,9 +0,0 @@ -Elixir File(0,16) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(0,16) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,5) - ElixirAliasImpl(ALIAS)(0,5) - PsiElement(Alias)('Alias')(0,5) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(5,6) - PsiElement(.)('.')(5,6) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(6,16) - PsiElement(identifier)('identifier')(6,16) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AliasDotIdentifierDotIdentifier.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AliasDotIdentifierDotIdentifier.txt deleted file mode 100644 index 1d43cc021..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AliasDotIdentifierDotIdentifier.txt +++ /dev/null @@ -1,14 +0,0 @@ -Elixir File(0,13) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(0,13) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(0,7) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) - ElixirAliasImpl(ALIAS)(0,3) - PsiElement(Alias)('One')(0,3) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) - PsiElement(.)('.')(3,4) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(4,7) - PsiElement(identifier)('two')(4,7) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(7,8) - PsiElement(.)('.')(7,8) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(8,13) - PsiElement(identifier)('three')(8,13) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Associativity.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Associativity.txt deleted file mode 100644 index c5d3d3b9e..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Associativity.txt +++ /dev/null @@ -1,74 +0,0 @@ -Elixir File(0,69) - ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(0,13) - ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(0,7) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) - ElixirAliasImpl(ALIAS)(0,3) - PsiElement(Alias)('One')(0,3) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) - PsiElement(.)('.')(3,4) - ElixirAliasImpl(ALIAS)(4,7) - PsiElement(Alias)('Two')(4,7) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(7,8) - PsiElement(.)('.')(7,8) - ElixirAliasImpl(ALIAS)(8,13) - PsiElement(Alias)('Three')(8,13) - ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(13,14) - PsiElement(\\n, \\r\\n)('\n')(13,14) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(14,27) - ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(14,21) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(14,17) - ElixirAliasImpl(ALIAS)(14,17) - PsiElement(Alias)('One')(14,17) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(17,18) - PsiElement(.)('.')(17,18) - ElixirAliasImpl(ALIAS)(18,21) - PsiElement(Alias)('Two')(18,21) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(21,22) - PsiElement(.)('.')(21,22) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(22,27) - PsiElement(identifier)('three')(22,27) - ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(27,28) - PsiElement(\\n, \\r\\n)('\n')(27,28) - ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(28,41) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(28,35) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(28,31) - ElixirAliasImpl(ALIAS)(28,31) - PsiElement(Alias)('One')(28,31) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(31,32) - PsiElement(.)('.')(31,32) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(32,35) - PsiElement(identifier)('two')(32,35) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) - PsiElement(.)('.')(35,36) - ElixirAliasImpl(ALIAS)(36,41) - PsiElement(Alias)('Three')(36,41) - ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(41,42) - PsiElement(\\n, \\r\\n)('\n')(41,42) - ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(42,55) - ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(42,49) - UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(42,45) - ElixirIdentifierImpl(IDENTIFIER)(42,45) - PsiElement(identifier)('one')(42,45) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(45,46) - PsiElement(.)('.')(45,46) - ElixirAliasImpl(ALIAS)(46,49) - PsiElement(Alias)('Two')(46,49) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(49,50) - PsiElement(.)('.')(49,50) - ElixirAliasImpl(ALIAS)(50,55) - PsiElement(Alias)('Three')(50,55) - ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(55,56) - PsiElement(\\n, \\r\\n)('\n')(55,56) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(56,69) - ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(56,63) - UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(56,59) - ElixirIdentifierImpl(IDENTIFIER)(56,59) - PsiElement(identifier)('one')(56,59) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(59,60) - PsiElement(.)('.')(59,60) - ElixirAliasImpl(ALIAS)(60,63) - PsiElement(Alias)('Two')(60,63) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(63,64) - PsiElement(.)('.')(63,64) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(64,69) - PsiElement(identifier)('three')(64,69) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtNonNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtNonNumericOperation.txt deleted file mode 100644 index 13bbcf86c..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtNonNumericOperation.txt +++ /dev/null @@ -1,16 +0,0 @@ -Elixir File(0,9) - UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL(0,9) - ElixirUnmatchedAtNonNumericOperationImpl(UNMATCHED_AT_NON_NUMERIC_OPERATION)(0,4) - ElixirAtPrefixOperatorImpl(AT_PREFIX_OPERATOR)(0,1) - PsiElement(@)('@')(0,1) - UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(1,4) - ElixirIdentifierImpl(IDENTIFIER)(1,4) - PsiElement(identifier)('one')(1,4) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(4,5) - PsiElement(.)('.')(4,5) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(5,6) - PsiElement(@)('@')(5,6) - ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(6,9) - MATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(6,9) - ElixirIdentifierImpl(IDENTIFIER)(6,9) - PsiElement(identifier)('two')(6,9) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtNumericOperation.txt deleted file mode 100644 index a53dadbc4..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtNumericOperation.txt +++ /dev/null @@ -1,18 +0,0 @@ -Elixir File(0,5) - UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL(0,5) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,2) - ElixirAtNumericOperationImpl(AT_NUMERIC_OPERATION)(0,2) - ElixirAtPrefixOperatorImpl(AT_PREFIX_OPERATOR)(0,1) - PsiElement(@)('@')(0,1) - ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(1,2) - ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(1,2) - PsiElement(0-9)('1')(1,2) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(2,3) - PsiElement(.)('.')(2,3) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(3,4) - PsiElement(@)('@')(3,4) - ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(4,5) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(4,5) - ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(4,5) - ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(4,5) - PsiElement(0-9)('2')(4,5) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Atom.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Atom.txt index c497f8fe7..c33e25cc3 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Atom.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Atom.txt @@ -4,6 +4,6 @@ Elixir File(0,9) PsiElement(:)(':')(0,1) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('one')(1,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(5,6) PsiElement(:)(':')(5,6) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('two')(6,9) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtomKeyword.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtomKeyword.txt deleted file mode 100644 index 1f8084df1..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/AtomKeyword.txt +++ /dev/null @@ -1,10 +0,0 @@ -Elixir File(0,10) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(0,10) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,4) - ElixirAtomKeywordImpl(ATOM_KEYWORD)(0,4) - PsiElement(true)('true')(0,4) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(4,5) - PsiElement(.)('.')(4,5) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(5,10) - ElixirAtomKeywordImpl(ATOM_KEYWORD)(5,10) - PsiElement(false)('false')(5,10) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/BinaryWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/BinaryWholeNumber.txt index 31e04db95..3d98b36fd 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/BinaryWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/BinaryWholeNumber.txt @@ -6,7 +6,7 @@ Elixir File(0,7) ElixirBinaryDigitsImpl(BINARY_DIGITS)(2,3) PsiElement(0-1)('0')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(4,5) PsiElement(0)('0')(4,5) PsiElement(b)('b')(5,6) PsiElement(0-1)('1')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CaptureNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CaptureNumericOperation.txt deleted file mode 100644 index a9d8c5b65..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CaptureNumericOperation.txt +++ /dev/null @@ -1,18 +0,0 @@ -Elixir File(0,5) - UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL(0,5) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,2) - ElixirCaptureNumericOperationImpl(CAPTURE_NUMERIC_OPERATION)(0,2) - ElixirCapturePrefixOperatorImpl(CAPTURE_PREFIX_OPERATOR)(0,1) - PsiElement(&)('&')(0,1) - ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(1,2) - ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(1,2) - PsiElement(0-9)('1')(1,2) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(2,3) - PsiElement(.)('.')(2,3) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(3,4) - PsiElement(&)('&')(3,4) - ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(4,5) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(4,5) - ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(4,5) - ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(4,5) - PsiElement(0-9)('2')(4,5) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharListHeredoc.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharListHeredoc.txt index 76baaabfe..41146b614 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharListHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharListHeredoc.txt @@ -13,7 +13,7 @@ Elixir File(0,31) PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '''''(12,15) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '''''(12,15) PsiElement(Char List Heredoc Promoter ('''))(''''')(12,15) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(15,16) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharListLine.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharListLine.txt deleted file mode 100644 index 4b9624744..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharListLine.txt +++ /dev/null @@ -1,16 +0,0 @@ -Elixir File(0,11) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(0,11) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,5) - ElixirCharListLineImpl(CHAR_LIST_LINE)(0,5) - PsiElement(Char List Promoter ('))(''')(0,1) - ElixirQuoteCharListBodyImpl(QUOTE_CHAR_LIST_BODY)(1,4) - PsiElement(Char List Fragment)('One')(1,4) - PsiElement(Char List Terminator ('))(''')(4,5) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(5,6) - PsiElement(.)('.')(5,6) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(6,11) - ElixirCharListLineImpl(CHAR_LIST_LINE)(6,11) - PsiElement(Char List Promoter ('))(''')(6,7) - ElixirQuoteCharListBodyImpl(QUOTE_CHAR_LIST_BODY)(7,10) - PsiElement(Char List Fragment)('Two')(7,10) - PsiElement(Char List Terminator ('))(''')(10,11) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharToken.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharToken.txt index 856d08d50..1013bf92b 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharToken.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/CharToken.txt @@ -4,6 +4,6 @@ Elixir File(0,5) PsiElement(?)('?')(0,1) PsiElement(Char List Fragment)('1')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '?'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '?'(3,4) PsiElement(?)('?')(3,4) PsiElement(Char List Fragment)('2')(4,5) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/DecimalFloat.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/DecimalFloat.txt index f08fa4141..2e9abf863 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/DecimalFloat.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/DecimalFloat.txt @@ -18,7 +18,7 @@ Elixir File(0,13) ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(5,6) PsiElement(0-9)('3')(5,6) PsiElement(.)('.')(6,7) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '4'(7,8) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '4'(7,8) PsiElement(0-9)('4')(7,8) PsiElement(Decimal Mark (.))('.')(8,9) PsiElement(0-9)('5')(9,10) diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/DecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/DecimalWholeNumber.txt deleted file mode 100644 index f2b8b2e6b..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/DecimalWholeNumber.txt +++ /dev/null @@ -1,15 +0,0 @@ -Elixir File(0,49) - PsiComment(#)('# DecimalWholeNumber, not MatchedDotOperation')(0,45) - ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(45,46) - PsiElement(\\n, \\r\\n)('\n')(45,46) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(46,49) - ElixirDecimalFloatImpl(DECIMAL_FLOAT)(46,49) - ElixirDecimalFloatIntegralImpl(DECIMAL_FLOAT_INTEGRAL)(46,47) - ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(46,47) - ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(46,47) - PsiElement(0-9)('1')(46,47) - PsiElement(Decimal Mark (.))('.')(47,48) - ElixirDecimalFloatFractionalImpl(DECIMAL_FLOAT_FRACTIONAL)(48,49) - ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(48,49) - ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(48,49) - PsiElement(0-9)('2')(48,49) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/EmptyBlock.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/EmptyBlock.txt deleted file mode 100644 index a58be28f3..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/EmptyBlock.txt +++ /dev/null @@ -1,14 +0,0 @@ -Elixir File(0,7) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) - ElixirParentheticalStabImpl(PARENTHETICAL_STAB)(0,3) - PsiElement(()('(')(0,1) - PsiElement(;)(';')(1,2) - PsiElement())(')')(2,3) - PsiElement(.)('.')(3,4) - PsiElement(()('(')(4,5) - PsiErrorElement:'(', ')', , , '\\n, \\r\\n' or identifier expected, got ';'(5,5) - - ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(5,6) - PsiElement(;)(';')(5,6) - PsiErrorElement:'(', , '\\n, \\r\\n' or identifier expected, got ')'(6,7) - PsiElement())(')')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt index 67853a969..c9389c052 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt @@ -6,7 +6,7 @@ Elixir File(0,7) ElixirHexadecimalDigitsImpl(HEXADECIMAL_DIGITS)(2,3) PsiElement(A-F, a-f, 0-9)('1')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(4,5) PsiElement(0)('0')(4,5) PsiElement(x)('x')(5,6) PsiElement(A-F, a-f, 0-9)('2')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/IdentifierDotIdentifierDotIdentifier.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/IdentifierDotIdentifierDotIdentifier.txt deleted file mode 100644 index 1fb1b75f5..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/IdentifierDotIdentifierDotIdentifier.txt +++ /dev/null @@ -1,14 +0,0 @@ -Elixir File(0,13) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(0,13) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(0,7) - UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(0,3) - ElixirIdentifierImpl(IDENTIFIER)(0,3) - PsiElement(identifier)('one')(0,3) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) - PsiElement(.)('.')(3,4) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(4,7) - PsiElement(identifier)('two')(4,7) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(7,8) - PsiElement(.)('.')(7,8) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(8,13) - PsiElement(identifier)('three')(8,13) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/List.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/List.txt index 4e54ea332..3365b5218 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/List.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/List.txt @@ -13,7 +13,7 @@ Elixir File(0,19) PsiElement())(')')(7,8) PsiElement(])(']')(8,9) PsiElement(.)('.')(9,10) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '['(10,11) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '['(10,11) PsiElement([)('[')(10,11) PsiElement(identifier)('two')(11,14) PsiElement(Keyword Pair Colon (:))(':')(14,15) diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/MatchedCallOperation.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/MatchedCallOperation.txt deleted file mode 100644 index ad361d854..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/MatchedCallOperation.txt +++ /dev/null @@ -1,25 +0,0 @@ -Elixir File(0,30) - UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL(0,30) - UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(0,3) - ElixirIdentifierImpl(IDENTIFIER)(0,3) - PsiElement(identifier)('one')(0,3) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) - PsiElement(.)('.')(3,4) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(4,7) - PsiElement(identifier)('two')(4,7) - PsiWhiteSpace(' ')(7,8) - ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(8,30) - MATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(8,18) - ElixirIdentifierImpl(IDENTIFIER)(8,18) - PsiElement(identifier)('positional')(8,18) - PsiElement(,)(',')(18,19) - PsiWhiteSpace(' ')(19,20) - ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(20,30) - ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(20,30) - ElixirKeywordKeyImpl(KEYWORD_KEY)(20,23) - PsiElement(identifier)('key')(20,23) - PsiElement(Keyword Pair Colon (:))(':')(23,24) - PsiWhiteSpace(' ')(24,25) - MATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(25,30) - ElixirIdentifierImpl(IDENTIFIER)(25,30) - PsiElement(identifier)('value')(25,30) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/OctalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/OctalWholeNumber.txt index 48f98d293..536e774aa 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/OctalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/OctalWholeNumber.txt @@ -6,7 +6,7 @@ Elixir File(0,7) ElixirOctalDigitsImpl(OCTAL_DIGITS)(2,3) PsiElement(0-7)('1')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(4,5) PsiElement(0)('0')(4,5) PsiElement(o)('o')(5,6) PsiElement(0-7)('2')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Sigil.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Sigil.txt index 0fc0845d9..721363db4 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Sigil.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Sigil.txt @@ -10,7 +10,7 @@ Elixir File(0,15) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(7,7) PsiElement(.)('.')(7,8) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(8,9) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(8,9) PsiElement(~)('~')(8,9) PsiElement(s)('s')(9,10) PsiElement(String Sigil Promoter ({, [, <, ", /, (, |, '))('{')(10,11) diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/StringHeredoc.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/StringHeredoc.txt index c56b0649b..d839a0364 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/StringHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/StringHeredoc.txt @@ -13,7 +13,7 @@ Elixir File(0,31) PsiElement(String Heredoc Terminator ("""))('"""')(8,11) PsiElement(.)('.')(11,12) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '"""'(12,15) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '"""'(12,15) PsiElement(String Heredoc Promoter ("""))('"""')(12,15) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(15,16) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/StringLine.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/StringLine.txt deleted file mode 100644 index 5d4d3c4cb..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/StringLine.txt +++ /dev/null @@ -1,16 +0,0 @@ -Elixir File(0,11) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(0,11) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,5) - ElixirStringLineImpl(STRING_LINE)(0,5) - PsiElement(String Promoter ("))('"')(0,1) - ElixirQuoteStringBodyImpl(QUOTE_STRING_BODY)(1,4) - PsiElement(String Fragment)('One')(1,4) - PsiElement(String Terminator ("))('"')(4,5) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(5,6) - PsiElement(.)('.')(5,6) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(6,11) - ElixirStringLineImpl(STRING_LINE)(6,11) - PsiElement(String Promoter ("))('"')(6,7) - ElixirQuoteStringBodyImpl(QUOTE_STRING_BODY)(7,10) - PsiElement(String Fragment)('Two')(7,10) - PsiElement(String Terminator ("))('"')(10,11) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/UnaryNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/UnaryNumericOperation.txt deleted file mode 100644 index 4fcf82123..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/UnaryNumericOperation.txt +++ /dev/null @@ -1,18 +0,0 @@ -Elixir File(0,5) - UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL(0,5) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,2) - ElixirUnaryNumericOperationImpl(UNARY_NUMERIC_OPERATION)(0,2) - ElixirUnaryPrefixOperatorImpl(UNARY_PREFIX_OPERATOR)(0,1) - PsiElement(not, ~~~, !, ^)('!')(0,1) - ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(1,2) - ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(1,2) - PsiElement(0-9)('1')(1,2) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(2,3) - PsiElement(.)('.')(2,3) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(3,4) - PsiElement(not, ~~~, !, ^)('!')(3,4) - ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(4,5) - ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(4,5) - ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(4,5) - ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(4,5) - PsiElement(0-9)('2')(4,5) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt index 67853a969..c9389c052 100644 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt @@ -6,7 +6,7 @@ Elixir File(0,7) ElixirHexadecimalDigitsImpl(HEXADECIMAL_DIGITS)(2,3) PsiElement(A-F, a-f, 0-9)('1')(2,3) PsiElement(.)('.')(3,4) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(4,5) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(4,5) PsiElement(0)('0')(4,5) PsiElement(x)('x')(5,6) PsiElement(A-F, a-f, 0-9)('2')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Variable.txt b/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Variable.txt deleted file mode 100644 index 1a1a21770..000000000 --- a/testData/org/elixir_lang/parser_definition/matched_dot_operation_parsing_test_case/Variable.txt +++ /dev/null @@ -1,9 +0,0 @@ -Elixir File(0,7) - UNMATCHED_QUALIFIED_NO_ARGUMENTS_CALL(0,7) - UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(0,3) - ElixirIdentifierImpl(IDENTIFIER)(0,3) - PsiElement(identifier)('one')(0,3) - ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) - PsiElement(.)('.')(3,4) - ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(4,7) - PsiElement(identifier)('two')(4,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Alias.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Alias.ex new file mode 100644 index 000000000..4043d738c --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Alias.ex @@ -0,0 +1,3 @@ +One.{} +One.{Two} +One.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Alias.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Alias.txt new file mode 100644 index 000000000..9ea706ce1 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Alias.txt @@ -0,0 +1,43 @@ +Elixir File(0,33) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(6,7) + PsiElement(\\n, \\r\\n)('\n')(6,7) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(7,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(7,10) + ElixirAliasImpl(ALIAS)(7,10) + PsiElement(Alias)('One')(7,10) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(10,11) + PsiElement(.)('.')(10,11) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(11,16) + PsiElement({)('{')(11,12) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(12,15) + ElixirAliasImpl(ALIAS)(12,15) + PsiElement(Alias)('Two')(12,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,33) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirAliasImpl(ALIAS)(17,20) + PsiElement(Alias)('One')(17,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,33) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(,)(',')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(27,32) + ElixirAliasImpl(ALIAS)(27,32) + PsiElement(Alias)('Three')(27,32) + PsiElement(})('}')(32,33) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtNumericOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtNumericOperation.ex new file mode 100644 index 000000000..66754c928 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtNumericOperation.ex @@ -0,0 +1,3 @@ +@1.{} +@1.{Two} +@1.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtNumericOperation.txt new file mode 100644 index 000000000..918186b21 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtNumericOperation.txt @@ -0,0 +1,55 @@ +Elixir File(0,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,5) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,2) + ElixirAtNumericOperationImpl(AT_NUMERIC_OPERATION)(0,2) + ElixirAtPrefixOperatorImpl(AT_PREFIX_OPERATOR)(0,1) + PsiElement(@)('@')(0,1) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(1,2) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(1,2) + PsiElement(0-9)('1')(1,2) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(2,3) + PsiElement(.)('.')(2,3) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(3,5) + PsiElement({)('{')(3,4) + PsiElement(})('}')(4,5) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(5,6) + PsiElement(\\n, \\r\\n)('\n')(5,6) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(6,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(6,8) + ElixirAtNumericOperationImpl(AT_NUMERIC_OPERATION)(6,8) + ElixirAtPrefixOperatorImpl(AT_PREFIX_OPERATOR)(6,7) + PsiElement(@)('@')(6,7) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(7,8) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(7,8) + PsiElement(0-9)('1')(7,8) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(8,9) + PsiElement(.)('.')(8,9) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(9,14) + PsiElement({)('{')(9,10) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + PsiElement(})('}')(13,14) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(14,15) + PsiElement(\\n, \\r\\n)('\n')(14,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(15,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(15,17) + ElixirAtNumericOperationImpl(AT_NUMERIC_OPERATION)(15,17) + ElixirAtPrefixOperatorImpl(AT_PREFIX_OPERATOR)(15,16) + PsiElement(@)('@')(15,16) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(16,17) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(16,17) + PsiElement(0-9)('1')(16,17) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(17,18) + PsiElement(.)('.')(17,18) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(18,30) + PsiElement({)('{')(18,19) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(19,22) + ElixirAliasImpl(ALIAS)(19,22) + PsiElement(Alias)('Two')(19,22) + PsiElement(,)(',')(22,23) + PsiWhiteSpace(' ')(23,24) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(24,29) + ElixirAliasImpl(ALIAS)(24,29) + PsiElement(Alias)('Three')(24,29) + PsiElement(})('}')(29,30) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtomKeyword.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtomKeyword.ex new file mode 100644 index 000000000..e38f5f234 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtomKeyword.ex @@ -0,0 +1,3 @@ +false.{} +nil.{One} +true.{One, Two} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtomKeyword.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtomKeyword.txt new file mode 100644 index 000000000..d4d9558a0 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/AtomKeyword.txt @@ -0,0 +1,43 @@ +Elixir File(0,34) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,8) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,5) + ElixirAtomKeywordImpl(ATOM_KEYWORD)(0,5) + PsiElement(false)('false')(0,5) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(5,6) + PsiElement(.)('.')(5,6) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(6,8) + PsiElement({)('{')(6,7) + PsiElement(})('}')(7,8) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(8,9) + PsiElement(\\n, \\r\\n)('\n')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,18) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(9,12) + ElixirAtomKeywordImpl(ATOM_KEYWORD)(9,12) + PsiElement(nil)('nil')(9,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,18) + PsiElement({)('{')(13,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(14,17) + ElixirAliasImpl(ALIAS)(14,17) + PsiElement(Alias)('One')(14,17) + PsiElement(})('}')(17,18) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(18,19) + PsiElement(\\n, \\r\\n)('\n')(18,19) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(19,34) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(19,23) + ElixirAtomKeywordImpl(ATOM_KEYWORD)(19,23) + PsiElement(true)('true')(19,23) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(23,24) + PsiElement(.)('.')(23,24) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(24,34) + PsiElement({)('{')(24,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(25,28) + ElixirAliasImpl(ALIAS)(25,28) + PsiElement(Alias)('One')(25,28) + PsiElement(,)(',')(28,29) + PsiWhiteSpace(' ')(29,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,33) + ElixirAliasImpl(ALIAS)(30,33) + PsiElement(Alias)('Two')(30,33) + PsiElement(})('}')(33,34) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/BinaryWholeNumber.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/BinaryWholeNumber.ex new file mode 100644 index 000000000..349075120 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/BinaryWholeNumber.ex @@ -0,0 +1,3 @@ +0b1.{} +0b1.{Two} +0b1.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/BinaryWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/BinaryWholeNumber.txt new file mode 100644 index 000000000..f18548178 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/BinaryWholeNumber.txt @@ -0,0 +1,52 @@ +Elixir File(0,33) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirBinaryWholeNumberImpl(BINARY_WHOLE_NUMBER)(0,3) + PsiElement(0)('0')(0,1) + PsiElement(b)('b')(1,2) + ElixirBinaryDigitsImpl(BINARY_DIGITS)(2,3) + PsiElement(0-1)('1')(2,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(6,7) + PsiElement(\\n, \\r\\n)('\n')(6,7) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(7,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(7,10) + ElixirBinaryWholeNumberImpl(BINARY_WHOLE_NUMBER)(7,10) + PsiElement(0)('0')(7,8) + PsiElement(b)('b')(8,9) + ElixirBinaryDigitsImpl(BINARY_DIGITS)(9,10) + PsiElement(0-1)('1')(9,10) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(10,11) + PsiElement(.)('.')(10,11) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(11,16) + PsiElement({)('{')(11,12) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(12,15) + ElixirAliasImpl(ALIAS)(12,15) + PsiElement(Alias)('Two')(12,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,33) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirBinaryWholeNumberImpl(BINARY_WHOLE_NUMBER)(17,20) + PsiElement(0)('0')(17,18) + PsiElement(b)('b')(18,19) + ElixirBinaryDigitsImpl(BINARY_DIGITS)(19,20) + PsiElement(0-1)('1')(19,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,33) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(,)(',')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(27,32) + ElixirAliasImpl(ALIAS)(27,32) + PsiElement(Alias)('Three')(27,32) + PsiElement(})('}')(32,33) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CaptureNumericOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CaptureNumericOperation.ex new file mode 100644 index 000000000..9ce443c44 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CaptureNumericOperation.ex @@ -0,0 +1,3 @@ +&1.{} +&1.{Two} +&1.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CaptureNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CaptureNumericOperation.txt new file mode 100644 index 000000000..5a6e06c16 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CaptureNumericOperation.txt @@ -0,0 +1,55 @@ +Elixir File(0,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,5) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,2) + ElixirCaptureNumericOperationImpl(CAPTURE_NUMERIC_OPERATION)(0,2) + ElixirCapturePrefixOperatorImpl(CAPTURE_PREFIX_OPERATOR)(0,1) + PsiElement(&)('&')(0,1) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(1,2) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(1,2) + PsiElement(0-9)('1')(1,2) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(2,3) + PsiElement(.)('.')(2,3) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(3,5) + PsiElement({)('{')(3,4) + PsiElement(})('}')(4,5) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(5,6) + PsiElement(\\n, \\r\\n)('\n')(5,6) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(6,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(6,8) + ElixirCaptureNumericOperationImpl(CAPTURE_NUMERIC_OPERATION)(6,8) + ElixirCapturePrefixOperatorImpl(CAPTURE_PREFIX_OPERATOR)(6,7) + PsiElement(&)('&')(6,7) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(7,8) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(7,8) + PsiElement(0-9)('1')(7,8) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(8,9) + PsiElement(.)('.')(8,9) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(9,14) + PsiElement({)('{')(9,10) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + PsiElement(})('}')(13,14) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(14,15) + PsiElement(\\n, \\r\\n)('\n')(14,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(15,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(15,17) + ElixirCaptureNumericOperationImpl(CAPTURE_NUMERIC_OPERATION)(15,17) + ElixirCapturePrefixOperatorImpl(CAPTURE_PREFIX_OPERATOR)(15,16) + PsiElement(&)('&')(15,16) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(16,17) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(16,17) + PsiElement(0-9)('1')(16,17) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(17,18) + PsiElement(.)('.')(17,18) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(18,30) + PsiElement({)('{')(18,19) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(19,22) + ElixirAliasImpl(ALIAS)(19,22) + PsiElement(Alias)('Two')(19,22) + PsiElement(,)(',')(22,23) + PsiWhiteSpace(' ')(23,24) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(24,29) + ElixirAliasImpl(ALIAS)(24,29) + PsiElement(Alias)('Three')(24,29) + PsiElement(})('}')(29,30) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListHeredoc.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListHeredoc.ex new file mode 100644 index 000000000..27e625c66 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListHeredoc.ex @@ -0,0 +1,11 @@ +''' +One +'''.{} + +''' +One +'''.{Two} + +''' +One +'''.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListHeredoc.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListHeredoc.txt new file mode 100644 index 000000000..16c2a6806 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListHeredoc.txt @@ -0,0 +1,75 @@ +Elixir File(0,59) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,11) + ElixirCharListHeredocImpl(CHAR_LIST_HEREDOC)(0,11) + PsiElement(Char List Heredoc Promoter ('''))(''''')(0,3) + PsiElement(\\n, \\r\\n)('\n')(3,4) + ElixirCharListHeredocLineImpl(CHAR_LIST_HEREDOC_LINE)(4,8) + ElixirHeredocLinePrefixImpl(HEREDOC_LINE_PREFIX)(4,4) + + ElixirQuoteCharListBodyImpl(QUOTE_CHAR_LIST_BODY)(4,7) + PsiElement(Char List Fragment)('One')(4,7) + PsiElement(\\n, \\r\\n)('\n')(7,8) + ElixirHeredocPrefixImpl(HEREDOC_PREFIX)(8,8) + + PsiElement(Char List Heredoc Terminator ('''))(''''')(8,11) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(11,12) + PsiElement(.)('.')(11,12) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(12,14) + PsiElement({)('{')(12,13) + PsiElement(})('}')(13,14) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(14,16) + PsiElement(\\n, \\r\\n)('\n')(14,15) + PsiElement(\\n, \\r\\n)('\n')(15,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(16,33) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,27) + ElixirCharListHeredocImpl(CHAR_LIST_HEREDOC)(16,27) + PsiElement(Char List Heredoc Promoter ('''))(''''')(16,19) + PsiElement(\\n, \\r\\n)('\n')(19,20) + ElixirCharListHeredocLineImpl(CHAR_LIST_HEREDOC_LINE)(20,24) + ElixirHeredocLinePrefixImpl(HEREDOC_LINE_PREFIX)(20,20) + + ElixirQuoteCharListBodyImpl(QUOTE_CHAR_LIST_BODY)(20,23) + PsiElement(Char List Fragment)('One')(20,23) + PsiElement(\\n, \\r\\n)('\n')(23,24) + ElixirHeredocPrefixImpl(HEREDOC_PREFIX)(24,24) + + PsiElement(Char List Heredoc Terminator ('''))(''''')(24,27) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(27,28) + PsiElement(.)('.')(27,28) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(28,33) + PsiElement({)('{')(28,29) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(29,32) + ElixirAliasImpl(ALIAS)(29,32) + PsiElement(Alias)('Two')(29,32) + PsiElement(})('}')(32,33) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(33,35) + PsiElement(\\n, \\r\\n)('\n')(33,34) + PsiElement(\\n, \\r\\n)('\n')(34,35) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(35,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(35,46) + ElixirCharListHeredocImpl(CHAR_LIST_HEREDOC)(35,46) + PsiElement(Char List Heredoc Promoter ('''))(''''')(35,38) + PsiElement(\\n, \\r\\n)('\n')(38,39) + ElixirCharListHeredocLineImpl(CHAR_LIST_HEREDOC_LINE)(39,43) + ElixirHeredocLinePrefixImpl(HEREDOC_LINE_PREFIX)(39,39) + + ElixirQuoteCharListBodyImpl(QUOTE_CHAR_LIST_BODY)(39,42) + PsiElement(Char List Fragment)('One')(39,42) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirHeredocPrefixImpl(HEREDOC_PREFIX)(43,43) + + PsiElement(Char List Heredoc Terminator ('''))(''''')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListLine.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListLine.ex new file mode 100644 index 000000000..0fdf56bf6 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListLine.ex @@ -0,0 +1,3 @@ +'One'.{} +'One'.{Two} +'One'.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListLine.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListLine.txt new file mode 100644 index 000000000..581b3c1dc --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharListLine.txt @@ -0,0 +1,52 @@ +Elixir File(0,39) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,8) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,5) + ElixirCharListLineImpl(CHAR_LIST_LINE)(0,5) + PsiElement(Char List Promoter ('))(''')(0,1) + ElixirQuoteCharListBodyImpl(QUOTE_CHAR_LIST_BODY)(1,4) + PsiElement(Char List Fragment)('One')(1,4) + PsiElement(Char List Terminator ('))(''')(4,5) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(5,6) + PsiElement(.)('.')(5,6) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(6,8) + PsiElement({)('{')(6,7) + PsiElement(})('}')(7,8) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(8,9) + PsiElement(\\n, \\r\\n)('\n')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,20) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(9,14) + ElixirCharListLineImpl(CHAR_LIST_LINE)(9,14) + PsiElement(Char List Promoter ('))(''')(9,10) + ElixirQuoteCharListBodyImpl(QUOTE_CHAR_LIST_BODY)(10,13) + PsiElement(Char List Fragment)('One')(10,13) + PsiElement(Char List Terminator ('))(''')(13,14) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(14,15) + PsiElement(.)('.')(14,15) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(15,20) + PsiElement({)('{')(15,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,19) + ElixirAliasImpl(ALIAS)(16,19) + PsiElement(Alias)('Two')(16,19) + PsiElement(})('}')(19,20) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(20,21) + PsiElement(\\n, \\r\\n)('\n')(20,21) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(21,39) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(21,26) + ElixirCharListLineImpl(CHAR_LIST_LINE)(21,26) + PsiElement(Char List Promoter ('))(''')(21,22) + ElixirQuoteCharListBodyImpl(QUOTE_CHAR_LIST_BODY)(22,25) + PsiElement(Char List Fragment)('One')(22,25) + PsiElement(Char List Terminator ('))(''')(25,26) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(26,27) + PsiElement(.)('.')(26,27) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(27,39) + PsiElement({)('{')(27,28) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(28,31) + ElixirAliasImpl(ALIAS)(28,31) + PsiElement(Alias)('Two')(28,31) + PsiElement(,)(',')(31,32) + PsiWhiteSpace(' ')(32,33) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(33,38) + ElixirAliasImpl(ALIAS)(33,38) + PsiElement(Alias)('Three')(33,38) + PsiElement(})('}')(38,39) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharToken.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharToken.ex new file mode 100644 index 000000000..b01cc7f58 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharToken.ex @@ -0,0 +1,3 @@ +?1.{} +?1.{Two} +?1.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharToken.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharToken.txt new file mode 100644 index 000000000..337385b62 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/CharToken.txt @@ -0,0 +1,46 @@ +Elixir File(0,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,5) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,2) + ElixirCharTokenImpl(CHAR_TOKEN)(0,2) + PsiElement(?)('?')(0,1) + PsiElement(Char List Fragment)('1')(1,2) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(2,3) + PsiElement(.)('.')(2,3) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(3,5) + PsiElement({)('{')(3,4) + PsiElement(})('}')(4,5) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(5,6) + PsiElement(\\n, \\r\\n)('\n')(5,6) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(6,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(6,8) + ElixirCharTokenImpl(CHAR_TOKEN)(6,8) + PsiElement(?)('?')(6,7) + PsiElement(Char List Fragment)('1')(7,8) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(8,9) + PsiElement(.)('.')(8,9) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(9,14) + PsiElement({)('{')(9,10) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + PsiElement(})('}')(13,14) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(14,15) + PsiElement(\\n, \\r\\n)('\n')(14,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(15,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(15,17) + ElixirCharTokenImpl(CHAR_TOKEN)(15,17) + PsiElement(?)('?')(15,16) + PsiElement(Char List Fragment)('1')(16,17) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(17,18) + PsiElement(.)('.')(17,18) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(18,30) + PsiElement({)('{')(18,19) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(19,22) + ElixirAliasImpl(ALIAS)(19,22) + PsiElement(Alias)('Two')(19,22) + PsiElement(,)(',')(22,23) + PsiWhiteSpace(' ')(23,24) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(24,29) + ElixirAliasImpl(ALIAS)(24,29) + PsiElement(Alias)('Three')(24,29) + PsiElement(})('}')(29,30) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalFloat.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalFloat.ex new file mode 100644 index 000000000..e97ce48c5 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalFloat.ex @@ -0,0 +1,3 @@ +1.2e-3.{} +1.2e-3.{Four} +1.2e-3.{Four, Five} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalFloat.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalFloat.txt new file mode 100644 index 000000000..73eca017c --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalFloat.txt @@ -0,0 +1,88 @@ +Elixir File(0,43) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,9) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,6) + ElixirDecimalFloatImpl(DECIMAL_FLOAT)(0,6) + ElixirDecimalFloatIntegralImpl(DECIMAL_FLOAT_INTEGRAL)(0,1) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(0,1) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(0,1) + PsiElement(0-9)('1')(0,1) + PsiElement(Decimal Mark (.))('.')(1,2) + ElixirDecimalFloatFractionalImpl(DECIMAL_FLOAT_FRACTIONAL)(2,3) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(2,3) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(2,3) + PsiElement(0-9)('2')(2,3) + PsiElement(E, e)('e')(3,4) + ElixirDecimalFloatExponentImpl(DECIMAL_FLOAT_EXPONENT)(4,6) + ElixirDecimalFloatExponentSignImpl(DECIMAL_FLOAT_EXPONENT_SIGN)(4,5) + PsiElement(+, -)('-')(4,5) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(5,6) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(5,6) + PsiElement(0-9)('3')(5,6) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(6,7) + PsiElement(.)('.')(6,7) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(7,9) + PsiElement({)('{')(7,8) + PsiElement(})('}')(8,9) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(9,10) + PsiElement(\\n, \\r\\n)('\n')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,23) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,16) + ElixirDecimalFloatImpl(DECIMAL_FLOAT)(10,16) + ElixirDecimalFloatIntegralImpl(DECIMAL_FLOAT_INTEGRAL)(10,11) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(10,11) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(10,11) + PsiElement(0-9)('1')(10,11) + PsiElement(Decimal Mark (.))('.')(11,12) + ElixirDecimalFloatFractionalImpl(DECIMAL_FLOAT_FRACTIONAL)(12,13) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(12,13) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(12,13) + PsiElement(0-9)('2')(12,13) + PsiElement(E, e)('e')(13,14) + ElixirDecimalFloatExponentImpl(DECIMAL_FLOAT_EXPONENT)(14,16) + ElixirDecimalFloatExponentSignImpl(DECIMAL_FLOAT_EXPONENT_SIGN)(14,15) + PsiElement(+, -)('-')(14,15) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(15,16) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(15,16) + PsiElement(0-9)('3')(15,16) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(16,17) + PsiElement(.)('.')(16,17) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(17,23) + PsiElement({)('{')(17,18) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(18,22) + ElixirAliasImpl(ALIAS)(18,22) + PsiElement(Alias)('Four')(18,22) + PsiElement(})('}')(22,23) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(23,24) + PsiElement(\\n, \\r\\n)('\n')(23,24) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(24,43) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(24,30) + ElixirDecimalFloatImpl(DECIMAL_FLOAT)(24,30) + ElixirDecimalFloatIntegralImpl(DECIMAL_FLOAT_INTEGRAL)(24,25) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(24,25) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(24,25) + PsiElement(0-9)('1')(24,25) + PsiElement(Decimal Mark (.))('.')(25,26) + ElixirDecimalFloatFractionalImpl(DECIMAL_FLOAT_FRACTIONAL)(26,27) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(26,27) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(26,27) + PsiElement(0-9)('2')(26,27) + PsiElement(E, e)('e')(27,28) + ElixirDecimalFloatExponentImpl(DECIMAL_FLOAT_EXPONENT)(28,30) + ElixirDecimalFloatExponentSignImpl(DECIMAL_FLOAT_EXPONENT_SIGN)(28,29) + PsiElement(+, -)('-')(28,29) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(29,30) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(29,30) + PsiElement(0-9)('3')(29,30) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(30,31) + PsiElement(.)('.')(30,31) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(31,43) + PsiElement({)('{')(31,32) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(32,36) + ElixirAliasImpl(ALIAS)(32,36) + PsiElement(Alias)('Four')(32,36) + PsiElement(,)(',')(36,37) + PsiWhiteSpace(' ')(37,38) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(38,42) + ElixirAliasImpl(ALIAS)(38,42) + PsiElement(Alias)('Five')(38,42) + PsiElement(})('}')(42,43) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalWholeNumber.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalWholeNumber.ex new file mode 100644 index 000000000..14ee007cb --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalWholeNumber.ex @@ -0,0 +1,3 @@ +1.{} +1.{Two} +1.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalWholeNumber.txt new file mode 100644 index 000000000..fa8a1450e --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/DecimalWholeNumber.txt @@ -0,0 +1,46 @@ +Elixir File(0,27) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,4) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,1) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(0,1) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(0,1) + PsiElement(0-9)('1')(0,1) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(1,2) + PsiElement(.)('.')(1,2) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(2,4) + PsiElement({)('{')(2,3) + PsiElement(})('}')(3,4) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(4,5) + PsiElement(\\n, \\r\\n)('\n')(4,5) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(5,12) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(5,6) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(5,6) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(5,6) + PsiElement(0-9)('1')(5,6) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(6,7) + PsiElement(.)('.')(6,7) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(7,12) + PsiElement({)('{')(7,8) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(8,11) + ElixirAliasImpl(ALIAS)(8,11) + PsiElement(Alias)('Two')(8,11) + PsiElement(})('}')(11,12) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(12,13) + PsiElement(\\n, \\r\\n)('\n')(12,13) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(13,27) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(13,14) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(13,14) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(13,14) + PsiElement(0-9)('1')(13,14) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(14,15) + PsiElement(.)('.')(14,15) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(15,27) + PsiElement({)('{')(15,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,19) + ElixirAliasImpl(ALIAS)(16,19) + PsiElement(Alias)('Two')(16,19) + PsiElement(,)(',')(19,20) + PsiWhiteSpace(' ')(20,21) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(21,26) + ElixirAliasImpl(ALIAS)(21,26) + PsiElement(Alias)('Three')(21,26) + PsiElement(})('}')(26,27) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/EmptyBlock.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/EmptyBlock.ex new file mode 100644 index 000000000..bc1b7f4a5 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/EmptyBlock.ex @@ -0,0 +1,3 @@ +(;).{} +(;).{One} +(;).{One, Two} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/EmptyBlock.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/EmptyBlock.txt new file mode 100644 index 000000000..c87ffb181 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/EmptyBlock.txt @@ -0,0 +1,49 @@ +Elixir File(0,31) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirParentheticalStabImpl(PARENTHETICAL_STAB)(0,3) + PsiElement(()('(')(0,1) + PsiElement(;)(';')(1,2) + PsiElement())(')')(2,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(6,7) + PsiElement(\\n, \\r\\n)('\n')(6,7) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(7,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(7,10) + ElixirParentheticalStabImpl(PARENTHETICAL_STAB)(7,10) + PsiElement(()('(')(7,8) + PsiElement(;)(';')(8,9) + PsiElement())(')')(9,10) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(10,11) + PsiElement(.)('.')(10,11) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(11,16) + PsiElement({)('{')(11,12) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(12,15) + ElixirAliasImpl(ALIAS)(12,15) + PsiElement(Alias)('One')(12,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,31) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirParentheticalStabImpl(PARENTHETICAL_STAB)(17,20) + PsiElement(()('(')(17,18) + PsiElement(;)(';')(18,19) + PsiElement())(')')(19,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,31) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('One')(22,25) + PsiElement(,)(',')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(27,30) + ElixirAliasImpl(ALIAS)(27,30) + PsiElement(Alias)('Two')(27,30) + PsiElement(})('}')(30,31) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/HexadecimalWholeNumber.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/HexadecimalWholeNumber.ex new file mode 100644 index 000000000..a07ac8ea1 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/HexadecimalWholeNumber.ex @@ -0,0 +1,3 @@ +0xFF.{} +0xFF.{Two} +0xFF.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/HexadecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/HexadecimalWholeNumber.txt new file mode 100644 index 000000000..728a81b69 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/HexadecimalWholeNumber.txt @@ -0,0 +1,52 @@ +Elixir File(0,36) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,7) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,4) + ElixirHexadecimalWholeNumberImpl(HEXADECIMAL_WHOLE_NUMBER)(0,4) + PsiElement(0)('0')(0,1) + PsiElement(x)('x')(1,2) + ElixirHexadecimalDigitsImpl(HEXADECIMAL_DIGITS)(2,4) + PsiElement(A-F, a-f, 0-9)('FF')(2,4) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(4,5) + PsiElement(.)('.')(4,5) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(5,7) + PsiElement({)('{')(5,6) + PsiElement(})('}')(6,7) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(7,8) + PsiElement(\\n, \\r\\n)('\n')(7,8) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(8,18) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(8,12) + ElixirHexadecimalWholeNumberImpl(HEXADECIMAL_WHOLE_NUMBER)(8,12) + PsiElement(0)('0')(8,9) + PsiElement(x)('x')(9,10) + ElixirHexadecimalDigitsImpl(HEXADECIMAL_DIGITS)(10,12) + PsiElement(A-F, a-f, 0-9)('FF')(10,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,18) + PsiElement({)('{')(13,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(14,17) + ElixirAliasImpl(ALIAS)(14,17) + PsiElement(Alias)('Two')(14,17) + PsiElement(})('}')(17,18) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(18,19) + PsiElement(\\n, \\r\\n)('\n')(18,19) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(19,36) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(19,23) + ElixirHexadecimalWholeNumberImpl(HEXADECIMAL_WHOLE_NUMBER)(19,23) + PsiElement(0)('0')(19,20) + PsiElement(x)('x')(20,21) + ElixirHexadecimalDigitsImpl(HEXADECIMAL_DIGITS)(21,23) + PsiElement(A-F, a-f, 0-9)('FF')(21,23) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(23,24) + PsiElement(.)('.')(23,24) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(24,36) + PsiElement({)('{')(24,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(25,28) + ElixirAliasImpl(ALIAS)(25,28) + PsiElement(Alias)('Two')(25,28) + PsiElement(,)(',')(28,29) + PsiWhiteSpace(' ')(29,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + PsiElement(})('}')(35,36) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/List.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/List.ex new file mode 100644 index 000000000..3e8c67aed --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/List.ex @@ -0,0 +1,3 @@ +[].{} +[].{Two} +[].{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/List.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/List.txt new file mode 100644 index 000000000..9d049e5dd --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/List.txt @@ -0,0 +1,46 @@ +Elixir File(0,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,5) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,2) + ElixirListImpl(LIST)(0,2) + PsiElement([)('[')(0,1) + PsiElement(])(']')(1,2) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(2,3) + PsiElement(.)('.')(2,3) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(3,5) + PsiElement({)('{')(3,4) + PsiElement(})('}')(4,5) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(5,6) + PsiElement(\\n, \\r\\n)('\n')(5,6) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(6,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(6,8) + ElixirListImpl(LIST)(6,8) + PsiElement([)('[')(6,7) + PsiElement(])(']')(7,8) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(8,9) + PsiElement(.)('.')(8,9) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(9,14) + PsiElement({)('{')(9,10) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + PsiElement(})('}')(13,14) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(14,15) + PsiElement(\\n, \\r\\n)('\n')(14,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(15,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(15,17) + ElixirListImpl(LIST)(15,17) + PsiElement([)('[')(15,16) + PsiElement(])(']')(16,17) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(17,18) + PsiElement(.)('.')(17,18) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(18,30) + PsiElement({)('{')(18,19) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(19,22) + ElixirAliasImpl(ALIAS)(19,22) + PsiElement(Alias)('Two')(19,22) + PsiElement(,)(',')(22,23) + PsiWhiteSpace(' ')(23,24) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(24,29) + ElixirAliasImpl(ALIAS)(24,29) + PsiElement(Alias)('Three')(24,29) + PsiElement(})('}')(29,30) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAdditionOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAdditionOperation.ex new file mode 100644 index 000000000..970cb1135 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAdditionOperation.ex @@ -0,0 +1,3 @@ +One.{} + Two.{} +One.{Two} + Three.{Four} +One.{Two, Three} + Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAdditionOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAdditionOperation.txt new file mode 100644 index 000000000..929494274 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAdditionOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,76) + ElixirUnmatchedAdditionOperationImpl(UNMATCHED_ADDITION_OPERATION)(0,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + ElixirAdditionInfixOperatorImpl(ADDITION_INFIX_OPERATOR)(6,9) + PsiElement()(' ')(6,7) + PsiElement(+, -)('+')(7,8) + PsiElement()(' ')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,15) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(9,12) + ElixirAliasImpl(ALIAS)(9,12) + PsiElement(Alias)('Two')(9,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,15) + PsiElement({)('{')(13,14) + PsiElement(})('}')(14,15) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(15,16) + PsiElement(\\n, \\r\\n)('\n')(15,16) + ElixirUnmatchedAdditionOperationImpl(UNMATCHED_ADDITION_OPERATION)(16,40) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(16,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,19) + ElixirAliasImpl(ALIAS)(16,19) + PsiElement(Alias)('One')(16,19) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(19,20) + PsiElement(.)('.')(19,20) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(20,25) + PsiElement({)('{')(20,21) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(21,24) + ElixirAliasImpl(ALIAS)(21,24) + PsiElement(Alias)('Two')(21,24) + PsiElement(})('}')(24,25) + ElixirAdditionInfixOperatorImpl(ADDITION_INFIX_OPERATOR)(25,28) + PsiElement()(' ')(25,26) + PsiElement(+, -)('+')(26,27) + PsiElement()(' ')(27,28) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(28,40) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(28,33) + ElixirAliasImpl(ALIAS)(28,33) + PsiElement(Alias)('Three')(28,33) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(33,34) + PsiElement(.)('.')(33,34) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(34,40) + PsiElement({)('{')(34,35) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(35,39) + ElixirAliasImpl(ALIAS)(35,39) + PsiElement(Alias)('Four')(35,39) + PsiElement(})('}')(39,40) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(40,41) + PsiElement(\\n, \\r\\n)('\n')(40,41) + ElixirUnmatchedAdditionOperationImpl(UNMATCHED_ADDITION_OPERATION)(41,76) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(41,57) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(41,44) + ElixirAliasImpl(ALIAS)(41,44) + PsiElement(Alias)('One')(41,44) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(44,45) + PsiElement(.)('.')(44,45) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(45,57) + PsiElement({)('{')(45,46) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(46,49) + ElixirAliasImpl(ALIAS)(46,49) + PsiElement(Alias)('Two')(46,49) + PsiElement(,)(',')(49,50) + PsiWhiteSpace(' ')(50,51) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(51,56) + ElixirAliasImpl(ALIAS)(51,56) + PsiElement(Alias)('Three')(51,56) + PsiElement(})('}')(56,57) + ElixirAdditionInfixOperatorImpl(ADDITION_INFIX_OPERATOR)(57,60) + PsiElement()(' ')(57,58) + PsiElement(+, -)('+')(58,59) + PsiElement()(' ')(59,60) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(60,76) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(60,64) + ElixirAliasImpl(ALIAS)(60,64) + PsiElement(Alias)('Four')(60,64) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(64,65) + PsiElement(.)('.')(64,65) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(65,76) + PsiElement({)('{')(65,66) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(66,70) + ElixirAliasImpl(ALIAS)(66,70) + PsiElement(Alias)('Five')(66,70) + PsiElement(,)(',')(70,71) + PsiWhiteSpace(' ')(71,72) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(72,75) + ElixirAliasImpl(ALIAS)(72,75) + PsiElement(Alias)('Six')(72,75) + PsiElement(})('}')(75,76) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAndOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAndOperation.ex new file mode 100644 index 000000000..f8c3ce07c --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAndOperation.ex @@ -0,0 +1,3 @@ +One.{} && Two.{} +One.{Two} && Three.{Four} +One.{Two, Three} && Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAndOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAndOperation.txt new file mode 100644 index 000000000..522f5792f --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAndOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,79) + ElixirUnmatchedAndOperationImpl(UNMATCHED_AND_OPERATION)(0,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirAndInfixOperatorImpl(AND_INFIX_OPERATOR)(7,9) + PsiElement(&&&, `and`, &&)('&&')(7,9) + PsiWhiteSpace(' ')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(13,14) + PsiElement(.)('.')(13,14) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(14,16) + PsiElement({)('{')(14,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedAndOperationImpl(UNMATCHED_AND_OPERATION)(17,42) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,26) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirAliasImpl(ALIAS)(17,20) + PsiElement(Alias)('One')(17,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,26) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(})('}')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirAndInfixOperatorImpl(AND_INFIX_OPERATOR)(27,29) + PsiElement(&&&, `and`, &&)('&&')(27,29) + PsiWhiteSpace(' ')(29,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(30,42) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) + PsiElement(.)('.')(35,36) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(36,42) + PsiElement({)('{')(36,37) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(37,41) + ElixirAliasImpl(ALIAS)(37,41) + PsiElement(Alias)('Four')(37,41) + PsiElement(})('}')(41,42) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(42,43) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirUnmatchedAndOperationImpl(UNMATCHED_AND_OPERATION)(43,79) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(43,46) + ElixirAliasImpl(ALIAS)(43,46) + PsiElement(Alias)('One')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirAndInfixOperatorImpl(AND_INFIX_OPERATOR)(60,62) + PsiElement(&&&, `and`, &&)('&&')(60,62) + PsiWhiteSpace(' ')(62,63) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(63,79) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(63,67) + ElixirAliasImpl(ALIAS)(63,67) + PsiElement(Alias)('Four')(63,67) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(67,68) + PsiElement(.)('.')(67,68) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(68,79) + PsiElement({)('{')(68,69) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(69,73) + ElixirAliasImpl(ALIAS)(69,73) + PsiElement(Alias)('Five')(69,73) + PsiElement(,)(',')(73,74) + PsiWhiteSpace(' ')(74,75) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(75,78) + ElixirAliasImpl(ALIAS)(75,78) + PsiElement(Alias)('Six')(75,78) + PsiElement(})('}')(78,79) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedArrowOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedArrowOperation.ex new file mode 100644 index 000000000..cbaaaccf2 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedArrowOperation.ex @@ -0,0 +1,3 @@ +One.{} |> Two.{} +One.{Two} |> Three.{Four} +One.{Two, Three} |> Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedArrowOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedArrowOperation.txt new file mode 100644 index 000000000..d34ec2d89 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedArrowOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,79) + ElixirUnmatchedArrowOperationImpl(UNMATCHED_ARROW_OPERATION)(0,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirArrowInfixOperatorImpl(ARROW_INFIX_OPERATOR)(7,9) + PsiElement(<<<, <<~, <|>, <~>, >>>, ~>>, <~, |>, ~>, ^^^)('|>')(7,9) + PsiWhiteSpace(' ')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(13,14) + PsiElement(.)('.')(13,14) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(14,16) + PsiElement({)('{')(14,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedArrowOperationImpl(UNMATCHED_ARROW_OPERATION)(17,42) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,26) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirAliasImpl(ALIAS)(17,20) + PsiElement(Alias)('One')(17,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,26) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(})('}')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirArrowInfixOperatorImpl(ARROW_INFIX_OPERATOR)(27,29) + PsiElement(<<<, <<~, <|>, <~>, >>>, ~>>, <~, |>, ~>, ^^^)('|>')(27,29) + PsiWhiteSpace(' ')(29,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(30,42) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) + PsiElement(.)('.')(35,36) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(36,42) + PsiElement({)('{')(36,37) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(37,41) + ElixirAliasImpl(ALIAS)(37,41) + PsiElement(Alias)('Four')(37,41) + PsiElement(})('}')(41,42) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(42,43) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirUnmatchedArrowOperationImpl(UNMATCHED_ARROW_OPERATION)(43,79) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(43,46) + ElixirAliasImpl(ALIAS)(43,46) + PsiElement(Alias)('One')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirArrowInfixOperatorImpl(ARROW_INFIX_OPERATOR)(60,62) + PsiElement(<<<, <<~, <|>, <~>, >>>, ~>>, <~, |>, ~>, ^^^)('|>')(60,62) + PsiWhiteSpace(' ')(62,63) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(63,79) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(63,67) + ElixirAliasImpl(ALIAS)(63,67) + PsiElement(Alias)('Four')(63,67) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(67,68) + PsiElement(.)('.')(67,68) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(68,79) + PsiElement({)('{')(68,69) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(69,73) + ElixirAliasImpl(ALIAS)(69,73) + PsiElement(Alias)('Five')(69,73) + PsiElement(,)(',')(73,74) + PsiWhiteSpace(' ')(74,75) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(75,78) + ElixirAliasImpl(ALIAS)(75,78) + PsiElement(Alias)('Six')(75,78) + PsiElement(})('}')(78,79) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAtNonNumericOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAtNonNumericOperation.ex new file mode 100644 index 000000000..be5875c05 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAtNonNumericOperation.ex @@ -0,0 +1,3 @@ +@one.{} +@one.{Two} +@one.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAtNonNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAtNonNumericOperation.txt new file mode 100644 index 000000000..015bb4187 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedAtNonNumericOperation.txt @@ -0,0 +1,52 @@ +Elixir File(0,36) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,7) + ElixirUnmatchedAtNonNumericOperationImpl(UNMATCHED_AT_NON_NUMERIC_OPERATION)(0,4) + ElixirAtPrefixOperatorImpl(AT_PREFIX_OPERATOR)(0,1) + PsiElement(@)('@')(0,1) + UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(1,4) + ElixirIdentifierImpl(IDENTIFIER)(1,4) + PsiElement(identifier)('one')(1,4) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(4,5) + PsiElement(.)('.')(4,5) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(5,7) + PsiElement({)('{')(5,6) + PsiElement(})('}')(6,7) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(7,8) + PsiElement(\\n, \\r\\n)('\n')(7,8) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(8,18) + ElixirUnmatchedAtNonNumericOperationImpl(UNMATCHED_AT_NON_NUMERIC_OPERATION)(8,12) + ElixirAtPrefixOperatorImpl(AT_PREFIX_OPERATOR)(8,9) + PsiElement(@)('@')(8,9) + UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(9,12) + ElixirIdentifierImpl(IDENTIFIER)(9,12) + PsiElement(identifier)('one')(9,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,18) + PsiElement({)('{')(13,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(14,17) + ElixirAliasImpl(ALIAS)(14,17) + PsiElement(Alias)('Two')(14,17) + PsiElement(})('}')(17,18) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(18,19) + PsiElement(\\n, \\r\\n)('\n')(18,19) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(19,36) + ElixirUnmatchedAtNonNumericOperationImpl(UNMATCHED_AT_NON_NUMERIC_OPERATION)(19,23) + ElixirAtPrefixOperatorImpl(AT_PREFIX_OPERATOR)(19,20) + PsiElement(@)('@')(19,20) + UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(20,23) + ElixirIdentifierImpl(IDENTIFIER)(20,23) + PsiElement(identifier)('one')(20,23) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(23,24) + PsiElement(.)('.')(23,24) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(24,36) + PsiElement({)('{')(24,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(25,28) + ElixirAliasImpl(ALIAS)(25,28) + PsiElement(Alias)('Two')(25,28) + PsiElement(,)(',')(28,29) + PsiWhiteSpace(' ')(29,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + PsiElement(})('}')(35,36) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedCaptureNonNumericOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedCaptureNonNumericOperation.ex new file mode 100644 index 000000000..1a144e886 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedCaptureNonNumericOperation.ex @@ -0,0 +1,3 @@ +&one.{} +&one.{Two} +&one.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedCaptureNonNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedCaptureNonNumericOperation.txt new file mode 100644 index 000000000..c694d7212 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedCaptureNonNumericOperation.txt @@ -0,0 +1,52 @@ +Elixir File(0,36) + ElixirUnmatchedCaptureNonNumericOperationImpl(UNMATCHED_CAPTURE_NON_NUMERIC_OPERATION)(0,7) + ElixirCapturePrefixOperatorImpl(CAPTURE_PREFIX_OPERATOR)(0,1) + PsiElement(&)('&')(0,1) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(1,7) + UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(1,4) + ElixirIdentifierImpl(IDENTIFIER)(1,4) + PsiElement(identifier)('one')(1,4) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(4,5) + PsiElement(.)('.')(4,5) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(5,7) + PsiElement({)('{')(5,6) + PsiElement(})('}')(6,7) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(7,8) + PsiElement(\\n, \\r\\n)('\n')(7,8) + ElixirUnmatchedCaptureNonNumericOperationImpl(UNMATCHED_CAPTURE_NON_NUMERIC_OPERATION)(8,18) + ElixirCapturePrefixOperatorImpl(CAPTURE_PREFIX_OPERATOR)(8,9) + PsiElement(&)('&')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,18) + UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(9,12) + ElixirIdentifierImpl(IDENTIFIER)(9,12) + PsiElement(identifier)('one')(9,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,18) + PsiElement({)('{')(13,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(14,17) + ElixirAliasImpl(ALIAS)(14,17) + PsiElement(Alias)('Two')(14,17) + PsiElement(})('}')(17,18) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(18,19) + PsiElement(\\n, \\r\\n)('\n')(18,19) + ElixirUnmatchedCaptureNonNumericOperationImpl(UNMATCHED_CAPTURE_NON_NUMERIC_OPERATION)(19,36) + ElixirCapturePrefixOperatorImpl(CAPTURE_PREFIX_OPERATOR)(19,20) + PsiElement(&)('&')(19,20) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(20,36) + UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(20,23) + ElixirIdentifierImpl(IDENTIFIER)(20,23) + PsiElement(identifier)('one')(20,23) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(23,24) + PsiElement(.)('.')(23,24) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(24,36) + PsiElement({)('{')(24,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(25,28) + ElixirAliasImpl(ALIAS)(25,28) + PsiElement(Alias)('Two')(25,28) + PsiElement(,)(',')(28,29) + PsiWhiteSpace(' ')(29,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + PsiElement(})('}')(35,36) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedComparisonOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedComparisonOperation.ex new file mode 100644 index 000000000..553f37e64 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedComparisonOperation.ex @@ -0,0 +1,3 @@ +One.{} != Two.{} +One.{Two} != Three.{Four} +One.{Two, Three} != Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedComparisonOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedComparisonOperation.txt new file mode 100644 index 000000000..cfa8d3c5f --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedComparisonOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,79) + ElixirUnmatchedComparisonOperationImpl(UNMATCHED_COMPARISON_OPERATION)(0,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirComparisonInfixOperatorImpl(COMPARISON_INFIX_OPERATOR)(7,9) + PsiElement(!==, ===, !=, ==, =~)('!=')(7,9) + PsiWhiteSpace(' ')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(13,14) + PsiElement(.)('.')(13,14) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(14,16) + PsiElement({)('{')(14,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedComparisonOperationImpl(UNMATCHED_COMPARISON_OPERATION)(17,42) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,26) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirAliasImpl(ALIAS)(17,20) + PsiElement(Alias)('One')(17,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,26) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(})('}')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirComparisonInfixOperatorImpl(COMPARISON_INFIX_OPERATOR)(27,29) + PsiElement(!==, ===, !=, ==, =~)('!=')(27,29) + PsiWhiteSpace(' ')(29,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(30,42) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) + PsiElement(.)('.')(35,36) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(36,42) + PsiElement({)('{')(36,37) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(37,41) + ElixirAliasImpl(ALIAS)(37,41) + PsiElement(Alias)('Four')(37,41) + PsiElement(})('}')(41,42) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(42,43) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirUnmatchedComparisonOperationImpl(UNMATCHED_COMPARISON_OPERATION)(43,79) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(43,46) + ElixirAliasImpl(ALIAS)(43,46) + PsiElement(Alias)('One')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirComparisonInfixOperatorImpl(COMPARISON_INFIX_OPERATOR)(60,62) + PsiElement(!==, ===, !=, ==, =~)('!=')(60,62) + PsiWhiteSpace(' ')(62,63) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(63,79) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(63,67) + ElixirAliasImpl(ALIAS)(63,67) + PsiElement(Alias)('Four')(63,67) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(67,68) + PsiElement(.)('.')(67,68) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(68,79) + PsiElement({)('{')(68,69) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(69,73) + ElixirAliasImpl(ALIAS)(69,73) + PsiElement(Alias)('Five')(69,73) + PsiElement(,)(',')(73,74) + PsiWhiteSpace(' ')(74,75) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(75,78) + ElixirAliasImpl(ALIAS)(75,78) + PsiElement(Alias)('Six')(75,78) + PsiElement(})('}')(78,79) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedDotCallOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedDotCallOperation.ex new file mode 100644 index 000000000..37a14c05f --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedDotCallOperation.ex @@ -0,0 +1,17 @@ +One.( + Two.{} +).( + Three.{} +).{} + +One.( + Two.{Three} +).( + Four.{Five} +).{Six} + +One.( + Two.{Three, Four} +).( + Five.{Six, Seven} +).{Eight, Nine} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedDotCallOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedDotCallOperation.txt new file mode 100644 index 000000000..c54f9be9e --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedDotCallOperation.txt @@ -0,0 +1,175 @@ +Elixir File(0,148) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,34) + UNMATCHED_DOT_CALL(0,31) + UNMATCHED_DOT_CALL(0,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(4,16) + PsiElement(()('(')(4,5) + PsiElement(\\n, \\r\\n)('\n')(5,6) + PsiWhiteSpace(' ')(6,8) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(8,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(8,11) + ElixirAliasImpl(ALIAS)(8,11) + PsiElement(Alias)('Two')(8,11) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(11,12) + PsiElement(.)('.')(11,12) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(12,14) + PsiElement({)('{')(12,13) + PsiElement(})('}')(13,14) + PsiElement(\\n, \\r\\n)('\n')(14,15) + PsiElement())(')')(15,16) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(16,17) + PsiElement(.)('.')(16,17) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(17,31) + PsiElement(()('(')(17,18) + PsiElement(\\n, \\r\\n)('\n')(18,19) + PsiWhiteSpace(' ')(19,21) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(21,29) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(21,26) + ElixirAliasImpl(ALIAS)(21,26) + PsiElement(Alias)('Three')(21,26) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(26,27) + PsiElement(.)('.')(26,27) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(27,29) + PsiElement({)('{')(27,28) + PsiElement(})('}')(28,29) + PsiElement(\\n, \\r\\n)('\n')(29,30) + PsiElement())(')')(30,31) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(31,32) + PsiElement(.)('.')(31,32) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(32,34) + PsiElement({)('{')(32,33) + PsiElement(})('}')(33,34) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(34,36) + PsiElement(\\n, \\r\\n)('\n')(34,35) + PsiElement(\\n, \\r\\n)('\n')(35,36) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(36,81) + UNMATCHED_DOT_CALL(36,75) + UNMATCHED_DOT_CALL(36,57) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(36,39) + ElixirAliasImpl(ALIAS)(36,39) + PsiElement(Alias)('One')(36,39) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(39,40) + PsiElement(.)('.')(39,40) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(40,57) + PsiElement(()('(')(40,41) + PsiElement(\\n, \\r\\n)('\n')(41,42) + PsiWhiteSpace(' ')(42,44) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(44,55) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(44,47) + ElixirAliasImpl(ALIAS)(44,47) + PsiElement(Alias)('Two')(44,47) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(47,48) + PsiElement(.)('.')(47,48) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(48,55) + PsiElement({)('{')(48,49) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(49,54) + ElixirAliasImpl(ALIAS)(49,54) + PsiElement(Alias)('Three')(49,54) + PsiElement(})('}')(54,55) + PsiElement(\\n, \\r\\n)('\n')(55,56) + PsiElement())(')')(56,57) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(57,58) + PsiElement(.)('.')(57,58) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(58,75) + PsiElement(()('(')(58,59) + PsiElement(\\n, \\r\\n)('\n')(59,60) + PsiWhiteSpace(' ')(60,62) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(62,73) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(62,66) + ElixirAliasImpl(ALIAS)(62,66) + PsiElement(Alias)('Four')(62,66) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(66,67) + PsiElement(.)('.')(66,67) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(67,73) + PsiElement({)('{')(67,68) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(68,72) + ElixirAliasImpl(ALIAS)(68,72) + PsiElement(Alias)('Five')(68,72) + PsiElement(})('}')(72,73) + PsiElement(\\n, \\r\\n)('\n')(73,74) + PsiElement())(')')(74,75) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(75,76) + PsiElement(.)('.')(75,76) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(76,81) + PsiElement({)('{')(76,77) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(77,80) + ElixirAliasImpl(ALIAS)(77,80) + PsiElement(Alias)('Six')(77,80) + PsiElement(})('}')(80,81) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(81,83) + PsiElement(\\n, \\r\\n)('\n')(81,82) + PsiElement(\\n, \\r\\n)('\n')(82,83) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(83,148) + UNMATCHED_DOT_CALL(83,134) + UNMATCHED_DOT_CALL(83,110) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(83,86) + ElixirAliasImpl(ALIAS)(83,86) + PsiElement(Alias)('One')(83,86) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(86,87) + PsiElement(.)('.')(86,87) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(87,110) + PsiElement(()('(')(87,88) + PsiElement(\\n, \\r\\n)('\n')(88,89) + PsiWhiteSpace(' ')(89,91) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(91,108) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(91,94) + ElixirAliasImpl(ALIAS)(91,94) + PsiElement(Alias)('Two')(91,94) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(94,95) + PsiElement(.)('.')(94,95) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(95,108) + PsiElement({)('{')(95,96) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(96,101) + ElixirAliasImpl(ALIAS)(96,101) + PsiElement(Alias)('Three')(96,101) + PsiElement(,)(',')(101,102) + PsiWhiteSpace(' ')(102,103) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(103,107) + ElixirAliasImpl(ALIAS)(103,107) + PsiElement(Alias)('Four')(103,107) + PsiElement(})('}')(107,108) + PsiElement(\\n, \\r\\n)('\n')(108,109) + PsiElement())(')')(109,110) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(110,111) + PsiElement(.)('.')(110,111) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(111,134) + PsiElement(()('(')(111,112) + PsiElement(\\n, \\r\\n)('\n')(112,113) + PsiWhiteSpace(' ')(113,115) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(115,132) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(115,119) + ElixirAliasImpl(ALIAS)(115,119) + PsiElement(Alias)('Five')(115,119) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(119,120) + PsiElement(.)('.')(119,120) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(120,132) + PsiElement({)('{')(120,121) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(121,124) + ElixirAliasImpl(ALIAS)(121,124) + PsiElement(Alias)('Six')(121,124) + PsiElement(,)(',')(124,125) + PsiWhiteSpace(' ')(125,126) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(126,131) + ElixirAliasImpl(ALIAS)(126,131) + PsiElement(Alias)('Seven')(126,131) + PsiElement(})('}')(131,132) + PsiElement(\\n, \\r\\n)('\n')(132,133) + PsiElement())(')')(133,134) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(134,135) + PsiElement(.)('.')(134,135) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(135,148) + PsiElement({)('{')(135,136) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(136,141) + ElixirAliasImpl(ALIAS)(136,141) + PsiElement(Alias)('Eight')(136,141) + PsiElement(,)(',')(141,142) + PsiWhiteSpace(' ')(142,143) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(143,147) + ElixirAliasImpl(ALIAS)(143,147) + PsiElement(Alias)('Nine')(143,147) + PsiElement(})('}')(147,148) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInMatchOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInMatchOperation.ex new file mode 100644 index 000000000..67ce5e61b --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInMatchOperation.ex @@ -0,0 +1,3 @@ +One.{} \\ Two.{} +One.{Two} \\ Three.{Four} +One.{Two, Three} \\ Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInMatchOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInMatchOperation.txt new file mode 100644 index 000000000..419369e69 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInMatchOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,79) + ElixirUnmatchedInMatchOperationImpl(UNMATCHED_IN_MATCH_OPERATION)(0,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirInMatchInfixOperatorImpl(IN_MATCH_INFIX_OPERATOR)(7,9) + PsiElement(<-, \\\\)('\\')(7,9) + PsiWhiteSpace(' ')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(13,14) + PsiElement(.)('.')(13,14) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(14,16) + PsiElement({)('{')(14,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedInMatchOperationImpl(UNMATCHED_IN_MATCH_OPERATION)(17,42) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,26) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirAliasImpl(ALIAS)(17,20) + PsiElement(Alias)('One')(17,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,26) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(})('}')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirInMatchInfixOperatorImpl(IN_MATCH_INFIX_OPERATOR)(27,29) + PsiElement(<-, \\\\)('\\')(27,29) + PsiWhiteSpace(' ')(29,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(30,42) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) + PsiElement(.)('.')(35,36) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(36,42) + PsiElement({)('{')(36,37) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(37,41) + ElixirAliasImpl(ALIAS)(37,41) + PsiElement(Alias)('Four')(37,41) + PsiElement(})('}')(41,42) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(42,43) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirUnmatchedInMatchOperationImpl(UNMATCHED_IN_MATCH_OPERATION)(43,79) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(43,46) + ElixirAliasImpl(ALIAS)(43,46) + PsiElement(Alias)('One')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirInMatchInfixOperatorImpl(IN_MATCH_INFIX_OPERATOR)(60,62) + PsiElement(<-, \\\\)('\\')(60,62) + PsiWhiteSpace(' ')(62,63) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(63,79) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(63,67) + ElixirAliasImpl(ALIAS)(63,67) + PsiElement(Alias)('Four')(63,67) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(67,68) + PsiElement(.)('.')(67,68) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(68,79) + PsiElement({)('{')(68,69) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(69,73) + ElixirAliasImpl(ALIAS)(69,73) + PsiElement(Alias)('Five')(69,73) + PsiElement(,)(',')(73,74) + PsiWhiteSpace(' ')(74,75) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(75,78) + ElixirAliasImpl(ALIAS)(75,78) + PsiElement(Alias)('Six')(75,78) + PsiElement(})('}')(78,79) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInOperation.ex new file mode 100644 index 000000000..0e3a63e7e --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInOperation.ex @@ -0,0 +1,3 @@ +One.{} in Two.{} +One.{Two} in Three.{Four} +One.{Two, Three} in Three.{Four, Five} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInOperation.txt new file mode 100644 index 000000000..55740db62 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedInOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,81) + ElixirUnmatchedInOperationImpl(UNMATCHED_IN_OPERATION)(0,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirInInfixOperatorImpl(IN_INFIX_OPERATOR)(7,9) + PsiElement(in)('in')(7,9) + PsiWhiteSpace(' ')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(13,14) + PsiElement(.)('.')(13,14) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(14,16) + PsiElement({)('{')(14,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedInOperationImpl(UNMATCHED_IN_OPERATION)(17,42) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,26) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirAliasImpl(ALIAS)(17,20) + PsiElement(Alias)('One')(17,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,26) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(})('}')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirInInfixOperatorImpl(IN_INFIX_OPERATOR)(27,29) + PsiElement(in)('in')(27,29) + PsiWhiteSpace(' ')(29,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(30,42) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) + PsiElement(.)('.')(35,36) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(36,42) + PsiElement({)('{')(36,37) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(37,41) + ElixirAliasImpl(ALIAS)(37,41) + PsiElement(Alias)('Four')(37,41) + PsiElement(})('}')(41,42) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(42,43) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirUnmatchedInOperationImpl(UNMATCHED_IN_OPERATION)(43,81) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(43,46) + ElixirAliasImpl(ALIAS)(43,46) + PsiElement(Alias)('One')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirInInfixOperatorImpl(IN_INFIX_OPERATOR)(60,62) + PsiElement(in)('in')(60,62) + PsiWhiteSpace(' ')(62,63) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(63,81) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(63,68) + ElixirAliasImpl(ALIAS)(63,68) + PsiElement(Alias)('Three')(63,68) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(68,69) + PsiElement(.)('.')(68,69) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(69,81) + PsiElement({)('{')(69,70) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(70,74) + ElixirAliasImpl(ALIAS)(70,74) + PsiElement(Alias)('Four')(70,74) + PsiElement(,)(',')(74,75) + PsiWhiteSpace(' ')(75,76) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(76,80) + ElixirAliasImpl(ALIAS)(76,80) + PsiElement(Alias)('Five')(76,80) + PsiElement(})('}')(80,81) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMatchOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMatchOperation.ex new file mode 100644 index 000000000..492881e02 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMatchOperation.ex @@ -0,0 +1,3 @@ +One.{} = Two.{} +One.{Two} = Three.{Four} +One.{Two, Three} = Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMatchOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMatchOperation.txt new file mode 100644 index 000000000..4327e22a0 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMatchOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,76) + ElixirUnmatchedMatchOperationImpl(UNMATCHED_MATCH_OPERATION)(0,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirMatchInfixOperatorImpl(MATCH_INFIX_OPERATOR)(7,8) + PsiElement(=)('=')(7,8) + PsiWhiteSpace(' ')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,15) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(9,12) + ElixirAliasImpl(ALIAS)(9,12) + PsiElement(Alias)('Two')(9,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,15) + PsiElement({)('{')(13,14) + PsiElement(})('}')(14,15) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(15,16) + PsiElement(\\n, \\r\\n)('\n')(15,16) + ElixirUnmatchedMatchOperationImpl(UNMATCHED_MATCH_OPERATION)(16,40) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(16,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,19) + ElixirAliasImpl(ALIAS)(16,19) + PsiElement(Alias)('One')(16,19) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(19,20) + PsiElement(.)('.')(19,20) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(20,25) + PsiElement({)('{')(20,21) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(21,24) + ElixirAliasImpl(ALIAS)(21,24) + PsiElement(Alias)('Two')(21,24) + PsiElement(})('}')(24,25) + PsiWhiteSpace(' ')(25,26) + ElixirMatchInfixOperatorImpl(MATCH_INFIX_OPERATOR)(26,27) + PsiElement(=)('=')(26,27) + PsiWhiteSpace(' ')(27,28) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(28,40) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(28,33) + ElixirAliasImpl(ALIAS)(28,33) + PsiElement(Alias)('Three')(28,33) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(33,34) + PsiElement(.)('.')(33,34) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(34,40) + PsiElement({)('{')(34,35) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(35,39) + ElixirAliasImpl(ALIAS)(35,39) + PsiElement(Alias)('Four')(35,39) + PsiElement(})('}')(39,40) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(40,41) + PsiElement(\\n, \\r\\n)('\n')(40,41) + ElixirUnmatchedMatchOperationImpl(UNMATCHED_MATCH_OPERATION)(41,76) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(41,57) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(41,44) + ElixirAliasImpl(ALIAS)(41,44) + PsiElement(Alias)('One')(41,44) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(44,45) + PsiElement(.)('.')(44,45) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(45,57) + PsiElement({)('{')(45,46) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(46,49) + ElixirAliasImpl(ALIAS)(46,49) + PsiElement(Alias)('Two')(46,49) + PsiElement(,)(',')(49,50) + PsiWhiteSpace(' ')(50,51) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(51,56) + ElixirAliasImpl(ALIAS)(51,56) + PsiElement(Alias)('Three')(51,56) + PsiElement(})('}')(56,57) + PsiWhiteSpace(' ')(57,58) + ElixirMatchInfixOperatorImpl(MATCH_INFIX_OPERATOR)(58,59) + PsiElement(=)('=')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(60,76) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(60,64) + ElixirAliasImpl(ALIAS)(60,64) + PsiElement(Alias)('Four')(60,64) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(64,65) + PsiElement(.)('.')(64,65) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(65,76) + PsiElement({)('{')(65,66) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(66,70) + ElixirAliasImpl(ALIAS)(66,70) + PsiElement(Alias)('Five')(66,70) + PsiElement(,)(',')(70,71) + PsiWhiteSpace(' ')(71,72) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(72,75) + ElixirAliasImpl(ALIAS)(72,75) + PsiElement(Alias)('Six')(72,75) + PsiElement(})('}')(75,76) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMultiplicationOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMultiplicationOperation.ex new file mode 100644 index 000000000..5a272999e --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMultiplicationOperation.ex @@ -0,0 +1,3 @@ +One.{} * Two.{} +One.{Two} * Three.{Four} +One.{Two, Three} * Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMultiplicationOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMultiplicationOperation.txt new file mode 100644 index 000000000..d5ee466f6 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedMultiplicationOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,76) + ElixirUnmatchedMultiplicationOperationImpl(UNMATCHED_MULTIPLICATION_OPERATION)(0,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirMultiplicationInfixOperatorImpl(MULTIPLICATION_INFIX_OPERATOR)(7,8) + PsiElement(*, /)('*')(7,8) + PsiWhiteSpace(' ')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,15) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(9,12) + ElixirAliasImpl(ALIAS)(9,12) + PsiElement(Alias)('Two')(9,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,15) + PsiElement({)('{')(13,14) + PsiElement(})('}')(14,15) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(15,16) + PsiElement(\\n, \\r\\n)('\n')(15,16) + ElixirUnmatchedMultiplicationOperationImpl(UNMATCHED_MULTIPLICATION_OPERATION)(16,40) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(16,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,19) + ElixirAliasImpl(ALIAS)(16,19) + PsiElement(Alias)('One')(16,19) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(19,20) + PsiElement(.)('.')(19,20) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(20,25) + PsiElement({)('{')(20,21) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(21,24) + ElixirAliasImpl(ALIAS)(21,24) + PsiElement(Alias)('Two')(21,24) + PsiElement(})('}')(24,25) + PsiWhiteSpace(' ')(25,26) + ElixirMultiplicationInfixOperatorImpl(MULTIPLICATION_INFIX_OPERATOR)(26,27) + PsiElement(*, /)('*')(26,27) + PsiWhiteSpace(' ')(27,28) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(28,40) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(28,33) + ElixirAliasImpl(ALIAS)(28,33) + PsiElement(Alias)('Three')(28,33) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(33,34) + PsiElement(.)('.')(33,34) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(34,40) + PsiElement({)('{')(34,35) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(35,39) + ElixirAliasImpl(ALIAS)(35,39) + PsiElement(Alias)('Four')(35,39) + PsiElement(})('}')(39,40) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(40,41) + PsiElement(\\n, \\r\\n)('\n')(40,41) + ElixirUnmatchedMultiplicationOperationImpl(UNMATCHED_MULTIPLICATION_OPERATION)(41,76) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(41,57) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(41,44) + ElixirAliasImpl(ALIAS)(41,44) + PsiElement(Alias)('One')(41,44) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(44,45) + PsiElement(.)('.')(44,45) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(45,57) + PsiElement({)('{')(45,46) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(46,49) + ElixirAliasImpl(ALIAS)(46,49) + PsiElement(Alias)('Two')(46,49) + PsiElement(,)(',')(49,50) + PsiWhiteSpace(' ')(50,51) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(51,56) + ElixirAliasImpl(ALIAS)(51,56) + PsiElement(Alias)('Three')(51,56) + PsiElement(})('}')(56,57) + PsiWhiteSpace(' ')(57,58) + ElixirMultiplicationInfixOperatorImpl(MULTIPLICATION_INFIX_OPERATOR)(58,59) + PsiElement(*, /)('*')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(60,76) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(60,64) + ElixirAliasImpl(ALIAS)(60,64) + PsiElement(Alias)('Four')(60,64) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(64,65) + PsiElement(.)('.')(64,65) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(65,76) + PsiElement({)('{')(65,66) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(66,70) + ElixirAliasImpl(ALIAS)(66,70) + PsiElement(Alias)('Five')(66,70) + PsiElement(,)(',')(70,71) + PsiWhiteSpace(' ')(71,72) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(72,75) + ElixirAliasImpl(ALIAS)(72,75) + PsiElement(Alias)('Six')(72,75) + PsiElement(})('}')(75,76) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedOrOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedOrOperation.ex new file mode 100644 index 000000000..f33d97ccd --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedOrOperation.ex @@ -0,0 +1,3 @@ +One.{} || Two.{} +One.{Two} || Three.{Four} +One.{Two, Three} || Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedOrOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedOrOperation.txt new file mode 100644 index 000000000..45e1fa812 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedOrOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,79) + ElixirUnmatchedOrOperationImpl(UNMATCHED_OR_OPERATION)(0,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirOrInfixOperatorImpl(OR_INFIX_OPERATOR)(7,9) + PsiElement(|||, `or`, ||)('||')(7,9) + PsiWhiteSpace(' ')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(13,14) + PsiElement(.)('.')(13,14) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(14,16) + PsiElement({)('{')(14,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedOrOperationImpl(UNMATCHED_OR_OPERATION)(17,42) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,26) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirAliasImpl(ALIAS)(17,20) + PsiElement(Alias)('One')(17,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,26) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(})('}')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirOrInfixOperatorImpl(OR_INFIX_OPERATOR)(27,29) + PsiElement(|||, `or`, ||)('||')(27,29) + PsiWhiteSpace(' ')(29,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(30,42) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) + PsiElement(.)('.')(35,36) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(36,42) + PsiElement({)('{')(36,37) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(37,41) + ElixirAliasImpl(ALIAS)(37,41) + PsiElement(Alias)('Four')(37,41) + PsiElement(})('}')(41,42) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(42,43) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirUnmatchedOrOperationImpl(UNMATCHED_OR_OPERATION)(43,79) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(43,46) + ElixirAliasImpl(ALIAS)(43,46) + PsiElement(Alias)('One')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirOrInfixOperatorImpl(OR_INFIX_OPERATOR)(60,62) + PsiElement(|||, `or`, ||)('||')(60,62) + PsiWhiteSpace(' ')(62,63) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(63,79) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(63,67) + ElixirAliasImpl(ALIAS)(63,67) + PsiElement(Alias)('Four')(63,67) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(67,68) + PsiElement(.)('.')(67,68) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(68,79) + PsiElement({)('{')(68,69) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(69,73) + ElixirAliasImpl(ALIAS)(69,73) + PsiElement(Alias)('Five')(69,73) + PsiElement(,)(',')(73,74) + PsiWhiteSpace(' ')(74,75) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(75,78) + ElixirAliasImpl(ALIAS)(75,78) + PsiElement(Alias)('Six')(75,78) + PsiElement(})('}')(78,79) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedPipeOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedPipeOperation.ex new file mode 100644 index 000000000..2034bfbfe --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedPipeOperation.ex @@ -0,0 +1,3 @@ +One.{} | Two.{} +One.{Two} | Three.{Four} +One.{Two, Three} | Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedPipeOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedPipeOperation.txt new file mode 100644 index 000000000..a4aaa029b --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedPipeOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,76) + ElixirUnmatchedPipeOperationImpl(UNMATCHED_PIPE_OPERATION)(0,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirPipeInfixOperatorImpl(PIPE_INFIX_OPERATOR)(7,8) + PsiElement(|)('|')(7,8) + PsiWhiteSpace(' ')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,15) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(9,12) + ElixirAliasImpl(ALIAS)(9,12) + PsiElement(Alias)('Two')(9,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,15) + PsiElement({)('{')(13,14) + PsiElement(})('}')(14,15) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(15,16) + PsiElement(\\n, \\r\\n)('\n')(15,16) + ElixirUnmatchedPipeOperationImpl(UNMATCHED_PIPE_OPERATION)(16,40) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(16,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,19) + ElixirAliasImpl(ALIAS)(16,19) + PsiElement(Alias)('One')(16,19) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(19,20) + PsiElement(.)('.')(19,20) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(20,25) + PsiElement({)('{')(20,21) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(21,24) + ElixirAliasImpl(ALIAS)(21,24) + PsiElement(Alias)('Two')(21,24) + PsiElement(})('}')(24,25) + PsiWhiteSpace(' ')(25,26) + ElixirPipeInfixOperatorImpl(PIPE_INFIX_OPERATOR)(26,27) + PsiElement(|)('|')(26,27) + PsiWhiteSpace(' ')(27,28) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(28,40) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(28,33) + ElixirAliasImpl(ALIAS)(28,33) + PsiElement(Alias)('Three')(28,33) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(33,34) + PsiElement(.)('.')(33,34) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(34,40) + PsiElement({)('{')(34,35) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(35,39) + ElixirAliasImpl(ALIAS)(35,39) + PsiElement(Alias)('Four')(35,39) + PsiElement(})('}')(39,40) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(40,41) + PsiElement(\\n, \\r\\n)('\n')(40,41) + ElixirUnmatchedPipeOperationImpl(UNMATCHED_PIPE_OPERATION)(41,76) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(41,57) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(41,44) + ElixirAliasImpl(ALIAS)(41,44) + PsiElement(Alias)('One')(41,44) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(44,45) + PsiElement(.)('.')(44,45) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(45,57) + PsiElement({)('{')(45,46) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(46,49) + ElixirAliasImpl(ALIAS)(46,49) + PsiElement(Alias)('Two')(46,49) + PsiElement(,)(',')(49,50) + PsiWhiteSpace(' ')(50,51) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(51,56) + ElixirAliasImpl(ALIAS)(51,56) + PsiElement(Alias)('Three')(51,56) + PsiElement(})('}')(56,57) + PsiWhiteSpace(' ')(57,58) + ElixirPipeInfixOperatorImpl(PIPE_INFIX_OPERATOR)(58,59) + PsiElement(|)('|')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(60,76) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(60,64) + ElixirAliasImpl(ALIAS)(60,64) + PsiElement(Alias)('Four')(60,64) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(64,65) + PsiElement(.)('.')(64,65) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(65,76) + PsiElement({)('{')(65,66) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(66,70) + ElixirAliasImpl(ALIAS)(66,70) + PsiElement(Alias)('Five')(66,70) + PsiElement(,)(',')(70,71) + PsiWhiteSpace(' ')(71,72) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(72,75) + ElixirAliasImpl(ALIAS)(72,75) + PsiElement(Alias)('Six')(72,75) + PsiElement(})('}')(75,76) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedAliasOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedAliasOperation.ex new file mode 100644 index 000000000..917563c55 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedAliasOperation.ex @@ -0,0 +1,9 @@ +One.{}.{} +One.{}.{Two} +One.{}.{Two, Three} +One.{Two}.{} +One.{Two}.{Three} +One.{Two}.{Three, Four} +One.{Two, Three}.{} +One.{Two, Three}.{Four} +One.{Two, Three}.{Four, Five} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedAliasOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedAliasOperation.txt new file mode 100644 index 000000000..0ad59524e --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedAliasOperation.txt @@ -0,0 +1,218 @@ +Elixir File(0,171) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(6,7) + PsiElement(.)('.')(6,7) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(7,9) + PsiElement({)('{')(7,8) + PsiElement(})('}')(8,9) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(9,10) + PsiElement(\\n, \\r\\n)('\n')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,22) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('One')(10,13) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(13,14) + PsiElement(.)('.')(13,14) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(14,16) + PsiElement({)('{')(14,15) + PsiElement(})('}')(15,16) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(16,17) + PsiElement(.)('.')(16,17) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(17,22) + PsiElement({)('{')(17,18) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(18,21) + ElixirAliasImpl(ALIAS)(18,21) + PsiElement(Alias)('Two')(18,21) + PsiElement(})('}')(21,22) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(22,23) + PsiElement(\\n, \\r\\n)('\n')(22,23) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(23,42) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(23,29) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(23,26) + ElixirAliasImpl(ALIAS)(23,26) + PsiElement(Alias)('One')(23,26) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(26,27) + PsiElement(.)('.')(26,27) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(27,29) + PsiElement({)('{')(27,28) + PsiElement(})('}')(28,29) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(29,30) + PsiElement(.)('.')(29,30) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(30,42) + PsiElement({)('{')(30,31) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(31,34) + ElixirAliasImpl(ALIAS)(31,34) + PsiElement(Alias)('Two')(31,34) + PsiElement(,)(',')(34,35) + PsiWhiteSpace(' ')(35,36) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(36,41) + ElixirAliasImpl(ALIAS)(36,41) + PsiElement(Alias)('Three')(36,41) + PsiElement(})('}')(41,42) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(42,43) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,55) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,52) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(43,46) + ElixirAliasImpl(ALIAS)(43,46) + PsiElement(Alias)('One')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,52) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(})('}')(51,52) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(52,53) + PsiElement(.)('.')(52,53) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(53,55) + PsiElement({)('{')(53,54) + PsiElement(})('}')(54,55) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(55,56) + PsiElement(\\n, \\r\\n)('\n')(55,56) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(56,73) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(56,65) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(56,59) + ElixirAliasImpl(ALIAS)(56,59) + PsiElement(Alias)('One')(56,59) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(59,60) + PsiElement(.)('.')(59,60) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(60,65) + PsiElement({)('{')(60,61) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(61,64) + ElixirAliasImpl(ALIAS)(61,64) + PsiElement(Alias)('Two')(61,64) + PsiElement(})('}')(64,65) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(65,66) + PsiElement(.)('.')(65,66) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(66,73) + PsiElement({)('{')(66,67) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(67,72) + ElixirAliasImpl(ALIAS)(67,72) + PsiElement(Alias)('Three')(67,72) + PsiElement(})('}')(72,73) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(73,74) + PsiElement(\\n, \\r\\n)('\n')(73,74) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(74,97) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(74,83) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(74,77) + ElixirAliasImpl(ALIAS)(74,77) + PsiElement(Alias)('One')(74,77) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(77,78) + PsiElement(.)('.')(77,78) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(78,83) + PsiElement({)('{')(78,79) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(79,82) + ElixirAliasImpl(ALIAS)(79,82) + PsiElement(Alias)('Two')(79,82) + PsiElement(})('}')(82,83) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(83,84) + PsiElement(.)('.')(83,84) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(84,97) + PsiElement({)('{')(84,85) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(85,90) + ElixirAliasImpl(ALIAS)(85,90) + PsiElement(Alias)('Three')(85,90) + PsiElement(,)(',')(90,91) + PsiWhiteSpace(' ')(91,92) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(92,96) + ElixirAliasImpl(ALIAS)(92,96) + PsiElement(Alias)('Four')(92,96) + PsiElement(})('}')(96,97) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(97,98) + PsiElement(\\n, \\r\\n)('\n')(97,98) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(98,117) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(98,114) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(98,101) + ElixirAliasImpl(ALIAS)(98,101) + PsiElement(Alias)('One')(98,101) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(101,102) + PsiElement(.)('.')(101,102) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(102,114) + PsiElement({)('{')(102,103) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(103,106) + ElixirAliasImpl(ALIAS)(103,106) + PsiElement(Alias)('Two')(103,106) + PsiElement(,)(',')(106,107) + PsiWhiteSpace(' ')(107,108) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(108,113) + ElixirAliasImpl(ALIAS)(108,113) + PsiElement(Alias)('Three')(108,113) + PsiElement(})('}')(113,114) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(114,115) + PsiElement(.)('.')(114,115) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(115,117) + PsiElement({)('{')(115,116) + PsiElement(})('}')(116,117) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(117,118) + PsiElement(\\n, \\r\\n)('\n')(117,118) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(118,141) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(118,134) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(118,121) + ElixirAliasImpl(ALIAS)(118,121) + PsiElement(Alias)('One')(118,121) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(121,122) + PsiElement(.)('.')(121,122) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(122,134) + PsiElement({)('{')(122,123) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(123,126) + ElixirAliasImpl(ALIAS)(123,126) + PsiElement(Alias)('Two')(123,126) + PsiElement(,)(',')(126,127) + PsiWhiteSpace(' ')(127,128) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(128,133) + ElixirAliasImpl(ALIAS)(128,133) + PsiElement(Alias)('Three')(128,133) + PsiElement(})('}')(133,134) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(134,135) + PsiElement(.)('.')(134,135) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(135,141) + PsiElement({)('{')(135,136) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(136,140) + ElixirAliasImpl(ALIAS)(136,140) + PsiElement(Alias)('Four')(136,140) + PsiElement(})('}')(140,141) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(141,142) + PsiElement(\\n, \\r\\n)('\n')(141,142) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(142,171) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(142,158) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(142,145) + ElixirAliasImpl(ALIAS)(142,145) + PsiElement(Alias)('One')(142,145) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(145,146) + PsiElement(.)('.')(145,146) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(146,158) + PsiElement({)('{')(146,147) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(147,150) + ElixirAliasImpl(ALIAS)(147,150) + PsiElement(Alias)('Two')(147,150) + PsiElement(,)(',')(150,151) + PsiWhiteSpace(' ')(151,152) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(152,157) + ElixirAliasImpl(ALIAS)(152,157) + PsiElement(Alias)('Three')(152,157) + PsiElement(})('}')(157,158) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(158,159) + PsiElement(.)('.')(158,159) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(159,171) + PsiElement({)('{')(159,160) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(160,164) + ElixirAliasImpl(ALIAS)(160,164) + PsiElement(Alias)('Four')(160,164) + PsiElement(,)(',')(164,165) + PsiWhiteSpace(' ')(165,166) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(166,170) + ElixirAliasImpl(ALIAS)(166,170) + PsiElement(Alias)('Five')(166,170) + PsiElement(})('}')(170,171) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedCallOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedCallOperation.ex new file mode 100644 index 000000000..651cd8dbe --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedCallOperation.ex @@ -0,0 +1,10 @@ +One.Two.relative_identifier( + Three.{} +)( + Five.{} +).{} +One.Two.relative_identifier key: Qualified.Value +One.Two.relative_identifier unqualified Qualified.Positional, + key: QUalified.Value +One.Two.relative_identifier Qualified.Positional, + key: Qualified.Value diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedCallOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedCallOperation.txt new file mode 100644 index 000000000..710a67dab --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedQualifiedCallOperation.txt @@ -0,0 +1,170 @@ +Elixir File(0,328) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,57) + UNMATCHED_QUALIFIED_PARENTHESES_CALL(0,54) + ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(0,7) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirAliasImpl(ALIAS)(4,7) + PsiElement(Alias)('Two')(4,7) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(7,8) + PsiElement(.)('.')(7,8) + ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(8,27) + PsiElement(identifier)('relative_identifier')(8,27) + ElixirMatchedParenthesesArgumentsImpl(MATCHED_PARENTHESES_ARGUMENTS)(27,54) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(27,41) + PsiElement(()('(')(27,28) + PsiElement(\\n, \\r\\n)('\n')(28,29) + PsiWhiteSpace(' ')(29,31) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(31,39) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(31,36) + ElixirAliasImpl(ALIAS)(31,36) + PsiElement(Alias)('Three')(31,36) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(36,37) + PsiElement(.)('.')(36,37) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(37,39) + PsiElement({)('{')(37,38) + PsiElement(})('}')(38,39) + PsiElement(\\n, \\r\\n)('\n')(39,40) + PsiElement())(')')(40,41) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(41,54) + PsiElement(()('(')(41,42) + PsiElement(\\n, \\r\\n)('\n')(42,43) + PsiWhiteSpace(' ')(43,45) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(45,52) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(45,49) + ElixirAliasImpl(ALIAS)(45,49) + PsiElement(Alias)('Five')(45,49) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(49,50) + PsiElement(.)('.')(49,50) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(50,52) + PsiElement({)('{')(50,51) + PsiElement(})('}')(51,52) + PsiElement(\\n, \\r\\n)('\n')(52,53) + PsiElement())(')')(53,54) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(54,55) + PsiElement(.)('.')(54,55) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(55,57) + PsiElement({)('{')(55,56) + PsiElement(})('}')(56,57) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(57,58) + PsiElement(\\n, \\r\\n)('\n')(57,58) + UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL(58,106) + ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(58,65) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(58,61) + ElixirAliasImpl(ALIAS)(58,61) + PsiElement(Alias)('One')(58,61) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(61,62) + PsiElement(.)('.')(61,62) + ElixirAliasImpl(ALIAS)(62,65) + PsiElement(Alias)('Two')(62,65) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(65,66) + PsiElement(.)('.')(65,66) + ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(66,85) + PsiElement(identifier)('relative_identifier')(66,85) + PsiWhiteSpace(' ')(85,86) + ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(86,106) + ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(86,106) + ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(86,106) + ElixirKeywordKeyImpl(KEYWORD_KEY)(86,89) + PsiElement(identifier)('key')(86,89) + PsiElement(Keyword Pair Colon (:))(':')(89,90) + PsiWhiteSpace(' ')(90,91) + ElixirMatchedQualifiedAliasImpl(MATCHED_QUALIFIED_ALIAS)(91,106) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(91,100) + ElixirAliasImpl(ALIAS)(91,100) + PsiElement(Alias)('Qualified')(91,100) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(100,101) + PsiElement(.)('.')(100,101) + ElixirAliasImpl(ALIAS)(101,106) + PsiElement(Alias)('Value')(101,106) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(106,107) + PsiElement(\\n, \\r\\n)('\n')(106,107) + UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL(107,229) + ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(107,114) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(107,110) + ElixirAliasImpl(ALIAS)(107,110) + PsiElement(Alias)('One')(107,110) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(110,111) + PsiElement(.)('.')(110,111) + ElixirAliasImpl(ALIAS)(111,114) + PsiElement(Alias)('Two')(111,114) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(114,115) + PsiElement(.)('.')(114,115) + ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(115,134) + PsiElement(identifier)('relative_identifier')(115,134) + PsiWhiteSpace(' ')(134,135) + ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(135,229) + UNQUALIFIED_NO_PARENTHESES_MANY_ARGUMENTS_CALL(135,229) + ElixirIdentifierImpl(IDENTIFIER)(135,146) + PsiElement(identifier)('unqualified')(135,146) + PsiWhiteSpace(' ')(146,147) + ElixirMatchedQualifiedAliasImpl(MATCHED_QUALIFIED_ALIAS)(147,167) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(147,156) + ElixirAliasImpl(ALIAS)(147,156) + PsiElement(Alias)('Qualified')(147,156) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(156,157) + PsiElement(.)('.')(156,157) + ElixirAliasImpl(ALIAS)(157,167) + PsiElement(Alias)('Positional')(157,167) + PsiElement(,)(',')(167,168) + PsiElement(\\n, \\r\\n)('\n')(168,169) + PsiWhiteSpace(' ')(169,209) + ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(209,229) + ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(209,229) + ElixirKeywordKeyImpl(KEYWORD_KEY)(209,212) + PsiElement(identifier)('key')(209,212) + PsiElement(Keyword Pair Colon (:))(':')(212,213) + PsiWhiteSpace(' ')(213,214) + ElixirMatchedQualifiedAliasImpl(MATCHED_QUALIFIED_ALIAS)(214,229) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(214,223) + ElixirAliasImpl(ALIAS)(214,223) + PsiElement(Alias)('QUalified')(214,223) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(223,224) + PsiElement(.)('.')(223,224) + ElixirAliasImpl(ALIAS)(224,229) + PsiElement(Alias)('Value')(224,229) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(229,230) + PsiElement(\\n, \\r\\n)('\n')(229,230) + UNMATCHED_QUALIFIED_NO_PARENTHESES_CALL(230,328) + ElixirUnmatchedQualifiedAliasImpl(UNMATCHED_QUALIFIED_ALIAS)(230,237) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(230,233) + ElixirAliasImpl(ALIAS)(230,233) + PsiElement(Alias)('One')(230,233) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(233,234) + PsiElement(.)('.')(233,234) + ElixirAliasImpl(ALIAS)(234,237) + PsiElement(Alias)('Two')(234,237) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(237,238) + PsiElement(.)('.')(237,238) + ElixirRelativeIdentifierImpl(RELATIVE_IDENTIFIER)(238,257) + PsiElement(identifier)('relative_identifier')(238,257) + PsiWhiteSpace(' ')(257,258) + ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(258,328) + ElixirMatchedQualifiedAliasImpl(MATCHED_QUALIFIED_ALIAS)(258,278) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(258,267) + ElixirAliasImpl(ALIAS)(258,267) + PsiElement(Alias)('Qualified')(258,267) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(267,268) + PsiElement(.)('.')(267,268) + ElixirAliasImpl(ALIAS)(268,278) + PsiElement(Alias)('Positional')(268,278) + PsiElement(,)(',')(278,279) + PsiElement(\\n, \\r\\n)('\n')(279,280) + PsiWhiteSpace(' ')(280,308) + ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(308,328) + ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(308,328) + ElixirKeywordKeyImpl(KEYWORD_KEY)(308,311) + PsiElement(identifier)('key')(308,311) + PsiElement(Keyword Pair Colon (:))(':')(311,312) + PsiWhiteSpace(' ')(312,313) + ElixirMatchedQualifiedAliasImpl(MATCHED_QUALIFIED_ALIAS)(313,328) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(313,322) + ElixirAliasImpl(ALIAS)(313,322) + PsiElement(Alias)('Qualified')(313,322) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(322,323) + PsiElement(.)('.')(322,323) + ElixirAliasImpl(ALIAS)(323,328) + PsiElement(Alias)('Value')(323,328) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedRelationalOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedRelationalOperation.ex new file mode 100644 index 000000000..130f883ed --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedRelationalOperation.ex @@ -0,0 +1,3 @@ +One.{} < Two.{} +One.{Two} < Two.{Three} +One.{Two, Three} < Three.{Four, Five} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedRelationalOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedRelationalOperation.txt new file mode 100644 index 000000000..ef79eb6e0 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedRelationalOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,77) + ElixirUnmatchedRelationalOperationImpl(UNMATCHED_RELATIONAL_OPERATION)(0,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirRelationalInfixOperatorImpl(RELATIONAL_INFIX_OPERATOR)(7,8) + PsiElement(<, <=, >=, >)('<')(7,8) + PsiWhiteSpace(' ')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,15) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(9,12) + ElixirAliasImpl(ALIAS)(9,12) + PsiElement(Alias)('Two')(9,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,15) + PsiElement({)('{')(13,14) + PsiElement(})('}')(14,15) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(15,16) + PsiElement(\\n, \\r\\n)('\n')(15,16) + ElixirUnmatchedRelationalOperationImpl(UNMATCHED_RELATIONAL_OPERATION)(16,39) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(16,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,19) + ElixirAliasImpl(ALIAS)(16,19) + PsiElement(Alias)('One')(16,19) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(19,20) + PsiElement(.)('.')(19,20) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(20,25) + PsiElement({)('{')(20,21) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(21,24) + ElixirAliasImpl(ALIAS)(21,24) + PsiElement(Alias)('Two')(21,24) + PsiElement(})('}')(24,25) + PsiWhiteSpace(' ')(25,26) + ElixirRelationalInfixOperatorImpl(RELATIONAL_INFIX_OPERATOR)(26,27) + PsiElement(<, <=, >=, >)('<')(26,27) + PsiWhiteSpace(' ')(27,28) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(28,39) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(28,31) + ElixirAliasImpl(ALIAS)(28,31) + PsiElement(Alias)('Two')(28,31) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(31,32) + PsiElement(.)('.')(31,32) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(32,39) + PsiElement({)('{')(32,33) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(33,38) + ElixirAliasImpl(ALIAS)(33,38) + PsiElement(Alias)('Three')(33,38) + PsiElement(})('}')(38,39) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(39,40) + PsiElement(\\n, \\r\\n)('\n')(39,40) + ElixirUnmatchedRelationalOperationImpl(UNMATCHED_RELATIONAL_OPERATION)(40,77) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(40,56) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(40,43) + ElixirAliasImpl(ALIAS)(40,43) + PsiElement(Alias)('One')(40,43) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(43,44) + PsiElement(.)('.')(43,44) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(44,56) + PsiElement({)('{')(44,45) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(45,48) + ElixirAliasImpl(ALIAS)(45,48) + PsiElement(Alias)('Two')(45,48) + PsiElement(,)(',')(48,49) + PsiWhiteSpace(' ')(49,50) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(50,55) + ElixirAliasImpl(ALIAS)(50,55) + PsiElement(Alias)('Three')(50,55) + PsiElement(})('}')(55,56) + PsiWhiteSpace(' ')(56,57) + ElixirRelationalInfixOperatorImpl(RELATIONAL_INFIX_OPERATOR)(57,58) + PsiElement(<, <=, >=, >)('<')(57,58) + PsiWhiteSpace(' ')(58,59) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(59,77) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(59,64) + ElixirAliasImpl(ALIAS)(59,64) + PsiElement(Alias)('Three')(59,64) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(64,65) + PsiElement(.)('.')(64,65) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(65,77) + PsiElement({)('{')(65,66) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(66,70) + ElixirAliasImpl(ALIAS)(66,70) + PsiElement(Alias)('Four')(66,70) + PsiElement(,)(',')(70,71) + PsiWhiteSpace(' ')(71,72) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(72,76) + ElixirAliasImpl(ALIAS)(72,76) + PsiElement(Alias)('Five')(72,76) + PsiElement(})('}')(76,77) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTwoOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTwoOperation.ex new file mode 100644 index 000000000..cc37f1780 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTwoOperation.ex @@ -0,0 +1,3 @@ +One.{} ++ Two.{} +One.{Two} ++ Three.{Four} +One.{Two, Three} ++ Three.{Four, Five} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTwoOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTwoOperation.txt new file mode 100644 index 000000000..794fb39a3 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTwoOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,81) + ElixirUnmatchedTwoOperationImpl(UNMATCHED_TWO_OPERATION)(0,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirTwoInfixOperatorImpl(TWO_INFIX_OPERATOR)(7,9) + PsiElement(++, --, .., <>)('++')(7,9) + PsiWhiteSpace(' ')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(13,14) + PsiElement(.)('.')(13,14) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(14,16) + PsiElement({)('{')(14,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedTwoOperationImpl(UNMATCHED_TWO_OPERATION)(17,42) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,26) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirAliasImpl(ALIAS)(17,20) + PsiElement(Alias)('One')(17,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,26) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(})('}')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirTwoInfixOperatorImpl(TWO_INFIX_OPERATOR)(27,29) + PsiElement(++, --, .., <>)('++')(27,29) + PsiWhiteSpace(' ')(29,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(30,42) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) + PsiElement(.)('.')(35,36) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(36,42) + PsiElement({)('{')(36,37) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(37,41) + ElixirAliasImpl(ALIAS)(37,41) + PsiElement(Alias)('Four')(37,41) + PsiElement(})('}')(41,42) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(42,43) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirUnmatchedTwoOperationImpl(UNMATCHED_TWO_OPERATION)(43,81) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(43,46) + ElixirAliasImpl(ALIAS)(43,46) + PsiElement(Alias)('One')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirTwoInfixOperatorImpl(TWO_INFIX_OPERATOR)(60,62) + PsiElement(++, --, .., <>)('++')(60,62) + PsiWhiteSpace(' ')(62,63) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(63,81) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(63,68) + ElixirAliasImpl(ALIAS)(63,68) + PsiElement(Alias)('Three')(63,68) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(68,69) + PsiElement(.)('.')(68,69) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(69,81) + PsiElement({)('{')(69,70) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(70,74) + ElixirAliasImpl(ALIAS)(70,74) + PsiElement(Alias)('Four')(70,74) + PsiElement(,)(',')(74,75) + PsiWhiteSpace(' ')(75,76) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(76,80) + ElixirAliasImpl(ALIAS)(76,80) + PsiElement(Alias)('Five')(76,80) + PsiElement(})('}')(80,81) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTypeOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTypeOperation.ex new file mode 100644 index 000000000..878489844 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTypeOperation.ex @@ -0,0 +1,3 @@ +One.{} :: Two.{} +One.{Two} :: Three.{Four} +One.{Two, Three} :: Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTypeOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTypeOperation.txt new file mode 100644 index 000000000..57596d56a --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedTypeOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,79) + ElixirUnmatchedTypeOperationImpl(UNMATCHED_TYPE_OPERATION)(0,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirTypeInfixOperatorImpl(TYPE_INFIX_OPERATOR)(7,9) + PsiElement(::)('::')(7,9) + PsiWhiteSpace(' ')(9,10) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(10,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(13,14) + PsiElement(.)('.')(13,14) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(14,16) + PsiElement({)('{')(14,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedTypeOperationImpl(UNMATCHED_TYPE_OPERATION)(17,42) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,26) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirAliasImpl(ALIAS)(17,20) + PsiElement(Alias)('One')(17,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,26) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(})('}')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirTypeInfixOperatorImpl(TYPE_INFIX_OPERATOR)(27,29) + PsiElement(::)('::')(27,29) + PsiWhiteSpace(' ')(29,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(30,42) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) + PsiElement(.)('.')(35,36) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(36,42) + PsiElement({)('{')(36,37) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(37,41) + ElixirAliasImpl(ALIAS)(37,41) + PsiElement(Alias)('Four')(37,41) + PsiElement(})('}')(41,42) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(42,43) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirUnmatchedTypeOperationImpl(UNMATCHED_TYPE_OPERATION)(43,79) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(43,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(43,46) + ElixirAliasImpl(ALIAS)(43,46) + PsiElement(Alias)('One')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) + PsiWhiteSpace(' ')(59,60) + ElixirTypeInfixOperatorImpl(TYPE_INFIX_OPERATOR)(60,62) + PsiElement(::)('::')(60,62) + PsiWhiteSpace(' ')(62,63) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(63,79) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(63,67) + ElixirAliasImpl(ALIAS)(63,67) + PsiElement(Alias)('Four')(63,67) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(67,68) + PsiElement(.)('.')(67,68) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(68,79) + PsiElement({)('{')(68,69) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(69,73) + ElixirAliasImpl(ALIAS)(69,73) + PsiElement(Alias)('Five')(69,73) + PsiElement(,)(',')(73,74) + PsiWhiteSpace(' ')(74,75) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(75,78) + ElixirAliasImpl(ALIAS)(75,78) + PsiElement(Alias)('Six')(75,78) + PsiElement(})('}')(78,79) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnaryNonNumericOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnaryNonNumericOperation.ex new file mode 100644 index 000000000..564d44e0e --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnaryNonNumericOperation.ex @@ -0,0 +1,3 @@ ++One.{} +-One.{Two} ++One.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnaryNonNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnaryNonNumericOperation.txt new file mode 100644 index 000000000..18be5c512 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnaryNonNumericOperation.txt @@ -0,0 +1,52 @@ +Elixir File(0,36) + ElixirUnmatchedUnaryNonNumericOperationImpl(UNMATCHED_UNARY_NON_NUMERIC_OPERATION)(0,7) + ElixirUnaryPrefixOperatorImpl(UNARY_PREFIX_OPERATOR)(0,1) + PsiElement(+, -)('+')(0,1) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(1,7) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(1,4) + ElixirAliasImpl(ALIAS)(1,4) + PsiElement(Alias)('One')(1,4) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(4,5) + PsiElement(.)('.')(4,5) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(5,7) + PsiElement({)('{')(5,6) + PsiElement(})('}')(6,7) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(7,8) + PsiElement(\\n, \\r\\n)('\n')(7,8) + ElixirUnmatchedUnaryNonNumericOperationImpl(UNMATCHED_UNARY_NON_NUMERIC_OPERATION)(8,18) + ElixirUnaryPrefixOperatorImpl(UNARY_PREFIX_OPERATOR)(8,9) + PsiElement(+, -)('-')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,18) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(9,12) + ElixirAliasImpl(ALIAS)(9,12) + PsiElement(Alias)('One')(9,12) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(12,13) + PsiElement(.)('.')(12,13) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(13,18) + PsiElement({)('{')(13,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(14,17) + ElixirAliasImpl(ALIAS)(14,17) + PsiElement(Alias)('Two')(14,17) + PsiElement(})('}')(17,18) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(18,19) + PsiElement(\\n, \\r\\n)('\n')(18,19) + ElixirUnmatchedUnaryNonNumericOperationImpl(UNMATCHED_UNARY_NON_NUMERIC_OPERATION)(19,36) + ElixirUnaryPrefixOperatorImpl(UNARY_PREFIX_OPERATOR)(19,20) + PsiElement(+, -)('+')(19,20) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(20,36) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(20,23) + ElixirAliasImpl(ALIAS)(20,23) + PsiElement(Alias)('One')(20,23) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(23,24) + PsiElement(.)('.')(23,24) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(24,36) + PsiElement({)('{')(24,25) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(25,28) + ElixirAliasImpl(ALIAS)(25,28) + PsiElement(Alias)('Two')(25,28) + PsiElement(,)(',')(28,29) + PsiWhiteSpace(' ')(29,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(30,35) + ElixirAliasImpl(ALIAS)(30,35) + PsiElement(Alias)('Three')(30,35) + PsiElement(})('}')(35,36) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnqualifiedCallOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnqualifiedCallOperation.ex new file mode 100644 index 000000000..9e707345b --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnqualifiedCallOperation.ex @@ -0,0 +1,10 @@ +relative_identifier( + One.{} +)( + Two.{Three} +).{Four, Five} +relative_identifier key: One.{} +relative_identifier unqualified One.{Two}, + key: Three.{Four, Five} +relative_identifier One.{}, + key: Two.{Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnqualifiedCallOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnqualifiedCallOperation.txt new file mode 100644 index 000000000..73a5e04a4 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedUnqualifiedCallOperation.txt @@ -0,0 +1,160 @@ +Elixir File(0,257) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,61) + UNMATCHED_UNQUALIFIED_PARENTHESES_CALL(0,48) + ElixirIdentifierImpl(IDENTIFIER)(0,19) + PsiElement(identifier)('relative_identifier')(0,19) + ElixirMatchedParenthesesArgumentsImpl(MATCHED_PARENTHESES_ARGUMENTS)(19,48) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(19,31) + PsiElement(()('(')(19,20) + PsiElement(\\n, \\r\\n)('\n')(20,21) + PsiWhiteSpace(' ')(21,23) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(23,29) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(23,26) + ElixirAliasImpl(ALIAS)(23,26) + PsiElement(Alias)('One')(23,26) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(26,27) + PsiElement(.)('.')(26,27) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(27,29) + PsiElement({)('{')(27,28) + PsiElement(})('}')(28,29) + PsiElement(\\n, \\r\\n)('\n')(29,30) + PsiElement())(')')(30,31) + ElixirParenthesesArgumentsImpl(PARENTHESES_ARGUMENTS)(31,48) + PsiElement(()('(')(31,32) + PsiElement(\\n, \\r\\n)('\n')(32,33) + PsiWhiteSpace(' ')(33,35) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(35,46) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(35,38) + ElixirAliasImpl(ALIAS)(35,38) + PsiElement(Alias)('Two')(35,38) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(38,39) + PsiElement(.)('.')(38,39) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(39,46) + PsiElement({)('{')(39,40) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(40,45) + ElixirAliasImpl(ALIAS)(40,45) + PsiElement(Alias)('Three')(40,45) + PsiElement(})('}')(45,46) + PsiElement(\\n, \\r\\n)('\n')(46,47) + PsiElement())(')')(47,48) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(48,49) + PsiElement(.)('.')(48,49) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(49,61) + PsiElement({)('{')(49,50) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(50,54) + ElixirAliasImpl(ALIAS)(50,54) + PsiElement(Alias)('Four')(50,54) + PsiElement(,)(',')(54,55) + PsiWhiteSpace(' ')(55,56) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(56,60) + ElixirAliasImpl(ALIAS)(56,60) + PsiElement(Alias)('Five')(56,60) + PsiElement(})('}')(60,61) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(61,62) + PsiElement(\\n, \\r\\n)('\n')(61,62) + UNMATCHED_UNQUALIFIED_NO_PARENTHESES_CALL(62,93) + ElixirIdentifierImpl(IDENTIFIER)(62,81) + PsiElement(identifier)('relative_identifier')(62,81) + PsiWhiteSpace(' ')(81,82) + ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(82,93) + ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(82,93) + ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(82,93) + ElixirKeywordKeyImpl(KEYWORD_KEY)(82,85) + PsiElement(identifier)('key')(82,85) + PsiElement(Keyword Pair Colon (:))(':')(85,86) + PsiWhiteSpace(' ')(86,87) + ElixirMatchedQualifiedMultipleAliasesImpl(MATCHED_QUALIFIED_MULTIPLE_ALIASES)(87,93) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(87,90) + ElixirAliasImpl(ALIAS)(87,90) + PsiElement(Alias)('One')(87,90) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(90,91) + PsiElement(.)('.')(90,91) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(91,93) + PsiElement({)('{')(91,92) + PsiElement(})('}')(92,93) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(93,94) + PsiElement(\\n, \\r\\n)('\n')(93,94) + UNMATCHED_UNQUALIFIED_NO_PARENTHESES_CALL(94,192) + ElixirIdentifierImpl(IDENTIFIER)(94,113) + PsiElement(identifier)('relative_identifier')(94,113) + PsiWhiteSpace(' ')(113,114) + ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(114,192) + UNQUALIFIED_NO_PARENTHESES_MANY_ARGUMENTS_CALL(114,192) + ElixirIdentifierImpl(IDENTIFIER)(114,125) + PsiElement(identifier)('unqualified')(114,125) + PsiWhiteSpace(' ')(125,126) + ElixirMatchedQualifiedMultipleAliasesImpl(MATCHED_QUALIFIED_MULTIPLE_ALIASES)(126,135) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(126,129) + ElixirAliasImpl(ALIAS)(126,129) + PsiElement(Alias)('One')(126,129) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(129,130) + PsiElement(.)('.')(129,130) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(130,135) + PsiElement({)('{')(130,131) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(131,134) + ElixirAliasImpl(ALIAS)(131,134) + PsiElement(Alias)('Two')(131,134) + PsiElement(})('}')(134,135) + PsiElement(,)(',')(135,136) + PsiElement(\\n, \\r\\n)('\n')(136,137) + PsiWhiteSpace(' ')(137,169) + ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(169,192) + ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(169,192) + ElixirKeywordKeyImpl(KEYWORD_KEY)(169,172) + PsiElement(identifier)('key')(169,172) + PsiElement(Keyword Pair Colon (:))(':')(172,173) + PsiWhiteSpace(' ')(173,174) + ElixirMatchedQualifiedMultipleAliasesImpl(MATCHED_QUALIFIED_MULTIPLE_ALIASES)(174,192) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(174,179) + ElixirAliasImpl(ALIAS)(174,179) + PsiElement(Alias)('Three')(174,179) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(179,180) + PsiElement(.)('.')(179,180) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(180,192) + PsiElement({)('{')(180,181) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(181,185) + ElixirAliasImpl(ALIAS)(181,185) + PsiElement(Alias)('Four')(181,185) + PsiElement(,)(',')(185,186) + PsiWhiteSpace(' ')(186,187) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(187,191) + ElixirAliasImpl(ALIAS)(187,191) + PsiElement(Alias)('Five')(187,191) + PsiElement(})('}')(191,192) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(192,193) + PsiElement(\\n, \\r\\n)('\n')(192,193) + UNMATCHED_UNQUALIFIED_NO_PARENTHESES_CALL(193,257) + ElixirIdentifierImpl(IDENTIFIER)(193,212) + PsiElement(identifier)('relative_identifier')(193,212) + PsiWhiteSpace(' ')(212,213) + ElixirNoParenthesesOneArgumentImpl(NO_PARENTHESES_ONE_ARGUMENT)(213,257) + ElixirMatchedQualifiedMultipleAliasesImpl(MATCHED_QUALIFIED_MULTIPLE_ALIASES)(213,219) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(213,216) + ElixirAliasImpl(ALIAS)(213,216) + PsiElement(Alias)('One')(213,216) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(216,217) + PsiElement(.)('.')(216,217) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(217,219) + PsiElement({)('{')(217,218) + PsiElement(})('}')(218,219) + PsiElement(,)(',')(219,220) + PsiElement(\\n, \\r\\n)('\n')(220,221) + PsiWhiteSpace(' ')(221,241) + ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(241,257) + ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(241,257) + ElixirKeywordKeyImpl(KEYWORD_KEY)(241,244) + PsiElement(identifier)('key')(241,244) + PsiElement(Keyword Pair Colon (:))(':')(244,245) + PsiWhiteSpace(' ')(245,246) + ElixirMatchedQualifiedMultipleAliasesImpl(MATCHED_QUALIFIED_MULTIPLE_ALIASES)(246,257) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(246,249) + ElixirAliasImpl(ALIAS)(246,249) + PsiElement(Alias)('Two')(246,249) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(249,250) + PsiElement(.)('.')(249,250) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(250,257) + PsiElement({)('{')(250,251) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(251,256) + ElixirAliasImpl(ALIAS)(251,256) + PsiElement(Alias)('Three')(251,256) + PsiElement(})('}')(256,257) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenNoParenthesesKeywordsOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenNoParenthesesKeywordsOperation.ex new file mode 100644 index 000000000..2c18b044e --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenNoParenthesesKeywordsOperation.ex @@ -0,0 +1,3 @@ +One.{} when key: value +One.{Two} when key: value +One.{Two, Three} when key: value diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenNoParenthesesKeywordsOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenNoParenthesesKeywordsOperation.txt new file mode 100644 index 000000000..9eba969f6 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenNoParenthesesKeywordsOperation.txt @@ -0,0 +1,85 @@ +Elixir File(0,81) + ElixirUnmatchedWhenOperationImpl(UNMATCHED_WHEN_OPERATION)(0,22) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirWhenInfixOperatorImpl(WHEN_INFIX_OPERATOR)(7,11) + PsiElement(when)('when')(7,11) + PsiWhiteSpace(' ')(11,12) + ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(12,22) + ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(12,22) + ElixirKeywordKeyImpl(KEYWORD_KEY)(12,15) + PsiElement(identifier)('key')(12,15) + PsiElement(Keyword Pair Colon (:))(':')(15,16) + PsiWhiteSpace(' ')(16,17) + MATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(17,22) + ElixirIdentifierImpl(IDENTIFIER)(17,22) + PsiElement(identifier)('value')(17,22) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(22,23) + PsiElement(\\n, \\r\\n)('\n')(22,23) + ElixirUnmatchedWhenOperationImpl(UNMATCHED_WHEN_OPERATION)(23,48) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(23,32) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(23,26) + ElixirAliasImpl(ALIAS)(23,26) + PsiElement(Alias)('One')(23,26) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(26,27) + PsiElement(.)('.')(26,27) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(27,32) + PsiElement({)('{')(27,28) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(28,31) + ElixirAliasImpl(ALIAS)(28,31) + PsiElement(Alias)('Two')(28,31) + PsiElement(})('}')(31,32) + PsiWhiteSpace(' ')(32,33) + ElixirWhenInfixOperatorImpl(WHEN_INFIX_OPERATOR)(33,37) + PsiElement(when)('when')(33,37) + PsiWhiteSpace(' ')(37,38) + ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(38,48) + ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(38,48) + ElixirKeywordKeyImpl(KEYWORD_KEY)(38,41) + PsiElement(identifier)('key')(38,41) + PsiElement(Keyword Pair Colon (:))(':')(41,42) + PsiWhiteSpace(' ')(42,43) + MATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(43,48) + ElixirIdentifierImpl(IDENTIFIER)(43,48) + PsiElement(identifier)('value')(43,48) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(48,49) + PsiElement(\\n, \\r\\n)('\n')(48,49) + ElixirUnmatchedWhenOperationImpl(UNMATCHED_WHEN_OPERATION)(49,81) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(49,65) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(49,52) + ElixirAliasImpl(ALIAS)(49,52) + PsiElement(Alias)('One')(49,52) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(52,53) + PsiElement(.)('.')(52,53) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(53,65) + PsiElement({)('{')(53,54) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(54,57) + ElixirAliasImpl(ALIAS)(54,57) + PsiElement(Alias)('Two')(54,57) + PsiElement(,)(',')(57,58) + PsiWhiteSpace(' ')(58,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(59,64) + ElixirAliasImpl(ALIAS)(59,64) + PsiElement(Alias)('Three')(59,64) + PsiElement(})('}')(64,65) + PsiWhiteSpace(' ')(65,66) + ElixirWhenInfixOperatorImpl(WHEN_INFIX_OPERATOR)(66,70) + PsiElement(when)('when')(66,70) + PsiWhiteSpace(' ')(70,71) + ElixirNoParenthesesKeywordsImpl(NO_PARENTHESES_KEYWORDS)(71,81) + ElixirNoParenthesesKeywordPairImpl(NO_PARENTHESES_KEYWORD_PAIR)(71,81) + ElixirKeywordKeyImpl(KEYWORD_KEY)(71,74) + PsiElement(identifier)('key')(71,74) + PsiElement(Keyword Pair Colon (:))(':')(74,75) + PsiWhiteSpace(' ')(75,76) + MATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(76,81) + ElixirIdentifierImpl(IDENTIFIER)(76,81) + PsiElement(identifier)('value')(76,81) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenOperation.ex new file mode 100644 index 000000000..cd97375f0 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenOperation.ex @@ -0,0 +1,3 @@ +One.{} when Two.{} +One.{Two} when Three.{Four} +One.{Two, Three} when Four.{Five, Six} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenOperation.txt new file mode 100644 index 000000000..14ab96305 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/MatchedWhenOperation.txt @@ -0,0 +1,96 @@ +Elixir File(0,85) + ElixirUnmatchedWhenOperationImpl(UNMATCHED_WHEN_OPERATION)(0,18) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirAliasImpl(ALIAS)(0,3) + PsiElement(Alias)('One')(0,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + PsiWhiteSpace(' ')(6,7) + ElixirWhenInfixOperatorImpl(WHEN_INFIX_OPERATOR)(7,11) + PsiElement(when)('when')(7,11) + PsiWhiteSpace(' ')(11,12) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(12,18) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(12,15) + ElixirAliasImpl(ALIAS)(12,15) + PsiElement(Alias)('Two')(12,15) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(15,16) + PsiElement(.)('.')(15,16) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(16,18) + PsiElement({)('{')(16,17) + PsiElement(})('}')(17,18) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(18,19) + PsiElement(\\n, \\r\\n)('\n')(18,19) + ElixirUnmatchedWhenOperationImpl(UNMATCHED_WHEN_OPERATION)(19,46) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(19,28) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(19,22) + ElixirAliasImpl(ALIAS)(19,22) + PsiElement(Alias)('One')(19,22) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(22,23) + PsiElement(.)('.')(22,23) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(23,28) + PsiElement({)('{')(23,24) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(24,27) + ElixirAliasImpl(ALIAS)(24,27) + PsiElement(Alias)('Two')(24,27) + PsiElement(})('}')(27,28) + PsiWhiteSpace(' ')(28,29) + ElixirWhenInfixOperatorImpl(WHEN_INFIX_OPERATOR)(29,33) + PsiElement(when)('when')(29,33) + PsiWhiteSpace(' ')(33,34) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(34,46) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(34,39) + ElixirAliasImpl(ALIAS)(34,39) + PsiElement(Alias)('Three')(34,39) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(39,40) + PsiElement(.)('.')(39,40) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(40,46) + PsiElement({)('{')(40,41) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(41,45) + ElixirAliasImpl(ALIAS)(41,45) + PsiElement(Alias)('Four')(41,45) + PsiElement(})('}')(45,46) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(46,47) + PsiElement(\\n, \\r\\n)('\n')(46,47) + ElixirUnmatchedWhenOperationImpl(UNMATCHED_WHEN_OPERATION)(47,85) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(47,63) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(47,50) + ElixirAliasImpl(ALIAS)(47,50) + PsiElement(Alias)('One')(47,50) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(50,51) + PsiElement(.)('.')(50,51) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(51,63) + PsiElement({)('{')(51,52) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(52,55) + ElixirAliasImpl(ALIAS)(52,55) + PsiElement(Alias)('Two')(52,55) + PsiElement(,)(',')(55,56) + PsiWhiteSpace(' ')(56,57) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(57,62) + ElixirAliasImpl(ALIAS)(57,62) + PsiElement(Alias)('Three')(57,62) + PsiElement(})('}')(62,63) + PsiWhiteSpace(' ')(63,64) + ElixirWhenInfixOperatorImpl(WHEN_INFIX_OPERATOR)(64,68) + PsiElement(when)('when')(64,68) + PsiWhiteSpace(' ')(68,69) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(69,85) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(69,73) + ElixirAliasImpl(ALIAS)(69,73) + PsiElement(Alias)('Four')(69,73) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(73,74) + PsiElement(.)('.')(73,74) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(74,85) + PsiElement({)('{')(74,75) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(75,79) + ElixirAliasImpl(ALIAS)(75,79) + PsiElement(Alias)('Five')(75,79) + PsiElement(,)(',')(79,80) + PsiWhiteSpace(' ')(80,81) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(81,84) + ElixirAliasImpl(ALIAS)(81,84) + PsiElement(Alias)('Six')(81,84) + PsiElement(})('}')(84,85) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/OctalWholeNumber.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/OctalWholeNumber.ex new file mode 100644 index 000000000..64cc08790 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/OctalWholeNumber.ex @@ -0,0 +1,3 @@ +0o7.{} +0o7.{One} +0o7.{One, Two} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/OctalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/OctalWholeNumber.txt new file mode 100644 index 000000000..cc9287b24 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/OctalWholeNumber.txt @@ -0,0 +1,52 @@ +Elixir File(0,31) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirOctalWholeNumberImpl(OCTAL_WHOLE_NUMBER)(0,3) + PsiElement(0)('0')(0,1) + PsiElement(o)('o')(1,2) + ElixirOctalDigitsImpl(OCTAL_DIGITS)(2,3) + PsiElement(0-7)('7')(2,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(6,7) + PsiElement(\\n, \\r\\n)('\n')(6,7) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(7,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(7,10) + ElixirOctalWholeNumberImpl(OCTAL_WHOLE_NUMBER)(7,10) + PsiElement(0)('0')(7,8) + PsiElement(o)('o')(8,9) + ElixirOctalDigitsImpl(OCTAL_DIGITS)(9,10) + PsiElement(0-7)('7')(9,10) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(10,11) + PsiElement(.)('.')(10,11) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(11,16) + PsiElement({)('{')(11,12) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(12,15) + ElixirAliasImpl(ALIAS)(12,15) + PsiElement(Alias)('One')(12,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,31) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirOctalWholeNumberImpl(OCTAL_WHOLE_NUMBER)(17,20) + PsiElement(0)('0')(17,18) + PsiElement(o)('o')(18,19) + ElixirOctalDigitsImpl(OCTAL_DIGITS)(19,20) + PsiElement(0-7)('7')(19,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,31) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('One')(22,25) + PsiElement(,)(',')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(27,30) + ElixirAliasImpl(ALIAS)(27,30) + PsiElement(Alias)('Two')(27,30) + PsiElement(})('}')(30,31) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Sigil.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Sigil.ex new file mode 100644 index 000000000..250da390c --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Sigil.ex @@ -0,0 +1,3 @@ +~x{sigil}modififiers.{} +~x{sigil}modififiers.{One} +~x{sigil}modififiers.{One, Two} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Sigil.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Sigil.txt new file mode 100644 index 000000000..28d206fd0 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Sigil.txt @@ -0,0 +1,94 @@ +Elixir File(0,82) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,23) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,20) + ElixirInterpolatedSigilLineImpl(INTERPOLATED_SIGIL_LINE)(0,20) + PsiElement(~)('~')(0,1) + PsiElement(a-b, d-q, t-v, x-z)('x')(1,2) + PsiElement(Sigil Promoter ({, [, <, ", /, (, |, '))('{')(2,3) + ElixirInterpolatedSigilBodyImpl(INTERPOLATED_SIGIL_BODY)(3,8) + PsiElement(Sigil Fragment)('sigil')(3,8) + PsiElement(Sigil Terminator ({, [, <, ", /, (, |, '))('}')(8,9) + ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(9,20) + PsiElement(a-z)('m')(9,10) + PsiElement(a-z)('o')(10,11) + PsiElement(a-z)('d')(11,12) + PsiElement(a-z)('i')(12,13) + PsiElement(a-z)('f')(13,14) + PsiElement(a-z)('i')(14,15) + PsiElement(a-z)('f')(15,16) + PsiElement(a-z)('i')(16,17) + PsiElement(a-z)('e')(17,18) + PsiElement(a-z)('r')(18,19) + PsiElement(a-z)('s')(19,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,23) + PsiElement({)('{')(21,22) + PsiElement(})('}')(22,23) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(23,24) + PsiElement(\\n, \\r\\n)('\n')(23,24) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(24,50) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(24,44) + ElixirInterpolatedSigilLineImpl(INTERPOLATED_SIGIL_LINE)(24,44) + PsiElement(~)('~')(24,25) + PsiElement(a-b, d-q, t-v, x-z)('x')(25,26) + PsiElement(Sigil Promoter ({, [, <, ", /, (, |, '))('{')(26,27) + ElixirInterpolatedSigilBodyImpl(INTERPOLATED_SIGIL_BODY)(27,32) + PsiElement(Sigil Fragment)('sigil')(27,32) + PsiElement(Sigil Terminator ({, [, <, ", /, (, |, '))('}')(32,33) + ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(33,44) + PsiElement(a-z)('m')(33,34) + PsiElement(a-z)('o')(34,35) + PsiElement(a-z)('d')(35,36) + PsiElement(a-z)('i')(36,37) + PsiElement(a-z)('f')(37,38) + PsiElement(a-z)('i')(38,39) + PsiElement(a-z)('f')(39,40) + PsiElement(a-z)('i')(40,41) + PsiElement(a-z)('e')(41,42) + PsiElement(a-z)('r')(42,43) + PsiElement(a-z)('s')(43,44) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(44,45) + PsiElement(.)('.')(44,45) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(45,50) + PsiElement({)('{')(45,46) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(46,49) + ElixirAliasImpl(ALIAS)(46,49) + PsiElement(Alias)('One')(46,49) + PsiElement(})('}')(49,50) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(50,51) + PsiElement(\\n, \\r\\n)('\n')(50,51) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(51,82) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(51,71) + ElixirInterpolatedSigilLineImpl(INTERPOLATED_SIGIL_LINE)(51,71) + PsiElement(~)('~')(51,52) + PsiElement(a-b, d-q, t-v, x-z)('x')(52,53) + PsiElement(Sigil Promoter ({, [, <, ", /, (, |, '))('{')(53,54) + ElixirInterpolatedSigilBodyImpl(INTERPOLATED_SIGIL_BODY)(54,59) + PsiElement(Sigil Fragment)('sigil')(54,59) + PsiElement(Sigil Terminator ({, [, <, ", /, (, |, '))('}')(59,60) + ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(60,71) + PsiElement(a-z)('m')(60,61) + PsiElement(a-z)('o')(61,62) + PsiElement(a-z)('d')(62,63) + PsiElement(a-z)('i')(63,64) + PsiElement(a-z)('f')(64,65) + PsiElement(a-z)('i')(65,66) + PsiElement(a-z)('f')(66,67) + PsiElement(a-z)('i')(67,68) + PsiElement(a-z)('e')(68,69) + PsiElement(a-z)('r')(69,70) + PsiElement(a-z)('s')(70,71) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(71,72) + PsiElement(.)('.')(71,72) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(72,82) + PsiElement({)('{')(72,73) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(73,76) + ElixirAliasImpl(ALIAS)(73,76) + PsiElement(Alias)('One')(73,76) + PsiElement(,)(',')(76,77) + PsiWhiteSpace(' ')(77,78) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(78,81) + ElixirAliasImpl(ALIAS)(78,81) + PsiElement(Alias)('Two')(78,81) + PsiElement(})('}')(81,82) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringHeredoc.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringHeredoc.ex new file mode 100644 index 000000000..b2a37d849 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringHeredoc.ex @@ -0,0 +1,11 @@ +""" +One +""".{} + +""" +One +""".{Two} + +""" +One +""".{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringHeredoc.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringHeredoc.txt new file mode 100644 index 000000000..482b7dfac --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringHeredoc.txt @@ -0,0 +1,75 @@ +Elixir File(0,59) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,11) + ElixirStringHeredocImpl(STRING_HEREDOC)(0,11) + PsiElement(String Heredoc Promoter ("""))('"""')(0,3) + PsiElement(\\n, \\r\\n)('\n')(3,4) + ElixirStringHeredocLineImpl(STRING_HEREDOC_LINE)(4,8) + ElixirHeredocLinePrefixImpl(HEREDOC_LINE_PREFIX)(4,4) + + ElixirQuoteStringBodyImpl(QUOTE_STRING_BODY)(4,7) + PsiElement(String Fragment)('One')(4,7) + PsiElement(\\n, \\r\\n)('\n')(7,8) + ElixirHeredocPrefixImpl(HEREDOC_PREFIX)(8,8) + + PsiElement(String Heredoc Terminator ("""))('"""')(8,11) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(11,12) + PsiElement(.)('.')(11,12) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(12,14) + PsiElement({)('{')(12,13) + PsiElement(})('}')(13,14) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(14,16) + PsiElement(\\n, \\r\\n)('\n')(14,15) + PsiElement(\\n, \\r\\n)('\n')(15,16) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(16,33) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,27) + ElixirStringHeredocImpl(STRING_HEREDOC)(16,27) + PsiElement(String Heredoc Promoter ("""))('"""')(16,19) + PsiElement(\\n, \\r\\n)('\n')(19,20) + ElixirStringHeredocLineImpl(STRING_HEREDOC_LINE)(20,24) + ElixirHeredocLinePrefixImpl(HEREDOC_LINE_PREFIX)(20,20) + + ElixirQuoteStringBodyImpl(QUOTE_STRING_BODY)(20,23) + PsiElement(String Fragment)('One')(20,23) + PsiElement(\\n, \\r\\n)('\n')(23,24) + ElixirHeredocPrefixImpl(HEREDOC_PREFIX)(24,24) + + PsiElement(String Heredoc Terminator ("""))('"""')(24,27) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(27,28) + PsiElement(.)('.')(27,28) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(28,33) + PsiElement({)('{')(28,29) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(29,32) + ElixirAliasImpl(ALIAS)(29,32) + PsiElement(Alias)('Two')(29,32) + PsiElement(})('}')(32,33) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(33,35) + PsiElement(\\n, \\r\\n)('\n')(33,34) + PsiElement(\\n, \\r\\n)('\n')(34,35) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(35,59) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(35,46) + ElixirStringHeredocImpl(STRING_HEREDOC)(35,46) + PsiElement(String Heredoc Promoter ("""))('"""')(35,38) + PsiElement(\\n, \\r\\n)('\n')(38,39) + ElixirStringHeredocLineImpl(STRING_HEREDOC_LINE)(39,43) + ElixirHeredocLinePrefixImpl(HEREDOC_LINE_PREFIX)(39,39) + + ElixirQuoteStringBodyImpl(QUOTE_STRING_BODY)(39,42) + PsiElement(String Fragment)('One')(39,42) + PsiElement(\\n, \\r\\n)('\n')(42,43) + ElixirHeredocPrefixImpl(HEREDOC_PREFIX)(43,43) + + PsiElement(String Heredoc Terminator ("""))('"""')(43,46) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(46,47) + PsiElement(.)('.')(46,47) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(47,59) + PsiElement({)('{')(47,48) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(48,51) + ElixirAliasImpl(ALIAS)(48,51) + PsiElement(Alias)('Two')(48,51) + PsiElement(,)(',')(51,52) + PsiWhiteSpace(' ')(52,53) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(53,58) + ElixirAliasImpl(ALIAS)(53,58) + PsiElement(Alias)('Three')(53,58) + PsiElement(})('}')(58,59) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringLine.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringLine.ex new file mode 100644 index 000000000..36f026b42 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringLine.ex @@ -0,0 +1,3 @@ +"One".{} +"One".{Two} +"One".{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringLine.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringLine.txt new file mode 100644 index 000000000..edf39e151 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/StringLine.txt @@ -0,0 +1,52 @@ +Elixir File(0,39) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,8) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,5) + ElixirStringLineImpl(STRING_LINE)(0,5) + PsiElement(String Promoter ("))('"')(0,1) + ElixirQuoteStringBodyImpl(QUOTE_STRING_BODY)(1,4) + PsiElement(String Fragment)('One')(1,4) + PsiElement(String Terminator ("))('"')(4,5) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(5,6) + PsiElement(.)('.')(5,6) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(6,8) + PsiElement({)('{')(6,7) + PsiElement(})('}')(7,8) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(8,9) + PsiElement(\\n, \\r\\n)('\n')(8,9) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(9,20) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(9,14) + ElixirStringLineImpl(STRING_LINE)(9,14) + PsiElement(String Promoter ("))('"')(9,10) + ElixirQuoteStringBodyImpl(QUOTE_STRING_BODY)(10,13) + PsiElement(String Fragment)('One')(10,13) + PsiElement(String Terminator ("))('"')(13,14) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(14,15) + PsiElement(.)('.')(14,15) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(15,20) + PsiElement({)('{')(15,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(16,19) + ElixirAliasImpl(ALIAS)(16,19) + PsiElement(Alias)('Two')(16,19) + PsiElement(})('}')(19,20) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(20,21) + PsiElement(\\n, \\r\\n)('\n')(20,21) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(21,39) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(21,26) + ElixirStringLineImpl(STRING_LINE)(21,26) + PsiElement(String Promoter ("))('"')(21,22) + ElixirQuoteStringBodyImpl(QUOTE_STRING_BODY)(22,25) + PsiElement(String Fragment)('One')(22,25) + PsiElement(String Terminator ("))('"')(25,26) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(26,27) + PsiElement(.)('.')(26,27) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(27,39) + PsiElement({)('{')(27,28) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(28,31) + ElixirAliasImpl(ALIAS)(28,31) + PsiElement(Alias)('Two')(28,31) + PsiElement(,)(',')(31,32) + PsiWhiteSpace(' ')(32,33) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(33,38) + ElixirAliasImpl(ALIAS)(33,38) + PsiElement(Alias)('Three')(33,38) + PsiElement(})('}')(38,39) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnaryNumericOperation.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnaryNumericOperation.ex new file mode 100644 index 000000000..ead405d2e --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnaryNumericOperation.ex @@ -0,0 +1,3 @@ +-1.{} +-1.{Two} +-1.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnaryNumericOperation.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnaryNumericOperation.txt new file mode 100644 index 000000000..1d3032a91 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnaryNumericOperation.txt @@ -0,0 +1,55 @@ +Elixir File(0,30) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,5) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,2) + ElixirUnaryNumericOperationImpl(UNARY_NUMERIC_OPERATION)(0,2) + ElixirUnaryPrefixOperatorImpl(UNARY_PREFIX_OPERATOR)(0,1) + PsiElement(+, -)('-')(0,1) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(1,2) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(1,2) + PsiElement(0-9)('1')(1,2) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(2,3) + PsiElement(.)('.')(2,3) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(3,5) + PsiElement({)('{')(3,4) + PsiElement(})('}')(4,5) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(5,6) + PsiElement(\\n, \\r\\n)('\n')(5,6) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(6,14) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(6,8) + ElixirUnaryNumericOperationImpl(UNARY_NUMERIC_OPERATION)(6,8) + ElixirUnaryPrefixOperatorImpl(UNARY_PREFIX_OPERATOR)(6,7) + PsiElement(+, -)('-')(6,7) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(7,8) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(7,8) + PsiElement(0-9)('1')(7,8) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(8,9) + PsiElement(.)('.')(8,9) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(9,14) + PsiElement({)('{')(9,10) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(10,13) + ElixirAliasImpl(ALIAS)(10,13) + PsiElement(Alias)('Two')(10,13) + PsiElement(})('}')(13,14) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(14,15) + PsiElement(\\n, \\r\\n)('\n')(14,15) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(15,30) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(15,17) + ElixirUnaryNumericOperationImpl(UNARY_NUMERIC_OPERATION)(15,17) + ElixirUnaryPrefixOperatorImpl(UNARY_PREFIX_OPERATOR)(15,16) + PsiElement(+, -)('-')(15,16) + ElixirDecimalWholeNumberImpl(DECIMAL_WHOLE_NUMBER)(16,17) + ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(16,17) + PsiElement(0-9)('1')(16,17) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(17,18) + PsiElement(.)('.')(17,18) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(18,30) + PsiElement({)('{')(18,19) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(19,22) + ElixirAliasImpl(ALIAS)(19,22) + PsiElement(Alias)('Two')(19,22) + PsiElement(,)(',')(22,23) + PsiWhiteSpace(' ')(23,24) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(24,29) + ElixirAliasImpl(ALIAS)(24,29) + PsiElement(Alias)('Three')(24,29) + PsiElement(})('}')(29,30) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnknownBaseWholeNumber.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnknownBaseWholeNumber.ex new file mode 100644 index 000000000..934896827 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnknownBaseWholeNumber.ex @@ -0,0 +1,3 @@ +0zZ.{} +0zZ.{Two} +0zZ.{Two, Three} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnknownBaseWholeNumber.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnknownBaseWholeNumber.txt new file mode 100644 index 000000000..6fd731bf6 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/UnknownBaseWholeNumber.txt @@ -0,0 +1,52 @@ +Elixir File(0,33) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,6) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(0,3) + ElixirUnknownBaseWholeNumberImpl(UNKNOWN_BASE_WHOLE_NUMBER)(0,3) + PsiElement(0)('0')(0,1) + PsiElement(A-Z, a, c-n, p-w, z)('z')(1,2) + ElixirUnknownBaseDigitsImpl(UNKNOWN_BASE_DIGITS)(2,3) + PsiElement(A-Z, a-z, 0-9)('Z')(2,3) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(3,4) + PsiElement(.)('.')(3,4) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(4,6) + PsiElement({)('{')(4,5) + PsiElement(})('}')(5,6) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(6,7) + PsiElement(\\n, \\r\\n)('\n')(6,7) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(7,16) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(7,10) + ElixirUnknownBaseWholeNumberImpl(UNKNOWN_BASE_WHOLE_NUMBER)(7,10) + PsiElement(0)('0')(7,8) + PsiElement(A-Z, a, c-n, p-w, z)('z')(8,9) + ElixirUnknownBaseDigitsImpl(UNKNOWN_BASE_DIGITS)(9,10) + PsiElement(A-Z, a-z, 0-9)('Z')(9,10) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(10,11) + PsiElement(.)('.')(10,11) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(11,16) + PsiElement({)('{')(11,12) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(12,15) + ElixirAliasImpl(ALIAS)(12,15) + PsiElement(Alias)('Two')(12,15) + PsiElement(})('}')(15,16) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(16,17) + PsiElement(\\n, \\r\\n)('\n')(16,17) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(17,33) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(17,20) + ElixirUnknownBaseWholeNumberImpl(UNKNOWN_BASE_WHOLE_NUMBER)(17,20) + PsiElement(0)('0')(17,18) + PsiElement(A-Z, a, c-n, p-w, z)('z')(18,19) + ElixirUnknownBaseDigitsImpl(UNKNOWN_BASE_DIGITS)(19,20) + PsiElement(A-Z, a-z, 0-9)('Z')(19,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,33) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('Two')(22,25) + PsiElement(,)(',')(25,26) + PsiWhiteSpace(' ')(26,27) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(27,32) + ElixirAliasImpl(ALIAS)(27,32) + PsiElement(Alias)('Three')(27,32) + PsiElement(})('}')(32,33) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Variable.ex b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Variable.ex new file mode 100644 index 000000000..0fd9a31bf --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Variable.ex @@ -0,0 +1,3 @@ +variable.{} +variable.{One} +variable.{One, Two} diff --git a/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Variable.txt b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Variable.txt new file mode 100644 index 000000000..37bf5e8e8 --- /dev/null +++ b/testData/org/elixir_lang/parser_definition/matched_qualified_multiple_aliases_parsing_test_case/Variable.txt @@ -0,0 +1,43 @@ +Elixir File(0,46) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(0,11) + UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(0,8) + ElixirIdentifierImpl(IDENTIFIER)(0,8) + PsiElement(identifier)('variable')(0,8) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(8,9) + PsiElement(.)('.')(8,9) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(9,11) + PsiElement({)('{')(9,10) + PsiElement(})('}')(10,11) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(11,12) + PsiElement(\\n, \\r\\n)('\n')(11,12) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(12,26) + UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(12,20) + ElixirIdentifierImpl(IDENTIFIER)(12,20) + PsiElement(identifier)('variable')(12,20) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(20,21) + PsiElement(.)('.')(20,21) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(21,26) + PsiElement({)('{')(21,22) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(22,25) + ElixirAliasImpl(ALIAS)(22,25) + PsiElement(Alias)('One')(22,25) + PsiElement(})('}')(25,26) + ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(26,27) + PsiElement(\\n, \\r\\n)('\n')(26,27) + ElixirUnmatchedQualifiedMultipleAliasesImpl(UNMATCHED_QUALIFIED_MULTIPLE_ALIASES)(27,46) + UNMATCHED_UNQUALIFIED_NO_ARGUMENTS_CALL(27,35) + ElixirIdentifierImpl(IDENTIFIER)(27,35) + PsiElement(identifier)('variable')(27,35) + ElixirDotInfixOperatorImpl(DOT_INFIX_OPERATOR)(35,36) + PsiElement(.)('.')(35,36) + ElixirMultipleAliasesImpl(MULTIPLE_ALIASES)(36,46) + PsiElement({)('{')(36,37) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(37,40) + ElixirAliasImpl(ALIAS)(37,40) + PsiElement(Alias)('One')(37,40) + PsiElement(,)(',')(40,41) + PsiWhiteSpace(' ')(41,42) + ElixirAccessExpressionImpl(ACCESS_EXPRESSION)(42,45) + ElixirAliasImpl(ALIAS)(42,45) + PsiElement(Alias)('Two')(42,45) + PsiElement(})('}')(45,46) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/Atom.txt b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/Atom.txt index 4ff91644f..502cc1304 100644 --- a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/Atom.txt +++ b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/Atom.txt @@ -4,7 +4,7 @@ Elixir File(0,59) PsiElement(?)('?')(0,1) PsiElement(Char List Fragment)('c')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(3,4) PsiElement(:)(':')(3,4) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(4,8) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(8,9) @@ -16,7 +16,7 @@ Elixir File(0,59) ElixirBinaryDigitsImpl(BINARY_DIGITS)(11,12) PsiElement(0-1)('0')(11,12) PsiElement(.)('.')(12,13) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(13,14) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(13,14) PsiElement(:)(':')(13,14) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(14,18) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(18,19) @@ -40,7 +40,7 @@ Elixir File(0,59) ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(24,25) PsiElement(0-9)('3')(24,25) PsiElement(.)('.')(25,26) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(26,27) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(26,27) PsiElement(:)(':')(26,27) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(27,31) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(31,32) @@ -50,7 +50,7 @@ Elixir File(0,59) ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(32,33) PsiElement(0-9)('1')(32,33) PsiElement(.)('.')(33,34) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(34,35) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(34,35) PsiElement(:)(':')(34,35) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(35,39) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(39,40) @@ -62,7 +62,7 @@ Elixir File(0,59) ElixirHexadecimalDigitsImpl(HEXADECIMAL_DIGITS)(42,43) PsiElement(A-F, a-f, 0-9)('0')(42,43) PsiElement(.)('.')(43,44) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(44,45) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(44,45) PsiElement(:)(':')(44,45) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(45,49) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(49,50) @@ -74,6 +74,6 @@ Elixir File(0,59) ElixirOctalDigitsImpl(OCTAL_DIGITS)(52,53) PsiElement(0-7)('0')(52,53) PsiElement(.)('.')(53,54) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(54,55) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(54,55) PsiElement(:)(':')(54,55) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('atom')(55,59) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/CharListHeredoc.txt b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/CharListHeredoc.txt index ef9953554..9f7558070 100644 --- a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/CharListHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/CharListHeredoc.txt @@ -4,7 +4,7 @@ Elixir File(0,143) PsiElement(?)('?')(0,1) PsiElement(Char List Fragment)('c')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '''''(3,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '''''(3,6) PsiElement(Char List Heredoc Promoter ('''))(''''')(3,6) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(6,7) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/List.txt b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/List.txt index ad3f8b11f..1e6138480 100644 --- a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/List.txt +++ b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/List.txt @@ -4,7 +4,7 @@ Elixir File(0,41) PsiElement(?)('?')(0,1) PsiElement(Char List Fragment)('c')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '['(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '['(3,4) PsiElement([)('[')(3,4) PsiElement(])(']')(4,5) PsiElement(DUMMY_BLOCK)(5,15) diff --git a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/Sigil.txt b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/Sigil.txt index b04f614f8..2c69b9f56 100644 --- a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/Sigil.txt +++ b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/Sigil.txt @@ -4,7 +4,7 @@ Elixir File(0,71) PsiElement(?)('?')(0,1) PsiElement(Char List Fragment)('c')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(3,4) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(3,4) PsiElement(~)('~')(3,4) PsiElement(c)('c')(4,5) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(5,6) @@ -19,7 +19,7 @@ Elixir File(0,71) ElixirBinaryDigitsImpl(BINARY_DIGITS)(13,14) PsiElement(0-1)('0')(13,14) PsiElement(.)('.')(14,15) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(15,16) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(15,16) PsiElement(~)('~')(15,16) PsiElement(c)('c')(16,17) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(17,18) @@ -46,7 +46,7 @@ Elixir File(0,71) ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(28,29) PsiElement(0-9)('3')(28,29) PsiElement(.)('.')(29,30) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(30,31) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(30,31) PsiElement(~)('~')(30,31) PsiElement(c)('c')(31,32) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(32,33) @@ -59,7 +59,7 @@ Elixir File(0,71) ElixirDecimalDigitsImpl(DECIMAL_DIGITS)(38,39) PsiElement(0-9)('1')(38,39) PsiElement(.)('.')(39,40) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(40,41) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(40,41) PsiElement(~)('~')(40,41) PsiElement(c)('c')(41,42) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(42,43) @@ -74,7 +74,7 @@ Elixir File(0,71) ElixirHexadecimalDigitsImpl(HEXADECIMAL_DIGITS)(50,51) PsiElement(A-F, a-f, 0-9)('0')(50,51) PsiElement(.)('.')(51,52) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(52,53) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(52,53) PsiElement(~)('~')(52,53) PsiElement(c)('c')(53,54) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(54,55) @@ -89,7 +89,7 @@ Elixir File(0,71) ElixirOctalDigitsImpl(OCTAL_DIGITS)(62,63) PsiElement(0-7)('0')(62,63) PsiElement(.)('.')(63,64) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(64,65) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(64,65) PsiElement(~)('~')(64,65) PsiElement(c)('c')(65,66) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(66,67) diff --git a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/StringHeredoc.txt b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/StringHeredoc.txt index 11f198d4e..c2673a4d3 100644 --- a/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/StringHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/numeric_dot_operation_parsing_test_case/StringHeredoc.txt @@ -4,7 +4,7 @@ Elixir File(0,143) PsiElement(?)('?')(0,1) PsiElement(Char List Fragment)('c')(1,2) PsiElement(.)('.')(2,3) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '"""'(3,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '"""'(3,6) PsiElement(String Heredoc Promoter ("""))('"""')(3,6) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(6,7) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/Atom.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/Atom.txt index 23073c1ff..ff9738c44 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/Atom.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/Atom.txt @@ -10,6 +10,6 @@ Elixir File(0,9) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got ':'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got ':'(5,6) PsiElement(:)(':')(5,6) PsiElement(A-Z, a-z, _, @, 0-9. ?, !)('two')(6,9) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/BinaryWholeNumber.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/BinaryWholeNumber.txt index e4f3f5946..1f11cb58d 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/BinaryWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/BinaryWholeNumber.txt @@ -10,7 +10,7 @@ Elixir File(0,8) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(5,6) PsiElement(0)('0')(5,6) PsiElement(b)('b')(6,7) PsiElement(0-1)('0')(7,8) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/CharListHeredoc.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/CharListHeredoc.txt index f819805a8..96593133d 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/CharListHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/CharListHeredoc.txt @@ -10,7 +10,7 @@ Elixir File(0,22) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '''''(5,8) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '''''(5,8) PsiElement(Char List Heredoc Promoter ('''))(''''')(5,8) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(8,9) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/CharToken.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/CharToken.txt index 3276b0188..34ec13be2 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/CharToken.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/CharToken.txt @@ -10,6 +10,6 @@ Elixir File(0,7) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '?'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '?'(5,6) PsiElement(?)('?')(5,6) PsiElement(Char List Fragment)('2')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/DecimalFloat.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/DecimalFloat.txt index 9ddd695d9..6bc5a85aa 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/DecimalFloat.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/DecimalFloat.txt @@ -10,7 +10,7 @@ Elixir File(0,8) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(5,6) PsiElement(0-9)('2')(5,6) PsiElement(Decimal Mark (.))('.')(6,7) PsiElement(0-9)('3')(7,8) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/DecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/DecimalWholeNumber.txt index 37c064b7f..0f9bea343 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/DecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/DecimalWholeNumber.txt @@ -10,5 +10,5 @@ Elixir File(0,6) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '2'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '2'(5,6) PsiElement(0-9)('2')(5,6) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt index b9b1b87a0..885261eca 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/HexadecimalWholeNumber.txt @@ -10,7 +10,7 @@ Elixir File(0,8) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(5,6) PsiElement(0)('0')(5,6) PsiElement(x)('x')(6,7) PsiElement(A-F, a-f, 0-9)('2')(7,8) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/List.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/List.txt index 5f9f21e20..e0cd82d91 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/List.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/List.txt @@ -10,6 +10,6 @@ Elixir File(0,7) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '['(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '['(5,6) PsiElement([)('[')(5,6) PsiElement(])(']')(6,7) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/OctalWholeNumber.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/OctalWholeNumber.txt index cc673f3ef..089f9c34b 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/OctalWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/OctalWholeNumber.txt @@ -10,7 +10,7 @@ Elixir File(0,8) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(5,6) PsiElement(0)('0')(5,6) PsiElement(o)('o')(6,7) PsiElement(0-7)('2')(7,8) \ No newline at end of file diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/Sigil.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/Sigil.txt index fb4ad4ed6..d6598f9e1 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/Sigil.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/Sigil.txt @@ -10,7 +10,7 @@ Elixir File(0,12) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '~'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '~'(5,6) PsiElement(~)('~')(5,6) PsiElement(c)('c')(6,7) PsiElement(Char List Sigil Promoter ({, [, <, ", /, (, |, '))('{')(7,8) diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/StringHeredoc.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/StringHeredoc.txt index c4a003fd6..02fe7bdb0 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/StringHeredoc.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/StringHeredoc.txt @@ -10,7 +10,7 @@ Elixir File(0,22) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '"""'(5,8) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '"""'(5,8) PsiElement(String Heredoc Promoter ("""))('"""')(5,8) ElixirEndOfExpressionImpl(END_OF_EXPRESSION)(8,9) PsiErrorElement: expected, got ' diff --git a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt index 064ade795..a38857bd5 100644 --- a/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt +++ b/testData/org/elixir_lang/parser_definition/sigil_dot_operation_parsing_test_case/UnknownBaseWholeNumber.txt @@ -10,7 +10,7 @@ Elixir File(0,8) ElixirSigilModifiersImpl(SIGIL_MODIFIERS)(4,4) PsiElement(.)('.')(4,5) - PsiErrorElement:'(', , Alias, '\\n or \\r\\n' expected, got '0'(5,6) + PsiErrorElement:'(', , Alias, '\\n, \\r\\n' or '{' expected, got '0'(5,6) PsiElement(0)('0')(5,6) PsiElement(A-Z, a, c-n, p-w, z)('z')(6,7) PsiElement(A-Z, a-z, 0-9)('2')(7,8) \ No newline at end of file diff --git a/tests/org/elixir_lang/parser_definition/MatchedQualifiedMultipleAliasesParsingTestCase.java b/tests/org/elixir_lang/parser_definition/MatchedQualifiedMultipleAliasesParsingTestCase.java new file mode 100644 index 000000000..686e0ffe5 --- /dev/null +++ b/tests/org/elixir_lang/parser_definition/MatchedQualifiedMultipleAliasesParsingTestCase.java @@ -0,0 +1,192 @@ +package org.elixir_lang.parser_definition; + +/** + * atom is invalid to the right of `.`, so unlike in {@link MatchedDotOperationParsingTestcase}, this tests only when + * atom is left of `.` and the right operand varies based on the test name. + */ +public class MatchedQualifiedMultipleAliasesParsingTestCase extends ParsingTestCase { + /* + * matchedExpression + */ + + public void testMatchedCaptureNonNumericOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedInMatchOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedWhenNoParenthesesKeywordsOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedWhenOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedTypeOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedPipeOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedMatchOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedOrOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedAndOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedComparisonOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedRelationalOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedArrowOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedInOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedTwoOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedAdditionOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedMultiplicationOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedUnaryNonNumericOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedDotCallOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedQualifiedAliasOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedQualifiedCallOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedAtNonNumericOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testMatchedUnqualifiedCallOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testVariable() { + assertParsedAndQuotedCorrectly(); + } + + /* + * accessExpression + */ + + public void testAtNumericOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testCaptureNumericOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testUnaryNumericOperation() { + assertParsedAndQuotedCorrectly(); + } + + public void testEmptyBlock() { + assertParsedAndQuotedCorrectly(); + } + + public void testList() { + assertParsedAndQuotedCorrectly(); + } + + public void testSigil() { + assertParsedAndQuotedCorrectly(); + } + + public void testAtomKeyword() { + assertParsedAndQuotedCorrectly(); + } + + public void testAlias() { + assertParsedAndQuotedCorrectly(); + } + + /* + * numeric + */ + + public void testCharToken() { + assertParsedAndQuotedCorrectly(); + } + + public void testBinaryWholeNumber() { + assertParsedAndQuotedCorrectly(); + } + + public void testHexadecimalWholeNumber() { + assertParsedAndQuotedCorrectly(); + } + + public void testOctalWholeNumber() { + assertParsedAndQuotedCorrectly(); + } + + public void testUnknownBaseWholeNumber() { + assertParsedAndQuotedAroundError(); + } + + public void testDecimalFloat() { + assertParsedAndQuotedCorrectly(); + } + + public void testDecimalWholeNumber() { + assertParsedAndQuotedCorrectly(); + } + + public void testStringLine() { + assertParsedAndQuotedCorrectly(); + } + + public void testStringHeredoc() { + assertParsedAndQuotedCorrectly(); + } + + public void testCharListLine() { + assertParsedAndQuotedCorrectly(); + } + + public void testCharListHeredoc() { + assertParsedAndQuotedCorrectly(); + } + + @Override + protected String getTestDataPath() { + return super.getTestDataPath() + "/matched_qualified_multiple_aliases_parsing_test_case"; + } +}