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.nextbreakpoint.nextfractal.mandelbrot.grammar.ASTFractal.java

License:Open Source License

public CompilerVariable getColorVariable(String name, Token location) {
    CompilerVariable var = colorVars.peek().getVariable(name);
    if (var == null) {
        var = orbitVars.peek().getVariable(name);
        if (var == null) {
            throw new ASTException("Variable not defined: " + location.getText(), location);
        }//from   w  w w.  j  a v a2  s .co m
    }
    return var;
}

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

License:Open Source License

public void startFunction(Token nameToken, int bodyStartPos) {
    assert functionStartPos == 0;
    assert functionName == null;
    assert functionBodyStartPos == 0;
    assert parameterCount == 0;
    assert frameDescriptor == null;
    assert lexicalScope == null;

    functionStartPos = nameToken.getStartIndex();
    functionName = nameToken.getText();
    functionBodyStartPos = bodyStartPos;
    frameDescriptor = new FrameDescriptor();
    methodNodes = new ArrayList<>();
    startBlock();/* w  w w . ja v  a  2s.c  o m*/
}

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

License:Open Source License

public LlvmStatementNode createWhile(Token whileToken, LlvmExpressionNode conditionNode,
        Map<String, LlvmStatementNode> bodyNode, Token nameToken) {
    final int start = whileToken.getStartIndex();
    List<LlvmStatementNode> whileList = new ArrayList();
    if (bodyNode.values() instanceof List) {
        whileList = (List) bodyNode.values();
    } else {/*from  w  ww. j  a v a 2 s.c om*/
        whileList = new ArrayList(bodyNode.values());
    }
    List<LlvmStatementNode> whileBody = new ArrayList();
    int length = 0;
    while (length < whileList.size()) {
        if (whileList.get(length) != null)
            whileBody.add(whileList.get(length));
        length++;
    }
    final int end = whileBody.get(whileBody.size() - 1).getSourceSection().getCharEndIndex();
    whileBody.add(lexicalScope.blockMap.get(nameToken.getText()));
    LlvmStatementNode whileReturnNode = this.createBasicBlockNode(nameToken, whileBody, start, end - start);
    final LlvmWhileNode whileNode = new LlvmWhileNode(
            source.createSection(whileToken.getText(), start, end - start), conditionNode, whileReturnNode);
    return whileNode;
    // final int start = whileToken.getStartIndex();
    // final int end = bodyNode.getSourceSection().getCharEndIndex();
    // List<LlvmStatementNode> whileBody = new ArrayList();
    // System.out.println(nameToken.getText());
    // whileBody.add(bodyNode);
    // whileBody.add(lexicalScope.blockMap.get(nameToken.getText()));
    //
    // bodyNode = this.createBasicBlockNode(nameToken, whileBody, start, end - start);
    // final LlvmWhileNode whileNode = new LlvmWhileNode(source.createSection(whileToken.getText(),
    // start, end - start), conditionNode, bodyNode);
    // return whileNode;
}

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

License:Open Source License

public LlvmStatementNode createIf(Token ifToken, String str, LlvmExpressionNode conditionNode,
        LlvmStatementNode thenPartNode, LlvmStatementNode elsePartNode) {
    final int start = ifToken.getStartIndex();
    final int end = elsePartNode == null ? thenPartNode.getSourceSection().getCharEndIndex()
            : elsePartNode.getSourceSection().getCharEndIndex();
    final SourceSection src = source.createSection(str, start, end - start);
    final LlvmIfNode ifNode = new LlvmIfNode(source.createSection(ifToken.getText(), start, end - start),
            conditionNode, thenPartNode, elsePartNode);
    return ifNode;
}

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

License:Open Source License

public LlvmStatementNode createReturn(Token t, LlvmExpressionNode valueNode) {
    final int start = t.getStartIndex();
    final int length = valueNode == null ? t.getText().length()
            : valueNode.getSourceSection().getCharEndIndex() - start;
    final LlvmReturnNode returnNode = new LlvmReturnNode(source.createSection(t.getText(), start, length),
            valueNode);/*from  w ww  .  j av a  2  s .  c o m*/
    // final LlvmStatementNode returnNode = null;
    return returnNode;
}

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

License:Open Source License

