Clean up antlr/parser utilities 80/102680/1
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 13 Oct 2022 22:21:47 +0000 (00:21 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 13 Oct 2022 22:22:51 +0000 (00:22 +0200)
We can seal the token hierarchy, let's do that to improve clarity as to
what is going on.

Change-Id: I982831143d462e53def2a7ea9283d7509c1fdaff
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/antlr/AbstractParserErrorListener.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/antlr/AbstractSourceToken.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/antlr/AbstractToken.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/antlr/CompactYangStatementLexer.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/antlr/SourceExceptionParser.java

index eab3e433d7a7eb23eb433b6714f3cc8f15867a5b..c3e711113f5e30230361b1ec338bb9805f052529 100644 (file)
@@ -11,7 +11,6 @@ import static com.google.common.base.Verify.verifyNotNull;
 
 import com.google.common.annotations.Beta;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import org.antlr.v4.runtime.BaseErrorListener;
 import org.antlr.v4.runtime.RecognitionException;
@@ -48,8 +47,8 @@ public abstract class AbstractParserErrorListener<E extends Exception> extends B
 
     public final void validate() throws E {
         if (!exceptions.isEmpty()) {
-            final Iterator<E> it = exceptions.iterator();
-            final E exception = it.next();
+            final var it = exceptions.iterator();
+            final var exception = it.next();
             it.forEachRemaining(exception::addSuppressed);
             throw exception;
         }
index fc2bdc85136d7929ff3c3380e49822cc78068afd..1d9f77994297f446000eac39ba3271c0031193ee 100644 (file)
@@ -14,7 +14,7 @@ import org.antlr.v4.runtime.TokenSource;
 import org.antlr.v4.runtime.misc.Interval;
 import org.antlr.v4.runtime.misc.Pair;
 
-abstract class AbstractSourceToken extends AbstractToken {
+abstract sealed class AbstractSourceToken extends AbstractToken permits Token12122, Token12144, Token44444 {
     private final Pair<TokenSource, CharStream> source;
 
     AbstractSourceToken(final Pair<TokenSource, CharStream> source) {
index ced48bd08afd21eb191aab52be770547086b6d22..2af1d10efd20d9873fdc201b4799bbf5e9198b25 100644 (file)
@@ -11,7 +11,7 @@ import static com.google.common.base.Preconditions.checkState;
 
 import org.antlr.v4.runtime.WritableToken;
 
-abstract class AbstractToken implements WritableToken {
+abstract sealed class AbstractToken implements WritableToken permits AbstractSourceToken, ExplicitTextToken {
     private int tokenIndex = -1;
 
     @Override
index cd9447e34835aaa13602eca1ecb379e25fca9e01..4a648884fd61ddbbae19e734ab85652f71fc28b0 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.yangtools.yang.parser.antlr.YangStatementLexer;
  * specification.
  */
 @Beta
-public class CompactYangStatementLexer extends YangStatementLexer {
+public final class CompactYangStatementLexer extends YangStatementLexer {
     public CompactYangStatementLexer(final CharStream input) {
         super(input);
         setTokenFactory(CompactTokenFactory.INSTANCE);
index a37da56b4258f01fce3340898b9448b40aad1c5e..daaf74c11f662a90d9570ee65901b72436c66120 100644 (file)
@@ -44,7 +44,7 @@ public final class SourceExceptionParser {
     }
 
     private SourceExceptionParser() {
-
+        // Hidden on purpose
     }
 
     /**
@@ -59,11 +59,11 @@ public final class SourceExceptionParser {
      */
     public static <T> T parse(final Recognizer<?, ?> recognizer, final Supplier<T> parseMethod,
             final StatementSourceReference ref) {
-        final Listener listener = new Listener(ref);
+        final var listener = new Listener(ref);
         recognizer.removeErrorListeners();
         recognizer.addErrorListener(listener);
 
-        final T ret = parseMethod.get();
+        final var ret = parseMethod.get();
         listener.validate();
         return ret;
     }