|  | @@ -4,6 +4,10 @@
 | 
	
		
			
				|  |  |  	function newNode(nodeClass) {
 | 
	
		
			
				|  |  |  		return nodeClass._new()._location_(location())._source_(text());
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	function newSequenceNode(nodeClass, temps, statements) {
 | 
	
		
			
				|  |  | +		return newNode(nodeClass)._temps_(temps || [])._dagChildren_(statements || []);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  start = method
 | 
	
	
		
			
				|  | @@ -178,20 +182,10 @@ wsStatements =
 | 
	
		
			
				|  |  |  	} /
 | 
	
		
			
				|  |  |  	expressions:wsExpressions? {return expressions || [];}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -wsSequenceWs = aPragmas:wsPragmas? ws temps:temps? zPragmas:wsPragmas? statements:wsStatements? maybeDotsWs {
 | 
	
		
			
				|  |  | -	return [newNode($globals.SequenceNode)
 | 
	
		
			
				|  |  | -		._temps_(temps || [])
 | 
	
		
			
				|  |  | -		._dagChildren_(statements || []), (aPragmas || []).concat(zPragmas || [])];
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -wsBlockSequenceWs = ws temps:temps? statements:wsStatements? maybeDotsWs {
 | 
	
		
			
				|  |  | -	return newNode($globals.BlockSequenceNode)
 | 
	
		
			
				|  |  | -		._temps_(temps || [])
 | 
	
		
			
				|  |  | -		._dagChildren_(statements || []);
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -block = '[' params:wsBlockParamList? sequence:wsBlockSequenceWs ']' {
 | 
	
		
			
				|  |  | -	return newNode($globals.BlockNode)._parameters_(params || [])._dagChildren_([sequence]);
 | 
	
		
			
				|  |  | +block = '[' params:wsBlockParamList? ws temps:temps? statements:wsStatements? maybeDotsWs ']' {
 | 
	
		
			
				|  |  | +	return newNode($globals.BlockNode)
 | 
	
		
			
				|  |  | +		._parameters_(params || [])
 | 
	
		
			
				|  |  | +		._dagChildren_([newSequenceNode($globals.BlockSequenceNode, temps, statements)]);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  operand = reference / literal / subexpression
 | 
	
	
		
			
				|  | @@ -247,12 +241,12 @@ cascade =
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  method =
 | 
	
		
			
				|  |  |  	pattern:(wsKeywordPattern / wsBinaryPattern / wsUnaryPattern)
 | 
	
		
			
				|  |  | -	sequence:wsSequenceWs {
 | 
	
		
			
				|  |  | +	aPragmas:wsPragmas? ws temps:temps? zPragmas:wsPragmas? statements:wsStatements? maybeDotsWs {
 | 
	
		
			
				|  |  |  		return newNode($globals.MethodNode)
 | 
	
		
			
				|  |  |  			._selector_(pattern[0])
 | 
	
		
			
				|  |  |  			._arguments_(pattern[1])
 | 
	
		
			
				|  |  | -			._pragmas_(sequence[1])
 | 
	
		
			
				|  |  | -			._dagChildren_([sequence[0]]);
 | 
	
		
			
				|  |  | +			._pragmas_((aPragmas || []).concat(zPragmas || []))
 | 
	
		
			
				|  |  | +			._dagChildren_([newSequenceNode($globals.SequenceNode, temps, statements)]);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  associationSend =
 |