This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new d1c39135a8 Do not expose LexerInputCharSteeam as an API.
d1c39135a8 is described below

commit d1c39135a852a579f32344e486d72d5e0647317b
Author: Laszlo Kishalmi <laszlo.kisha...@gmail.com>
AuthorDate: Mon Jan 9 10:44:20 2023 -0800

    Do not expose LexerInputCharSteeam as an API.
---
 .../src/org/netbeans/modules/languages/toml/TomlLexer.java |  5 +++--
 .../org/netbeans/modules/languages/toml/TomlTokenId.java   |  3 +--
 .../spi/lexer/antlr4/AbstractAntlrLexerBridge.java         | 14 ++++++++------
 .../netbeans/spi/lexer/antlr4/LexerInputCharStream.java    |  2 +-
 .../netbeans/modules/languages/antlr/v3/Antlr3Lexer.java   |  3 +--
 .../netbeans/modules/languages/antlr/v4/Antlr4Lexer.java   |  3 +--
 6 files changed, 15 insertions(+), 15 deletions(-)

diff --git 
a/ide/languages.toml/src/org/netbeans/modules/languages/toml/TomlLexer.java 
b/ide/languages.toml/src/org/netbeans/modules/languages/toml/TomlLexer.java
index 6b2414749c..451242b8f0 100644
--- a/ide/languages.toml/src/org/netbeans/modules/languages/toml/TomlLexer.java
+++ b/ide/languages.toml/src/org/netbeans/modules/languages/toml/TomlLexer.java
@@ -32,8 +32,8 @@ import org.netbeans.spi.lexer.antlr4.AbstractAntlrLexerBridge;
  */
 public final class TomlLexer extends 
