Example usage for org.antlr.v4.runtime Token getText

List of usage examples for org.antlr.v4.runtime Token getText

Introduction

In this page you can find the example usage for org.antlr.v4.runtime Token getText.

Prototype

String getText();

Source Link

Document

Get the text of the token.

Usage

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());
                    }
                }
            }
        }
    }
}