本文整理汇总了Java中com.sun.tools.javac.parser.Tokens.TokenKind类的典型用法代码示例。如果您正苦于以下问题:Java TokenKind类的具体用法?Java TokenKind怎么用?Java TokenKind使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TokenKind类属于com.sun.tools.javac.parser.Tokens包,在下文中一共展示了TokenKind类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: parseParams
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
List<JCTree> parseParams(String s) throws ParseException {
if (s.trim().isEmpty())
return List.nil();
JavacParser p = fac.newParser(s.replace("...", "[]"), false, false, false);
ListBuffer<JCTree> paramTypes = new ListBuffer<JCTree>();
paramTypes.add(p.parseType());
if (p.token().kind == TokenKind.IDENTIFIER)
p.nextToken();
while (p.token().kind == TokenKind.COMMA) {
p.nextToken();
paramTypes.add(p.parseType());
if (p.token().kind == TokenKind.IDENTIFIER)
p.nextToken();
}
if (p.token().kind != TokenKind.EOF)
throw new ParseException("dc.ref.unexpected.input");
return paramTypes.toList();
}
示例2: parseParams
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
private List<JCTree> parseParams(String s) throws ParseException {
if (s.trim().isEmpty())
return List.nil();
JavacParser p = fac.newParser(s.replace("...", "[]"), false, false, false);
ListBuffer<JCTree> paramTypes = new ListBuffer<>();
paramTypes.add(p.parseType());
if (p.token().kind == TokenKind.IDENTIFIER)
p.nextToken();
while (p.token().kind == TokenKind.COMMA) {
p.nextToken();
paramTypes.add(p.parseType());
if (p.token().kind == TokenKind.IDENTIFIER)
p.nextToken();
}
if (p.token().kind != TokenKind.EOF)
throw new ParseException("dc.ref.unexpected.input");
return paramTypes.toList();
}
示例3: parseParams
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
List<JCTree> parseParams(String s) throws ParseException {
if (s.trim().isEmpty())
return List.nil();
JavacParser p = fac.newParser(s.replace("...", "[]"), false, false, false);
ListBuffer<JCTree> paramTypes = new ListBuffer<>();
paramTypes.add(p.parseType());
if (p.token().kind == TokenKind.IDENTIFIER)
p.nextToken();
while (p.token().kind == TokenKind.COMMA) {
p.nextToken();
paramTypes.add(p.parseType());
if (p.token().kind == TokenKind.IDENTIFIER)
p.nextToken();
}
if (p.token().kind != TokenKind.EOF)
throw new ParseException("dc.ref.unexpected.input");
return paramTypes.toList();
}
示例4: run
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
void run() throws Exception {
Context ctx = new Context();
Log log = Log.instance(ctx);
String input = "0bL 0b20L 0xL ";
log.useSource(new SimpleJavaFileObject(new URI("mem://Test.java"), JavaFileObject.Kind.SOURCE) {
@Override
public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
return input;
}
});
char[] inputArr = input.toCharArray();
JavaTokenizer tokenizer = new JavaTokenizer(ScannerFactory.instance(ctx), inputArr, inputArr.length) {
};
assertKind(input, tokenizer, TokenKind.LONGLITERAL, "0bL");
assertKind(input, tokenizer, TokenKind.LONGLITERAL, "0b20L");
assertKind(input, tokenizer, TokenKind.LONGLITERAL, "0xL");
}
示例5: renameMethod
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
/** Be warned, only changes method name at the declaration. */
public static SuggestedFix renameMethod(
MethodTree tree, final String replacement, VisitorState state) {
// Search tokens from beginning of method tree to beginning of method body.
int basePos = ((JCTree) tree).getStartPosition();
int endPos =
tree.getBody() != null
? ((JCTree) tree.getBody()).getStartPosition()
: state.getEndPosition(tree);
List<ErrorProneToken> methodTokens =
ErrorProneTokens.getTokens(
state.getSourceCode().subSequence(basePos, endPos).toString(), state.context);
for (ErrorProneToken token : methodTokens) {
if (token.kind() == TokenKind.IDENTIFIER && token.name().equals(tree.getName())) {
int nameStartPosition = basePos + token.pos();
int nameEndPosition = basePos + token.endPos();
return SuggestedFix.builder()
.replace(nameStartPosition, nameEndPosition, replacement)
.build();
}
}
// Method name not found.
throw new AssertionError();
}
示例6: parseExpression
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
private static JCExpression parseExpression(Context context, CharSequence expr, boolean onlyFullInput, SourcePositions[] pos, final List<Diagnostic<? extends JavaFileObject>> errors) {
if (expr == null || (pos != null && pos.length != 1))
throw new IllegalArgumentException();
JavaCompiler compiler = JavaCompiler.instance(context);
JavaFileObject prev = compiler.log.useSource(new DummyJFO());
Log.DiagnosticHandler discardHandler = new Log.DiscardDiagnosticHandler(compiler.log) {
@Override
public void report(JCDiagnostic diag) {
errors.add(diag);
}
};
try {
CharBuffer buf = CharBuffer.wrap((expr+"\u0000").toCharArray(), 0, expr.length());
ParserFactory factory = ParserFactory.instance(context);
ScannerFactory scannerFactory = ScannerFactory.instance(context);
Names names = Names.instance(context);
Scanner scanner = scannerFactory.newScanner(buf, false);
Parser parser = new JackpotJavacParser(context, (NBParserFactory) factory, scanner, false, false, CancelService.instance(context), names);
if (parser instanceof JavacParser) {
if (pos != null)
pos[0] = new ParserSourcePositions((JavacParser)parser);
JCExpression result = parser.parseExpression();
if (!onlyFullInput || scanner.token().kind == TokenKind.EOF) {
return result;
}
}
return null;
} finally {
compiler.log.useSource(prev);
compiler.log.popDiagnosticHandler(discardHandler);
}
}
示例7: parseType
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
JCTree parseType(String s) throws ParseException {
JavacParser p = fac.newParser(s, false, false, false);
JCTree tree = p.parseType();
if (p.token().kind != TokenKind.EOF)
throw new ParseException("dc.ref.unexpected.input");
return tree;
}
示例8: parseMember
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
Name parseMember(String s) throws ParseException {
JavacParser p = fac.newParser(s, false, false, false);
Name name = p.ident();
if (p.token().kind != TokenKind.EOF)
throw new ParseException("dc.ref.unexpected.input");
return name;
}
示例9: parseType
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
private JCTree parseType(String s) throws ParseException {
JavacParser p = fac.newParser(s, false, false, false);
JCTree tree = p.parseType();
if (p.token().kind != TokenKind.EOF)
throw new ParseException("dc.ref.unexpected.input");
return tree;
}
示例10: parseMember
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
private Name parseMember(String s) throws ParseException {
JavacParser p = fac.newParser(s, false, false, false);
Name name = p.ident();
if (p.token().kind != TokenKind.EOF)
throw new ParseException("dc.ref.unexpected.input");
return name;
}
示例11: tokenKindToTK
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
private static TK tokenKindToTK(TK prev, TokenKind kind) {
TK tk = tokenKindToTKMap.get(kind);
if (tk == null) {
System.err.printf("No corresponding %s for %s: %s\n",
TK.class.getCanonicalName(),
TokenKind.class.getCanonicalName(),
kind);
throw new InternalError("No corresponding TK for TokenKind: " + kind);
}
return tk.mapping != null
? tk.mapping.apply(prev)
: tk;
}
示例12: match
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
private CT match(TK tk, TokenKind open) {
Token tok = advance();
db("match desired-tk=%s, open=%s, seen-tok=%s", tk, open, tok.kind);
if (stack.isEmpty()) {
return new CT(ERROR, tok, "Encountered '" + tok + "' with no opening '" + open + "'");
}
Token p = stack.pop();
if (p.kind != open) {
return new CT(ERROR, tok, "No match for '" + p + "' instead encountered '" + tok + "'");
}
return new CT(tk, tok);
}
示例13: assertKind
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
void assertKind(String input, JavaTokenizer tokenizer, TokenKind kind, String expectedText) {
Token token = tokenizer.readToken();
if (token.kind != kind) {
throw new AssertionError("Unexpected token kind: " + token.kind);
}
String actualText = input.substring(token.pos, token.endPos);
if (!Objects.equals(actualText, expectedText)) {
throw new AssertionError("Unexpected token text: " + actualText);
}
}
示例14: tokenKindToTK
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
private static TK tokenKindToTK(TokenKind kind) {
TK tk = tokenKindToTKMap.get(kind);
if (tk == null) {
System.err.printf("No corresponding %s for %s: %s\n",
TK.class.getCanonicalName(),
TokenKind.class.getCanonicalName(),
kind);
throw new InternalError("No corresponding TK for TokenKind: " + kind);
}
return tk;
}
示例15: getThrowsPosition
import com.sun.tools.javac.parser.Tokens.TokenKind; //导入依赖的package包/类
private static int getThrowsPosition(MethodTree tree, VisitorState state) {
for (ErrorProneToken token : state.getTokensForNode(tree)) {
if (token.kind() == Tokens.TokenKind.THROWS) {
return ((JCTree) tree).getStartPosition() + token.pos();
}
}
throw new AssertionError();
}