/** * Copyright (C) 2015 drrb * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package com.github.drrb.rust.netbeans.parsing; import org.netbeans.api.lexer.Language; import org.netbeans.api.lexer.TokenId; public enum RustTokenId implements TokenId { EQ(TokenCategory.OPERATOR), LT(TokenCategory.OPERATOR), LE(TokenCategory.OPERATOR), EQ_EQ(TokenCategory.OPERATOR), NE(TokenCategory.OPERATOR), GE(TokenCategory.OPERATOR), GT(TokenCategory.OPERATOR), AND_AND(TokenCategory.OPERATOR), OR_OR(TokenCategory.OPERATOR), NOT(TokenCategory.OPERATOR), TILDE(TokenCategory.OPERATOR), AT(TokenCategory.OPERATOR), DOT(TokenCategory.OPERATOR), //TODO: what is this? DOT_DOT(TokenCategory.OPERATOR), //TODO: what is this? DOT_DOT_DOT(TokenCategory.OPERATOR), //TODO: what is this? COMMA(TokenCategory.SEPARATOR), SEMI(TokenCategory.SEPARATOR), COLON(TokenCategory.SEPARATOR), MOD_SEP(TokenCategory.SEPARATOR), R_ARROW(TokenCategory.SEPARATOR), L_ARROW(TokenCategory.SEPARATOR), FAT_ARROW(TokenCategory.SEPARATOR), POUND(TokenCategory.SEPARATOR), DOLLAR(TokenCategory.OPERATOR), QUESTION(TokenCategory.OPERATOR), IDENT(TokenCategory.IDENTIFIER), UNDERSCORE(TokenCategory.IDENTIFIER), LIFETIME(TokenCategory.IDENTIFIER), INTERPOLATED(TokenCategory.IDENTIFIER), //TODO: what is this? DOC_COMMENT(TokenCategory.COMMENT), MATCH_NT(TokenCategory.IDENTIFIER), //TODO: what is this? SUBST_NT(TokenCategory.IDENTIFIER), //TODO: what is this? SPECIAL_VAR_NT(TokenCategory.IDENTIFIER), //TODO: what is this? WHITESPACE(TokenCategory.WHITESPACE), COMMENT(TokenCategory.COMMENT), SHEBANG(TokenCategory.COMMENT), EOF(TokenCategory.WHITESPACE), PLUS(TokenCategory.OPERATOR), MINUS(TokenCategory.OPERATOR), STAR(TokenCategory.OPERATOR), SLASH(TokenCategory.OPERATOR), PERCENT(TokenCategory.OPERATOR), CARET(TokenCategory.OPERATOR), AND(TokenCategory.OPERATOR), OR(TokenCategory.OPERATOR), SHL(TokenCategory.OPERATOR), SHR(TokenCategory.OPERATOR), OPEN_PAREN(TokenCategory.SEPARATOR), OPEN_BRACKET(TokenCategory.SEPARATOR), OPEN_BRACE(TokenCategory.SEPARATOR), CLOSE_PAREN(TokenCategory.SEPARATOR), CLOSE_BRACKET(TokenCategory.SEPARATOR), CLOSE_BRACE(TokenCategory.SEPARATOR), BYTE_LITERAL(TokenCategory.LITERAL), CHAR_LITERAL(TokenCategory.CHARACTER), INTEGER_LITERAL(TokenCategory.NUMBER), FLOAT_LITERAL(TokenCategory.NUMBER), STR_LITERAL(TokenCategory.STRING), STR_RAW_LITERAL(TokenCategory.STRING), BINARY_LITERAL(TokenCategory.NUMBER), BINARY_RAW_LITERAL(TokenCategory.NUMBER), AS(TokenCategory.KEYWORD), BREAK(TokenCategory.KEYWORD), CRATE(TokenCategory.KEYWORD), ELSE(TokenCategory.KEYWORD), ENUM(TokenCategory.KEYWORD), EXTERN(TokenCategory.KEYWORD), FALSE(TokenCategory.KEYWORD), FN(TokenCategory.KEYWORD), FOR(TokenCategory.KEYWORD), IF(TokenCategory.KEYWORD), IMPL(TokenCategory.KEYWORD), IN(TokenCategory.KEYWORD), LET(TokenCategory.KEYWORD), LOOP(TokenCategory.KEYWORD), MATCH(TokenCategory.KEYWORD), MOD(TokenCategory.KEYWORD), MOVE(TokenCategory.KEYWORD), MUT(TokenCategory.KEYWORD), PUB(TokenCategory.KEYWORD), REF(TokenCategory.KEYWORD), RETURN(TokenCategory.KEYWORD), STATIC(TokenCategory.KEYWORD), SELF(TokenCategory.KEYWORD), STRUCT(TokenCategory.KEYWORD), SUPER(TokenCategory.KEYWORD), TRUE(TokenCategory.KEYWORD), TRAIT(TokenCategory.KEYWORD), TYPE(TokenCategory.KEYWORD), UNSAFE(TokenCategory.KEYWORD), USE(TokenCategory.KEYWORD), VIRTUAL(TokenCategory.KEYWORD), WHILE(TokenCategory.KEYWORD), CONTINUE(TokenCategory.KEYWORD), PROC(TokenCategory.KEYWORD), BOX(TokenCategory.KEYWORD), CONST(TokenCategory.KEYWORD), WHERE(TokenCategory.KEYWORD), GARBAGE(TokenCategory.COMMENT); private static final Language<RustTokenId> LANGUAGE = new RustLanguageHierarchy().language(); public static Language<RustTokenId> language() { return LANGUAGE; } private final TokenCategory primaryCategory; private RustTokenId(TokenCategory primaryCategory) { this.primaryCategory = primaryCategory; } @Override public String primaryCategory() { return primaryCategory.getName(); } }