diff options
Diffstat (limited to 'subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java')
-rw-r--r-- | subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java b/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java index 306a86fc..0e19357f 100644 --- a/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java +++ b/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
@@ -59,7 +59,7 @@ public class IdentifierTokenProvider { | |||
59 | 59 | ||
60 | private void createValueToTokenIdMap() { | 60 | private void createValueToTokenIdMap() { |
61 | var tokenIdToValueMap = tokenDefProvider.getTokenDefMap(); | 61 | var tokenIdToValueMap = tokenDefProvider.getTokenDefMap(); |
62 | valueToTokenIdMap = new HashMap<>(tokenIdToValueMap.size()); | 62 | valueToTokenIdMap = HashMap.newHashMap(tokenIdToValueMap.size()); |
63 | for (var entry : tokenIdToValueMap.entrySet()) { | 63 | for (var entry : tokenIdToValueMap.entrySet()) { |
64 | valueToTokenIdMap.put(entry.getValue(), entry.getKey()); | 64 | valueToTokenIdMap.put(entry.getValue(), entry.getKey()); |
65 | } | 65 | } |
@@ -74,17 +74,16 @@ public class IdentifierTokenProvider { | |||
74 | } | 74 | } |
75 | 75 | ||
76 | private void collectIdentifierTokensFromElement(AbstractElement element) { | 76 | private void collectIdentifierTokensFromElement(AbstractElement element) { |
77 | if (element instanceof Alternatives alternatives) { | 77 | switch (element) { |
78 | for (var alternative : alternatives.getElements()) { | 78 | case Alternatives alternatives -> { |
79 | collectIdentifierTokensFromElement(alternative); | 79 | for (var alternative : alternatives.getElements()) { |
80 | } | 80 | collectIdentifierTokensFromElement(alternative); |
81 | } else if (element instanceof RuleCall ruleCall) { | 81 | } |
82 | collectIdentifierTokensFromRule(ruleCall.getRule()); | 82 | } |
83 | } else if (element instanceof Keyword keyword) { | 83 | case RuleCall ruleCall -> collectIdentifierTokensFromRule(ruleCall.getRule()); |
84 | collectToken("'" + keyword.getValue() + "'"); | 84 | case Keyword keyword -> collectToken("'" + keyword.getValue() + "'"); |
85 | } else { | 85 | default -> throw new IllegalArgumentException("Unknown Xtext grammar element: " + element); |
86 | throw new IllegalArgumentException("Unknown Xtext grammar element: " + element); | 86 | } |
87 | } | ||
88 | } | 87 | } |
89 | 88 | ||
90 | private void collectToken(String value) { | 89 | private void collectToken(String value) { |