/**
 * Returns the corresponding subclass of {@link LlvmExpressionNode} for binary expressions.
 * </br>These nodes are currently not instrumented.
 *
 * @param opToken The operator of the binary expression
 * @param leftNode The left node of the expression
 * @param rightNode The right node of the expression
 * @return A subclass of LlvmExpressionNode using the given parameters based on the given
 *         opToken.//  www.j  av  a  2 s.co  m
 */
public LlvmExpressionNode createBinary(Token opToken, LlvmExpressionNode leftNode,
        LlvmExpressionNode rightNode) {
    int start = leftNode.getSourceSection().getCharIndex();
    int length = rightNode.getSourceSection().getCharEndIndex() - start;
    final SourceSection src = source.createSection(opToken.getText(), start, length);
    switch (opToken.getText()) {
    case "add":
    case "fadd":
        return LlvmAddNodeGen.create(src, leftNode, rightNode);
    case "mul":
    case "fmul":
        return LlvmMulNodeGen.create(src, leftNode, rightNode);
    case "udiv":
    case "sdiv":
    case "fdiv":
        return LlvmDivNodeGen.create(src, leftNode, rightNode);
    case "sub":
    case "fsub":
        return LlvmSubNodeGen.create(src, leftNode, rightNode);
    case "urem":
    case "srem":
        return LlvmRemNodeGen.create(src, leftNode, rightNode);
    default:
        throw new RuntimeException("unexpected operation: " + opToken.getText());
    }
}

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

License:Open Source License

public LlvmExpressionNode createArrayCopyBinary(Token opToken, LlvmExpressionNode leftNode,
        LlvmExpressionNode rightNode) {/*from  w ww.  j  a  v a  2  s .c om*/
    int start = leftNode.getSourceSection().getCharIndex();
    int length = leftNode.getSourceSection().getCharEndIndex() + 2 - start;
    final SourceSection src = source.createSection(opToken.getText(), start, length);
    return LlvmArrayPointNodeGen.create(src, leftNode, rightNode);
}

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

License:Open Source License

public LlvmExpressionNode createCompBinary(Token opToken, String cmpType, LlvmExpressionNode leftNode,
        LlvmExpressionNode rightNode) {/* w ww .  j a  va2s .  com*/
    int start = leftNode.getSourceSection().getCharIndex();
    int length = rightNode.getSourceSection().getCharEndIndex() - start;
    final SourceSection src = source.createSection(opToken.getText(), start, length);
    return LlvmCompNodeGen.create(src, cmpType, leftNode, rightNode);
}

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

License:Open Source License

/**
 * Returns an {@link LlvmInvokeNode} for the given parameters.
 *
 * @param functionNode The function being called
 * @param parameterNodes The parameters of the function call
 * @param finalToken A token used to determine the end of the sourceSelection for this call
 * @return An LlvmInvokeNode for the given parameters.
 *///from w  ww  . jav  a 2  s  .  co m
public LlvmExpressionNode createCall(LlvmExpressionNode functionNode, List<LlvmExpressionNode> parameterNodes,
        Token finalToken) {
    final int startPos = functionNode.getSourceSection().getCharIndex();
    final int endPos = finalToken.getStartIndex() + finalToken.getText().length();
    final SourceSection src = source.createSection(functionNode.getSourceSection().getIdentifier(), startPos,
            endPos - startPos);
    return LlvmInvokeNode.create(src, functionNode,
            parameterNodes.toArray(new LlvmExpressionNode[parameterNodes.size()]));
}

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

License:Open Source License

/**
 * Returns an {@link LlvmWriteLocalVariableNode} for the given parameters.
 *
 * @param nameToken The name of the variable being assigned
 * @param valueNode The value to be assigned
 * @return An LlvmExpressionNode for the given parameters.
 *///  ww  w .ja  v  a  2s .co  m
public LlvmExpressionNode createAssignment(Token nameToken, LlvmExpressionNode valueNode) {
    FrameSlot frameLlvmot = frameDescriptor.findOrAddFrameSlot(nameToken.getText());
    lexicalScope.locals.put(nameToken.getText(), frameLlvmot);
    final int start = nameToken.getStartIndex();
    final int length = valueNode.getSourceSection().getCharEndIndex() - start;
    return LlvmWriteLocalVariableNodeGen.create(source.createSection("=", start, length), valueNode,
            frameLlvmot);
}