public void updateAST( Stack semanticStack, Stack nameStack ){
    if( Compiler.extendedDebug )
      System.out.println( "Pushing Definition" );

    name = (String) nameStack.pop();
    while( !semanticStack.isEmpty() ){
      SemanticAction sa = (SemanticAction) semanticStack.pop();
      if( sa instanceof MakeDefinition ){
        // Replace the Def node so we don't nest them but it is still on the stack
        semanticStack.push( sa );
        break;
      }
      
      branches.add( sa );
    }
    
    semanticStack.push( this );
  }