java关键字汉化

编程入门 行业动态 更新时间:2024-10-25 06:21:12

java关键字<a href=https://www.elefans.com/category/jswz/34/1745478.html style=汉化"/>

java关键字汉化

public class Tokens {

...

/** The names of all tokens.*/

//private Name[] tokenName = new Name[TokenKind.values().length]; private Name[] tokenName = new Name[2 * TokenKind.values().length];

// 添加了中文关键字,长度*2 ...

/* 原代码protected Tokens(Context context) {context.put(tokensKey, this);names = Names.instance(context);for (TokenKind t : TokenKind.values()) {if (t.name != null)enterKeyword(t.name, t);elsetokenName[t.ordinal()] = null;}key = new TokenKind[maxKey+1];for (int i = 0; i <= maxKey; i++) key[i] = TokenKind.IDENTIFIER;for (TokenKind t : TokenKind.values()) {if (t.name != null)key[tokenName[t.ordinal()].getIndex()] = t;}}private void enterKeyword(String s, TokenKind token) {Name n = names.fromString(s);tokenName[token.ordinal()] = n;if (n.getIndex() > maxKey) maxKey = n.getIndex();}*/

protected Tokens(Context context) {

context.put(tokensKey, this);

names = Names.instance(context);

for (TokenKind t : TokenKind.values()) {

if (t.name != null) {

Name n = names.fromString(t.name);

tokenName[2 * t.ordinal()] = n;

if (n.getIndex() > maxKey) maxKey = n.getIndex();

if (t.name_cn != null) {

Name n_cn = names.fromString(t.name_cn);

tokenName[2 * t.ordinal() + 1] = n_cn;

if (n_cn.getIndex() > maxKey) maxKey = n_cn.getIndex();

}

else {

tokenName[2 * t.ordinal() + 1] = null;

}

}

//enterKeyword(t.name, t); //直接不用了,重新写了 else {

tokenName[2 * t.ordinal()] = null;

tokenName[2 * t.ordinal() + 1] = null;

}

}

key = new TokenKind[maxKey+1];

for (int i = 0; i <= maxKey; i++) key[i] = TokenKind.IDENTIFIER;

for (TokenKind t : TokenKind.values()) {

if (t.name != null) {

key[tokenName[2 * t.ordinal()].getIndex()] = t;

if (t.name_cn != null) {

key[tokenName[2 * t.ordinal() + 1].getIndex()] = t;

}

}

}

}

}

...

/*** This enum defines all tokens used by the javac scanner. A token is* optionally associated with a name.*/

//添加中文关键词表,在英文单词,后面加一个中文词 // e.g. ABSTRACT("abstract"), --> ABSTRACT("abstract", "象"), // ASSERT("assert", Tag.NAMED), --> ASSERT("assert", "断", Tag.NAMED), // 具体实现可看结尾的构造函数,比较简单 public enum TokenKind implements Formattable, Filter {

EOF(),

ERROR(),

IDENTIFIER(Tag.NAMED),

ABSTRACT("abstract", "象"),

ASSERT("assert", "断", Tag.NAMED),

BOOLEAN("boolean", "不二", Tag.NAMED),

BREAK("break", "破"),

BYTE("byte", "字", Tag.NAMED),

CASE("case", "例"),

CATCH("catch", "捕"),

CHAR("char", "符", Tag.NAMED),

CLASS("class", "类"),

CONST("const", "常"),

CONTINUE("continue", "继"),

DEFAULT("default", "默"),

DO("do", "运"),

DOUBLE("double", "双", Tag.NAMED),

ELSE("else", "另"),

ENUM("enum", "举", Tag.NAMED),

EXTENDS("extends", "承"),

FINAL("final", "终"),

FINALLY("finally", "末"),

FLOAT("float", "浮", Tag.NAMED),

FOR("for", "为"),

GOTO("goto", "去"),

IF("if", "如"),

IMPLEMENTS("implements", "成"),

