List of usage examples for org.antlr.v4.runtime Token getText
String getText();
From source file:jetbrick.template.parser.AstCodeVisitor.java
License:Open Source License
@Override public AstNode visitDirective_macro(Directive_macroContext ctx) { Token token = ((TerminalNode) ctx.getChild(0)).getSymbol(); Position position = new Position(token.getLine(), token.getCharPositionInLine() + 7); String name = token.getText(); name = StringUtils.substringBetween(name, " ", "(").trim(); parseCtx.enterMacros();/*from ww w.j a va2 s. c o m*/ // ?? accept(ctx.directive_macro_arguments()); // ???( body ??) List<String> argumentNames = parseCtx.getMacroArgumentNames(); AstStatementList block = accept(ctx.block()); AstDirectiveMacro macro = new AstDirectiveMacro(name, argumentNames, parseCtx.getSymbols(), block, position); try { parseCtx.defineMacro(macro); } catch (IllegalStateException e) { throw new SyntaxException(e).set(position); } parseCtx.exitMacros(); return AstDirectiveNoop.INSTANCE; }
From source file:jetbrick.template.parser.AstCodeVisitor.java
License:Open Source License
@Override public AstConstantMapEntry visitHash_map_entry(Hash_map_entryContext ctx) { Token token = ((TerminalNode) ctx.getChild(0)).getSymbol(); String name = token.getText(); switch (token.getType()) { case JetTemplateLexer.STRING_DOUBLE: case JetTemplateLexer.STRING_SINGLE: name = getJavaString(token.getText(), ctx); break;//from w w w.ja v a2s. com } AstExpression valueExpression = accept(ctx.getChild(2)); return new AstConstantMapEntry(name, valueExpression, pos(ctx)); }
From source file:jetbrick.template.parser.AstCodeVisitor.java
License:Open Source License
@Override public AstConstant visitConstant(ConstantContext ctx) { Token token = ((TerminalNode) ctx.getChild(0)).getSymbol(); String text = token.getText(); int length = text.length(); int type = token.getType(); switch (type) { case JetTemplateLexer.STRING_DOUBLE: case JetTemplateLexer.STRING_SINGLE: { String value = getJavaString(text, ctx); return new AstConstant(value, pos(ctx)); }//w w w. ja va 2 s . c om case JetTemplateLexer.INTEGER: case JetTemplateLexer.INTEGER_HEX: case JetTemplateLexer.FLOATING_POINT: { Object value; int radix; char suffix = text.charAt(length - 1); if (type == JetTemplateLexer.INTEGER_HEX) { radix = 16; if (suffix == 'l' || suffix == 'L') { text = text.substring(2, length - 1); } else { text = text.substring(2); suffix = 0; // clear } } else { radix = 10; if (suffix > '9') { text = text.substring(0, length - 1); } } switch (suffix) { case 'l': case 'L': value = Long.valueOf(text, radix); break; case 'f': case 'F': value = Float.valueOf(text); break; case 'd': case 'D': value = Double.valueOf(text); break; default: if (type == JetTemplateLexer.FLOATING_POINT) { value = Double.valueOf(text); } else { value = Integer.valueOf(text, radix); } } return new AstConstant(value, pos(ctx)); } case JetTemplateLexer.TRUE: return new AstConstant(Boolean.TRUE, pos(ctx)); case JetTemplateLexer.FALSE: return new AstConstant(Boolean.FALSE, pos(ctx)); case JetTemplateLexer.NULL: return new AstConstant(null, pos(ctx)); } throw new SyntaxException(Errors.UNREACHABLE_CODE).set(pos(ctx)); }
From source file:jetbrick.template.parser.JetTemplateCodeVisitor.java
License:Open Source License
@Override public Code visitText(TextContext ctx) { Token token = ((TerminalNode) ctx.getChild(0)).getSymbol(); String text = token.getText(); switch (token.getType()) { case JetTemplateParser.TEXT_CDATA: text = text.substring(3, text.length() - 3); break;/* w ww .ja v a2s. c o m*/ case JetTemplateParser.TEXT_ESCAPED_CHAR: text = text.substring(1); break; } String id = getUid("txt"); return new TextCode(id, text); }
From source file:jetbrick.template.parser.JetTemplateCodeVisitor.java
License:Open Source License
@Override public Code visitConstant(ConstantContext ctx) { Token token = ((TerminalNode) ctx.getChild(0)).getSymbol(); String text = token.getText(); switch (token.getType()) { case JetTemplateParser.STRING_DOUBLE: return new SegmentCode(String.class, text); case JetTemplateParser.STRING_SINGLE: text = StringEscapeUtils.asCanonicalJavaString(text); return new SegmentCode(String.class, text); case JetTemplateParser.INTEGER: case JetTemplateParser.INTEGER_HEX: case JetTemplateParser.FLOATING_POINT: Class<?> klass;/*from ww w. j a v a2 s . com*/ if (text.endsWith("l") || text.endsWith("L")) { klass = Long.TYPE; } else if (text.endsWith("f") || text.endsWith("F")) { klass = Float.TYPE; } else if (text.endsWith("d") || text.endsWith("D")) { klass = Double.TYPE; } else if (token.getType() == JetTemplateParser.FLOATING_POINT) { klass = Double.TYPE; // double } else { klass = Integer.TYPE; } return new SegmentCode(klass, text); case JetTemplateParser.KEYWORD_TRUE: return new SegmentCode(Boolean.TYPE, text); case JetTemplateParser.KEYWORD_FALSE: return new SegmentCode(Boolean.TYPE, text); case JetTemplateParser.KEYWORD_NULL: return new SegmentCode(TypedKlass.NULL, text); default: throw reportError("Unexpected token type :" + token.getType(), ctx); } }
From source file:kalang.ide.completion.KalangCompletionHandler.java
private List<CompletionProposal> getCompleteType(KaParser.KaParserResult result, int caret) { CompilationUnit cunit = result.getCompilationUnit(); CommonTokenStream ts = cunit.getTokenStream(); TokenNavigator tokenNav = new TokenNavigator(ts.getTokens().toArray(new Token[0])); tokenNav.move(caret - 1);//from w ww .j a v a2 s. c o m int currentTokenId = tokenNav.getCurrentToken().getTokenIndex(); if (currentTokenId < 1) { return null; } //TODO skip comment channels Token curToken = ts.get(currentTokenId); log("cur token:" + curToken.getText()); Token prevToken = ts.get(currentTokenId - 1); log("prev token:" + prevToken.getText()); int exprStopCaret; int anchorCaret; if (curToken.getText().equals(".")) { exprStopCaret = prevToken.getStopIndex(); anchorCaret = curToken.getStopIndex() + 1; } else if (prevToken.getText().equals(".")) { if (currentTokenId < 2) { return null; } Token prevPrevToken = ts.get(currentTokenId - 2); exprStopCaret = prevPrevToken.getStopIndex(); anchorCaret = prevToken.getStopIndex() + 1; } else { return null; } AstNode astNode = AstNodeHelper.getAstNodeByCaretOffset(result, exprStopCaret); log("expr ast:" + astNode); if (astNode == null) { return null; } Type type; boolean inStatic; if (astNode instanceof ExprNode) { type = ((ExprNode) astNode).getType(); inStatic = false; } else if (astNode instanceof ClassReference) { type = Types.getClassType(((ClassReference) astNode).getReferencedClassNode()); inStatic = true; } else { return null; } CompletionRequest request = new CompletionRequest(); request.anchorOffset = anchorCaret; request.compiler = result.getCompiler(); String source = result.getSnapshot().getText().toString(); request.prefix = source.substring(anchorCaret, caret); log("prefix:" + request.prefix); return TypeCompletion.complete(request, type, inStatic); }
From source file:languageTools.parser.InputStreamPosition.java
License:Open Source License
/** * TODO//w w w . j a v a 2 s.c o m * * @param token * @param index * @param source */ public InputStreamPosition(Token token, int index, File source) { this(token.getLine(), token.getCharPositionInLine(), index, token.getText() == null ? index : index + token.getText().length(), source); }
From source file:net.cpollet.thorium.ThoriumException.java
License:Apache License
protected static String location(Token token) { return token.getLine() + ":" + (token.getCharPositionInLine() + 1) + " (" + token.getText() + ")"; }
From source file:net.maritimecloud.internal.msdl.parser.MsdlComment.java
License:Apache License
static MsdlComment parseComments(List<Token> comments) { if (comments != null && comments.size() == 1) { Token t = comments.get(0); String text = t.getText(); text = text.replace("/**", ""); text = text.replace("/*", "");//from w w w . j ava2s . c o m text = text.replace("*/", ""); text = text.trim(); return new MsdlComment().setComment(text); } return new MsdlComment(); }
From source file:net.openchrom.xxd.processor.supplier.rscripting.ui.editor.RBaseListen.java
License:Open Source License
@Override public void enterE17VariableDeclaration(@NotNull RParser.E17VariableDeclarationContext ctx) { Interval sourceInterval = ctx.getSourceInterval(); int start = sourceInterval.a; Token assign = tokens.get(start + 2); String subExpr = assign.getText(); if (subExpr.equals("function") == false) { Token firstToken = tokens.get(start); int lineStart = firstToken.getStartIndex(); int line = calculateLine(lineStart); if (ctx.getParent().getChild(1) != null) { String op = tokens.get(start + 1).getText(); if (op.equals("<-") || op.equals("<<-") || op.equals("=")) { String name = tokens.get(start).getText(); if (methods.size() == 0) { if (checkVarName(name)) { RScope scope = scopes.peek(); scope.add(name); new REditorOutlineNode(name, line, "variable", editor.baseNode); }/*from w w w . ja v a 2s . c o m*/ } else { if (checkVarName(name)) { RScope scope = scopes.peek(); scope.add(name); new REditorOutlineNode(name, line, "variable", methods.peek()); } } } else if (op.equals("->") || op.equals("->>")) { String name = tokens.get(start + 2).getText(); if (methods.size() == 0) { if (checkVarName(name)) { RScope scope = scopes.peek(); scope.add(name); new REditorOutlineNode(name, line, "variable", editor.baseNode); } } else { if (checkVarName(name)) { RScope scope = scopes.peek(); scope.add(name); new REditorOutlineNode(name, line, "variable", methods.peek()); } } } } } }