lkishalmi commented on code in PR #6127:
URL: https://github.com/apache/netbeans/pull/6127#discussion_r1245633031


##########
ide/languages.hcl/src/org/netbeans/modules/languages/hcl/BasicHCLLexer.java:
##########
@@ -30,93 +31,59 @@
  */
 public final class BasicHCLLexer extends AbstractHCLLexer {
 
+    // At the moment HCLLexer.HEREDOC_END is the last token id;
+    private static final HCLTokenId[] convert = new 
HCLTokenId[HCLLexer.HEREDOC_END + 1 ];
+
+    static {
+        Vocabulary v = HCLLexer.VOCABULARY;
+        for (int i = 1; i < convert.length; i++) {
+            String n = v.getSymbolicName(i);
+            try {
+                convert[i] = HCLTokenId.valueOf(n);
+            } catch (IllegalArgumentException ex) {
+                // do nothing leave convert[i] null
+            }
+        }
+    }
+
     public BasicHCLLexer(LexerRestartInfo<HCLTokenId> info) {
         super(info, HCLLexer::new);
     }
 
     @Override
     protected Token<HCLTokenId> mapToken(org.antlr.v4.runtime.Token 
antlrToken) {
-        switch (antlrToken.getType()) {
-            case LINE_COMMENT:
-            case BLOCK_COMMENT:
-                return token(COMMENT);
-
-            case BOOL_LIT:
-                return token(BOOLEAN);
-
-            case LEGACY_INDEX:
-            case NUMERIC_LIT:
-                return token(NUMBER);
-
-            case HCLLexer.IDENTIFIER:
-                return token(HCLTokenId.IDENTIFIER);
-
-            case FOR:
-            case IF:
-            case IN:
-            case NULL:
-                return token(KEYWORD);
-
-            case LBRACE:
-            case RBRACE:
-            case LBRACK:
-            case RBRACK:
-                return token(GROUP_SEPARATOR);
-                
-            case LPAREN:
-            case RPAREN:
-            case COLON:
-            case COMMA:
-            case DOT:
-            case EQUAL:
-            case INTERPOLATION_START:
-            case INTERPOLATION_END:
-            case RARROW:
-            case TEMPLATE_START:
-            case TEMPLATE_END:
-                return token(SEPARATOR);
-
-            case AND:
-            case ELLIPSIS:
-            case EQUALS:
-            case GT:
-            case GTE:
-            case LT:
-            case LTE:
-            case MINUS:
-            case NOT:
-            case NOT_EQUALS:
-            case OR:
-            case PERCENT:
-            case PLUS:
-            case QUESTION:
-            case SLASH:
-            case STAR:
-                return token(OPERATOR);
-
-            case QUOTE:
-                return token(STRING);
-            case HEREDOC_START:
-            case HEREDOC_END:
-                return token(HEREDOC_GUARD);
-            case HEREDOC_CONTENT:
-                return groupToken(HEREDOC, HEREDOC_CONTENT);
-
-            case STRING_CONTENT:
-                return groupToken(STRING, STRING_CONTENT);
-
-            case INTERPOLATION_CONTENT:
-                return groupToken(INTERPOLATION, INTERPOLATION_CONTENT);
-
-            case TEMPLATE_CONTENT:
-                return groupToken(INTERPOLATION, TEMPLATE_CONTENT);
-            case WS:
-            case NL:
-                return token(WHITESPACE);
-
-            default:
-                return token(ERROR);
+        HCLTokenId id = fromAntlrToken(antlrToken.getType());
+        if (id == null) {
+            switch (antlrToken.getType()) {
+                case HEREDOC_CONTENT:
+                    return groupToken(HEREDOC, HEREDOC_CONTENT);
+                case STRING_CONTENT:
+                    return groupToken(STRING, STRING_CONTENT);
+
+                case INTERPOLATION_CONTENT:
+                    return groupToken(INTERPOLATION, INTERPOLATION_CONTENT);
+
+                case TEMPLATE_CONTENT:
+                    return groupToken(INTERPOLATION, TEMPLATE_CONTENT);
+
+                default:
+                    return token(ERROR);
+            }
+        } else {
+            return token(id);
         }
     }
+/*
+    @Override
+    protected String flyweightText(HCLTokenId id) {
+        return id.getFixedText();
+    }
+*/

Review Comment:
   Yes. Need to rebase this one on master to get the Flyweight support form 
there. Then I can add this back.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

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

Reply via email to