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) {