IMPORT("import", "进"),

INSTANCEOF("instanceof", "是"),

INT("int", "整", Tag.NAMED),

INTERFACE("interface", "接"),

LONG("long", "长", Tag.NAMED),

NATIVE("native", "原"),

NEW("new", "新"),

PACKAGE("package", "包"),

PRIVATE("private", "私"),

PROTECTED("protected", "保"),

PUBLIC("public", "公"),

RETURN("return", "返"),

SHORT("short", "短", Tag.NAMED),

STATIC("static", "固"),

STRICTFP("strictfp", "严"),

SUPER("super", "超", Tag.NAMED),

SWITCH("switch", "分"),

SYNCHRONIZED("synchronized", "同"),

THIS("this", "此", Tag.NAMED),

THROW("throw", "抛"),

THROWS("throws", "弃"),

TRANSIENT("transient", "暂"),

TRY("try", "试"),

VOID("void", "空", Tag.NAMED),

VOLATILE("volatile", "易"),

WHILE("while", "当"),

INTLITERAL(Tag.NUMERIC),

LONGLITERAL(Tag.NUMERIC),

FLOATLITERAL(Tag.NUMERIC),

DOUBLELITERAL(Tag.NUMERIC),

CHARLITERAL(Tag.NUMERIC),

STRINGLITERAL(Tag.STRING),

TRUE("true", "真", Tag.NAMED),

FALSE("false", "假", Tag.NAMED),

NULL("null", "无", Tag.NAMED),

UNDERSCORE("_", Tag.NAMED),

ARROW("->"),

COLCOL("::"),

LPAREN("("),

RPAREN(")"),

LBRACE("{"),

RBRACE("}"),

LBRACKET("["),

RBRACKET("]"),

SEMI(";"),

COMMA(","),

DOT("."),

ELLIPSIS("..."),

EQ("="),

GT(">"),

LT("

BANG("!"),

TILDE("~"),

QUES("?"),

COLON(":"),

EQEQ("=="),

LTEQ("<="),

GTEQ(">="),

BANGEQ("!="),

AMPAMP("&&"),

BARBAR("||"),

PLUSPLUS("++"),

SUBSUB("--"),

PLUS("+"),

SUB("-"),

STAR("*"),

SLASH("/"),

AMP("&"),

BAR("|"),

CARET("^"),

PERCENT("%"),

LTLT("<

GTGT(">>"),

GTGTGT(">>>"),

PLUSEQ("+="),

SUBEQ("-="),

STAREQ("*="),

SLASHEQ("/="),

AMPEQ("&="),

BAREQ("|="),

CARETEQ("^="),

PERCENTEQ("%="),

LTLTEQ("<<="),

GTGTEQ(">>="),

GTGTGTEQ(">>>="),

MONKEYS_AT("@"),

CUSTOM;

public final String name;

public final String name_cn; //添加的中文关键词的String public final Tag tag;

//因为添加了一个中文关键字的String,初始化得简单修改 TokenKind() {

//this(null, Tag.DEFAULT); //原代码 this(null, null, Tag.DEFAULT); //新代码 }

TokenKind(String name) {

//this(name, Tag.DEFAULT); //原代码 this(name, null, Tag.DEFAULT); //新代码 }

TokenKind(Tag tag) {

//this(null, tag); //原代码 this(null, null, tag); //新代码 }

// 原有的构造函数,改为调用新的构造函数 TokenKind(String name, Tag tag) {

//this.name = name; //this.tag = tag; this(name, null, tag);

}

// 添加新的构造形式 TokenKind(String name, String name_cn) {

//this.name = name; //this.tag = tag; this(name, name_cn, Tag.DEFAULT);

}

// 新添加的构造函数 TokenKind(String name, String name_cn, Tag tag) {

this.name = name;

this.name_cn = name_cn;

this.tag = tag;

}

更多推荐

java关键字汉化

本文发布于:2024-02-25 09:25:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1698516.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:汉化   关键字   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!