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:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

public LlvmExpressionNode createReassignment(Token nameToken, LlvmExpressionNode valueNode) {
    FrameSlot frameLlvmot = frameDescriptor.findOrAddFrameSlot(nameToken.getText());
    lexicalScope.locals.put(nameToken.getText(), frameLlvmot);
    final int start = nameToken.getStartIndex();
    final int length = start - valueNode.getSourceSection().getCharIndex();
    return LlvmWriteLocalArrayVariableNodeGen.create(source.createSection("=", start, length), valueNode,
            frameLlvmot);//w w w .j  a  v a 2 s. co m
}

From source file:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

public LlvmStatementNode createBasicBlockNode(Token nameToken, List<LlvmStatementNode> bodyNodes, int startPos,
        int length) {
    // lexicalScope = lexicalScope.outer;
    FrameSlot frameLlvmot = frameDescriptor.findOrAddFrameSlot(nameToken.getText());
    lexicalScope.locals.put(nameToken.getText(), frameLlvmot);
    List<LlvmStatementNode> flattenedNodes = new ArrayList<>(bodyNodes.size());
    flattenBlocks(bodyNodes, flattenedNodes);
    final SourceSection src = source.createSection(nameToken.getText(), startPos, length);
    LlvmBlockNode blockNode = new LlvmBlockNode(src,
            flattenedNodes.toArray(new LlvmStatementNode[flattenedNodes.size()]));
    // ??// w ww . j  a va2s . c o m
    blockNode.assignSourceSection(src);
    lexicalScope.blockMap.put(nameToken.getText(), blockNode);
    return blockNode;
}

From source file:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

public LlvmStatementNode createCallBasicBlock(LlvmExpressionNode blockNode, Token finalToken) {
    final int startPos = blockNode.getSourceSection().getCharIndex();
    final int endPos = finalToken.getStartIndex() + finalToken.getText().length();
    final SourceSection src = source.createSection(blockNode.getSourceSection().getIdentifier(), startPos,
            endPos - startPos);/*  www  . j  a v  a  2 s  .  c om*/
    // return LlvmInvokeBasicBlockNode.create(src, blockNode);
    return lexicalScope.blockMap.get(blockNode.getSourceSection().getIdentifier());
}

From source file:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

public LlvmExpressionNode createisReadBlock(Token nameToken) {
    FrameSlot frameLlvmot = lexicalScope.locals.get(nameToken.getText());
    final SourceSection src = srcFromToken(nameToken);
    if (frameLlvmot != null) {
        return LlvmReadLocalVariableNodeGen.create(src, frameLlvmot);
    } else {/*  w  w w  .j a  va 2 s  .  co m*/
        // LlvmBlockNode block = new LlvmBlockNode(src, null);
        // block.assignSourceSection(src);
        // frameLlvmot = frameDescriptor.findOrAddFrameSlot(nameToken.getText());
        // lexicalScope.locals.put(nameToken.getText(), frameLlvmot);
        // return new LlvmBasicBlockLiteralNode(src, block);
        return null;
    }
}

From source file:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

public LlvmExpressionNode createRead(Token nameToken) {
    final FrameSlot frameLlvmot = lexicalScope.locals.get(nameToken.getText());
    final SourceSection src = srcFromToken(nameToken);
    if (frameLlvmot != null) {
        /* Read of a local variable. */
        // return new LlvmFunctionLiteralNode(src,
        // context.getFunctionRegistry().lookup(nameToken.val));
        return LlvmReadLocalVariableNodeGen.create(src, frameLlvmot);
    } else {/*ww w.ja  v a 2  s.c  o m*/
        /* Read of a global name. In our language, the only global names are functions. */
        return new LlvmFunctionLiteralNode(src, context.getFunctionRegistry().lookup(nameToken.getText()));
    }
}

From source file:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

public LlvmExpressionNode createStringLiteral(Token literalToken) {
    /* Remove the trailing and ending " */
    String literal = literalToken.getText();
    assert literal.length() >= 2 && literal.startsWith("\"") && literal.endsWith("\"");
    final SourceSection src = srcFromToken(literalToken);
    literal = literal.substring(1, literal.length() - 1);

    return new LlvmStringLiteralNode(src, literal);
}

From source file:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

public LlvmExpressionNode createNumericLiteral(Token literalToken) {
    final SourceSection src = srcFromToken(literalToken);
    try {/*from  ww  w  .  ja v  a 2s  .c o m*/
        /* Try if the literal is small enough to fit into a long value. */
        return new LlvmLongLiteralNode(src, Long.parseLong(literalToken.getText()));
    } catch (NumberFormatException ex) {
        /* Overflow of long value, so fall back to BigInteger. */
        return new LlvmBigIntegerLiteralNode(src, new BigInteger(literalToken.getText()));
    }
}

From source file:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

public LlvmExpressionNode createFloatLiteral(Token literalToken) {
    final SourceSection src = srcFromToken(literalToken);
    try {//ww  w  .j a va2s  . c om
        /* Try if the literal is small enough to fit into a long value. */
        return new LlvmFloatLiteralNode(src, Long.parseLong(literalToken.getText()));
    } catch (NumberFormatException ex) {
        /* Overflow of long value, so fall back to BigInteger. */
        return new LlvmDoubleLiteralNode(src, new Double(literalToken.getText()));
    }
}

From source file:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

public LlvmExpressionNode createArrayLiteral(Token literalToken) {
    final SourceSection src = srcFromToken(literalToken);
    String[] str = literalToken.getText().split("x");
    switch (str[0]) {
    case "i32":
    case "i8":
        return new LlvmIntArrayLiteralNode(src, new int[Integer.parseInt(str[1])]);
    case "i64":
        return new LlvmBigIntArrayLiteralNode(src, new BigInteger[Integer.parseInt(str[1])]);
    }/*ww  w.  j  a va2  s . co m*/
    return null;
}

From source file:com.oracle.truffle.llvm.parser.LlvmNodeFactory.java

License:Open Source License

/**
 * Returns an {@link LlvmReadPropertyNode} for the given parameters.
 *
 * @param receiverNode The receiver of the property access
 * @param nameToken The name of the property being accessed
 * @return An LlvmExpressionNode for the given parameters.
 *//*from  w  w  w  . j  a v  a  2 s.c  om*/
public LlvmExpressionNode createReadProperty(LlvmExpressionNode receiverNode, Token nameToken) {
    final int startPos = receiverNode.getSourceSection().getCharIndex();
    final int endPos = nameToken.getStartIndex() + nameToken.getText().length();
    final SourceSection src = source.createSection(".", startPos, endPos - startPos);
    return LlvmReadPropertyNode.create(src, receiverNode, nameToken.getText());
}