List of usage examples for org.antlr.v4.runtime Token getText
String getText();
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); }