Mercurial > hg > graal-compiler
diff graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SLNodeFactory.java @ 16685:888907296590
Backed out changeset: d654cd5ed05a
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Fri, 01 Aug 2014 18:14:43 -0700 |
parents | d654cd5ed05a |
children | 7c8ddb4233cd |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SLNodeFactory.java Fri Aug 01 18:10:48 2014 -0700 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SLNodeFactory.java Fri Aug 01 18:14:43 2014 -0700 @@ -65,9 +65,7 @@ private final Source source; /* State while parsing a function. */ - private int functionStartPos; private String functionName; - private int functionBodyStartPos; // includes parameter list private int parameterCount; private FrameDescriptor frameDescriptor; private List<SLStatementNode> methodNodes; @@ -83,17 +81,13 @@ this.prober = prober; } - public void startFunction(Token nameToken, int bodyStartPos) { - assert functionStartPos == 0; + public void startFunction(Token nameToken) { assert functionName == null; - assert functionBodyStartPos == 0; assert parameterCount == 0; assert frameDescriptor == null; assert lexicalScope == null; - functionStartPos = nameToken.charPos; functionName = nameToken.val; - functionBodyStartPos = bodyStartPos; frameDescriptor = new FrameDescriptor(); methodNodes = new ArrayList<>(); startBlock(); @@ -106,26 +100,23 @@ * specialized. */ final SourceSection src = srcFromToken(nameToken); - final SLReadArgumentNode readArg = new SLReadArgumentNode(src, parameterCount); + SLReadArgumentNode readArg = new SLReadArgumentNode(src, parameterCount); methodNodes.add(createAssignment(nameToken, readArg)); parameterCount++; } public void finishFunction(SLStatementNode bodyNode) { methodNodes.add(bodyNode); - final int bodyEndPos = bodyNode.getSourceSection().getCharEndIndex(); - final SourceSection functionSrc = source.createSection(functionName, functionStartPos, bodyEndPos - functionStartPos); - final SLStatementNode methodBlock = finishBlock(methodNodes, functionBodyStartPos, bodyEndPos - functionBodyStartPos); + // TODO (mlvdv) testing + SLStatementNode methodBlock = finishBlock(methodNodes, -1, -1); assert lexicalScope == null : "Wrong scoping of blocks in parser"; - SLFunctionBodyNode functionBodyNode = new SLFunctionBodyNode(functionSrc, methodBlock); + SLFunctionBodyNode functionBodyNode = new SLFunctionBodyNode(methodBlock); SLRootNode rootNode = new SLRootNode(frameDescriptor, functionBodyNode, functionName); context.getFunctionRegistry().register(functionName, rootNode); - functionStartPos = 0; functionName = null; - functionBodyStartPos = 0; parameterCount = 0; frameDescriptor = null; lexicalScope = null; @@ -135,14 +126,14 @@ lexicalScope = new LexicalScope(lexicalScope); } - public SLStatementNode finishBlock(List<SLStatementNode> bodyNodes, int startPos, int length) { + public SLStatementNode finishBlock(List<SLStatementNode> bodyNodes, int lBracePos, int length) { lexicalScope = lexicalScope.outer; List<SLStatementNode> flattenedNodes = new ArrayList<>(bodyNodes.size()); flattenBlocks(bodyNodes, flattenedNodes); - if (startPos >= 0) { - final SourceSection src = source.createSection("block", startPos, length); + if (lBracePos >= 0) { + final SourceSection src = source.createSection("block", lBracePos, length); return new SLBlockNode(src, flattenedNodes.toArray(new SLStatementNode[flattenedNodes.size()])); } if (flattenedNodes.size() == 0) {