AbstractAntlrLexerBridge<org.tomlj.internal.TomlLexer, TomlTokenId> {
 
-    public TomlLexer(LexerRestartInfo<TomlTokenId> info, 
org.tomlj.internal.TomlLexer lexer) {
-        super(info, lexer);
+    public TomlLexer(LexerRestartInfo<TomlTokenId> info) {
+        super(info, org.tomlj.internal.TomlLexer::new);
     }
 
     @Override
@@ -122,6 +122,7 @@ public final class TomlLexer extends 
AbstractAntlrLexerBridge<org.tomlj.internal
             this.arrayDepthStack = new IntegerStack(lexer.arrayDepthStack);
         }
 
+        @Override
         public void restore(org.tomlj.internal.TomlLexer lexer) {
             super.restore(lexer);
 
diff --git 
a/ide/languages.toml/src/org/netbeans/modules/languages/toml/TomlTokenId.java 
b/ide/languages.toml/src/org/netbeans/modules/languages/toml/TomlTokenId.java
index e60e21194e..8eef764616 100644
--- 
a/ide/languages.toml/src/org/netbeans/modules/languages/toml/TomlTokenId.java
+++ 
b/ide/languages.toml/src/org/netbeans/modules/languages/toml/TomlTokenId.java
@@ -26,7 +26,6 @@ import org.netbeans.api.lexer.TokenId;
 import org.netbeans.spi.lexer.LanguageHierarchy;
 import org.netbeans.spi.lexer.Lexer;
 import org.netbeans.spi.lexer.LexerRestartInfo;
-import org.netbeans.spi.lexer.antlr4.LexerInputCharStream;
 
 /**
  *
@@ -67,7 +66,7 @@ public enum TomlTokenId implements TokenId {
 
         @Override
         protected Lexer<TomlTokenId> createLexer(LexerRestartInfo<TomlTokenId> 
info) {
-            return new TomlLexer(info, new org.tomlj.internal.TomlLexer(new 
LexerInputCharStream(info.input())));
+            return new TomlLexer(info);
         }
 
         @Override
diff --git 
a/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/AbstractAntlrLexerBridge.java
 
b/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/AbstractAntlrLexerBridge.java
index 112936af59..45ba32978d 100644
--- 
a/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/AbstractAntlrLexerBridge.java
+++ 
b/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/AbstractAntlrLexerBridge.java
@@ -18,6 +18,8 @@
  */
 package org.netbeans.spi.lexer.antlr4;
 
+import java.util.function.Function;
+import org.antlr.v4.runtime.CharStream;
 import org.antlr.v4.runtime.misc.IntegerList;
 import org.netbeans.api.lexer.Token;
 import org.antlr.v4.runtime.Lexer;
@@ -38,24 +40,24 @@ public abstract class AbstractAntlrLexerBridge<L extends 
Lexer, T extends TokenI
 
     private final TokenFactory<T> tokenFactory;
     protected final L lexer;
-    protected final LexerInputCharStream input;
+    private final LexerInputCharStream input;
 
     /**
      * Constructor for the lexer bridge, usually used as:
      * <pre>{@code
      * public SomeLexer(LexerRestartInfo<SomeTokenId> info) {
-     *     super(info, new SomeANTLRLexer(new 
LexerInputCharStream(info.input())));
+     *     super(info, SomeANTLRLexer::new);
      * }
      * }
      * </pre>
      * @param info  The lexer restart info
-     * @param lexer The ANTLR generated Lexer
+     * @param lexerCreator A function to create an ANTLR from a {@code 
CharSteram}.
      */
     @SuppressWarnings("unchecked")
-    public AbstractAntlrLexerBridge(LexerRestartInfo<T> info, L lexer) {
+    public AbstractAntlrLexerBridge(LexerRestartInfo<T> info, 
Function<CharStream, L> lexerCreator) {
         this.tokenFactory = info.tokenFactory();
-        this.lexer = lexer;
-        this.input = (LexerInputCharStream) lexer.getInputStream();
+        this.input = new LexerInputCharStream(info.input());
+        this.lexer = lexerCreator.apply(input);
         if (info.state() != null) {
             ((LexerState<L>) info.state()).restore(lexer);
         }
diff --git 
a/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/LexerInputCharStream.java 
b/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/LexerInputCharStream.java
index a0853ba63a..2f782bb275 100644
--- 
a/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/LexerInputCharStream.java
+++ 
b/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/LexerInputCharStream.java
@@ -28,7 +28,7 @@ import org.netbeans.spi.lexer.*;
  *
  * @author Laszlo Kishalmi
  */
-public class LexerInputCharStream implements CharStream {
+final class LexerInputCharStream implements CharStream {
     private final LexerInput input;
 
     private int tokenMark = Integer.MAX_VALUE;
diff --git 
a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v3/Antlr3Lexer.java
 
b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v3/Antlr3Lexer.java
index 5238858e17..876c59f57c 100644
--- 
a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v3/Antlr3Lexer.java
+++ 
b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v3/Antlr3Lexer.java
@@ -26,7 +26,6 @@ import static org.antlr.parser.antlr3.ANTLRv3Lexer.*;
 import org.netbeans.modules.languages.antlr.AntlrTokenId;
 import static org.netbeans.modules.languages.antlr.AntlrTokenId.*;
 import org.netbeans.spi.lexer.antlr4.AbstractAntlrLexerBridge;
-import org.netbeans.spi.lexer.antlr4.LexerInputCharStream;
 
 /**
  *
@@ -36,7 +35,7 @@ public final class Antlr3Lexer extends 
AbstractAntlrLexerBridge<ANTLRv3Lexer, An
 
 
     public Antlr3Lexer(LexerRestartInfo<AntlrTokenId> info) {
-        super(info, new ANTLRv3Lexer(new LexerInputCharStream(info.input())));
+        super(info, ANTLRv3Lexer::new);
     }
 
     @Override
diff --git 
a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v4/Antlr4Lexer.java
 
b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v4/Antlr4Lexer.java
index e366210d4a..0dabcb6a71 100644
--- 
a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v4/Antlr4Lexer.java
+++ 
b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v4/Antlr4Lexer.java
@@ -26,7 +26,6 @@ import static org.antlr.parser.antlr4.ANTLRv4Lexer.*;
 import org.netbeans.modules.languages.antlr.AntlrTokenId;
 import static org.netbeans.modules.languages.antlr.AntlrTokenId.*;
 import org.netbeans.spi.lexer.antlr4.AbstractAntlrLexerBridge;
-import org.netbeans.spi.lexer.antlr4.LexerInputCharStream;
 
 /**
  *
@@ -36,7 +35,7 @@ public final class Antlr4Lexer extends 
AbstractAntlrLexerBridge<ANTLRv4Lexer, An
 
 
     public Antlr4Lexer(LexerRestartInfo<AntlrTokenId> info) {
-        super(info, new ANTLRv4Lexer(new LexerInputCharStream(info.input())));
+        super(info, ANTLRv4Lexer::new);
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to