1 19 20 package org.netbeans.lib.lexer.test.simple; 21 22 import java.util.Arrays ; 23 import java.util.Collection ; 24 import java.util.HashMap ; 25 import java.util.Map ; 26 import org.netbeans.api.lexer.Language; 27 import org.netbeans.api.lexer.LanguagePath; 28 import org.netbeans.api.lexer.TokenId; 29 import org.netbeans.api.lexer.InputAttributes; 30 import org.netbeans.api.lexer.Token; 31 import org.netbeans.spi.lexer.LanguageEmbedding; 32 import org.netbeans.spi.lexer.LanguageHierarchy; 33 import org.netbeans.spi.lexer.Lexer; 34 import org.netbeans.spi.lexer.LexerRestartInfo; 35 36 43 public final class GenLanguage { 44 45 public static final int IDENTIFIER = 0; 46 public static final int PLUS = 1; 47 public static final int MINUS = 2; 48 public static final int PLUS_MINUS_PLUS = 3; public static final int SLASH = 4; 50 public static final int STAR = 7; 52 public static final int ML_COMMENT = 8; 53 public static final int WHITESPACE = 9; 54 public static final int SL_COMMENT = 11; 56 public static final int ERROR = 12; 57 public static final int PUBLIC = 13; 58 public static final int PRIVATE = 14; 59 public static final int STATIC = 15; 60 61 public static final TokenId IDENTIFIER_ID = LanguageHierarchy.newId("IDENTIFIER", IDENTIFIER); 62 public static final TokenId PLUS_ID = LanguageHierarchy.newId("PLUS", PLUS, "operator"); 63 public static final TokenId MINUS_ID = LanguageHierarchy.newId("MINUS", MINUS, "operator"); 64 public static final TokenId PLUS_MINUS_PLUS_ID = LanguageHierarchy.newId("PLUS_MINUS_PLUS", PLUS_MINUS_PLUS); 65 public static final TokenId SLASH_ID = LanguageHierarchy.newId("SLASH", SLASH, "operator"); 66 public static final TokenId STAR_ID = LanguageHierarchy.newId("STAR", STAR, "operator"); 67 public static final TokenId ML_COMMENT_ID = LanguageHierarchy.newId("ML_COMMENT", ML_COMMENT, "comment"); 68 public static final TokenId WHITESPACE_ID = LanguageHierarchy.newId("WHITESPACE", WHITESPACE); 69 public static final TokenId SL_COMMENT_ID = LanguageHierarchy.newId("SL_COMMENT", SL_COMMENT, "comment"); 70 public static final TokenId ERROR_ID = LanguageHierarchy.newId("ERROR", ERROR, "error"); 71 public static final TokenId PUBLIC_ID = LanguageHierarchy.newId("PUBLIC", PUBLIC, "keyword"); 72 public static final TokenId PRIVATE_ID = LanguageHierarchy.newId("PRIVATE", PRIVATE, "keyword"); 73 public static final TokenId STATIC_ID = LanguageHierarchy.newId("STATIC", STATIC, "keyword"); 74 75 private static final Language<TokenId> language = new LanguageHierarchy<TokenId>() { 76 @Override 77 protected Collection <TokenId> createTokenIds() { 78 return Arrays.asList(new TokenId[] { 79 IDENTIFIER_ID, 80 MINUS_ID, PLUS_ID, SLASH_ID, STAR_ID, SL_COMMENT_ID, PLUS_MINUS_PLUS_ID, ML_COMMENT_ID, 82 WHITESPACE_ID, ERROR_ID, 83 PUBLIC_ID, PRIVATE_ID, STATIC_ID, 84 }); 85 } 86 87 @Override 88 protected Map <String ,Collection <TokenId>> createTokenCategories() { 89 Map <String ,Collection <TokenId>> cats = new HashMap <String ,Collection <TokenId>>(); 90 cats.put("operator", Arrays.asList(new TokenId[] { PLUS_MINUS_PLUS_ID })); 92 cats.put("whitespace", Arrays.asList(new TokenId[] { WHITESPACE_ID })); 94 cats.put("test-category", Arrays.asList(new TokenId[] { PLUS_ID, MINUS_ID, IDENTIFIER_ID })); 95 return cats; 96 } 97 98 @Override 99 protected Lexer<TokenId> createLexer(LexerRestartInfo<TokenId> info) { 100 return null; 101 } 102 103 @Override 104 protected String mimeType() { 105 return "text/x-gen"; 106 } 107 }.language(); 108 109 public static Language<TokenId> language() { 110 return language; 111 } 112 113 private GenLanguage() { 114 } 116 117 } 118 | Popular Tags |