help with the code

This is a discussion on help with the code within the C Programming forums, part of the General Programming Boards category; hi all, i am attaching my code here. it is reading some ascii instructions from the file , (which are ...

  1. #1
    Registered User
    Join Date
    Oct 2002
    Posts
    6

    help with the code

    hi all,
    i am attaching my code here. it is reading some ascii instructions from the file , (which are in the linked list) are once it sees the pattern of
    LOADC #c1 Rx
    LOADC #c2 Ry
    op Rz Rx Ry
    where (the op can be subtract, add or multiply)
    once i get that pattern, i reset the values of first loadc to
    LOADC #C3 rZ (C3 is the result)
    and frees the other LOADC and op.

    Note each instruction is contained within the node. and instruction is the type of pointer, that is pointing to the linked list.

    ok, so my problem is that i cannot seem to free the two nodes and result the values to c3.
    can somone help me with this.
    i am havig hard time with it
    anyother questions. i will clarify it .
    thanks a lot
    fatima

    Code:
    #include <stdio.h>
    #include "CodeGen.h"
    #include "InstrUtils.h"
    
    int
    main() {
    
      Instruction *instr;
    Instruction *temp, *head,*temp2, *temp3;
    
    int x, z, p , s, y, a;
    
    
      instr = ReadInstructionList(stdin);
       temp = instr;
    
      while(temp!=NULL){
    
        if(temp->opcode == LOADC) {
          {            
              x  = temp->field1;
    
              z = temp->field2;
          }   
            
    	 temp2= temp->next;
            
    	 	if(temp2->opcode == LOADC)
            	       
    	  		p = temp2->field1;
                     	s = temp2->field2; 
    		            		
    		   temp3 = temp2->next;
              
    	       
     		  if(temp3->opcode == (ADD||SUB||MUL))
    	
    		    {
                             y = temp3->field1 ;
    			 temp3->field2 = temp->field2;
                              temp3->field3 = temp2->field2;
    			  // if(z == b && s == c)
    			  // t = temp3->field2;
    			  // n = temp3->field3;
    		       
                                                  
    			  if( temp3->opcode == ADD)
    				 
                            {          a = x + p; 
    				 
    				 free(temp3);
    			} 
    
    			  else if (temp3->opcode == SUB)
    				{   if ( x >p ) a  = x - p;
                                            else a = p - x;
    				 
    				 free(temp3);
    				} 
                               else a = x * p; 		    
    				
    				free(temp3);
    			  } 
        
    
    temp->field1 = a;
    temp->field2 = y;
        
    
    free(temp2);
    free(temp3);
    
        }
    
     temp = temp->next;
    
      }
      
          
    PrintInstructionList(stdout, instr);
      
    return 0;
      
     }
    Last edited by kfatima; 10-11-2002 at 12:22 PM.

  2. #2
    Registered User
    Join Date
    Oct 2002
    Posts
    6
    thanks for that,
    but now i cannot seem to reset the pointer so that it would skip the two nodes. and point to the nodes after the two nodes.


    thanks for any kind of hint on that.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Extended ASCII Characters in an RTF Control
    By JustMax in forum C Programming
    Replies: 18
    Last Post: 04-03-2009, 08:20 PM
  2. Enforcing Machine Code Restrictions?
    By SMurf in forum Tech Board
    Replies: 21
    Last Post: 03-30-2009, 07:34 AM
  3. Obfuscated Code Contest
    By Stack Overflow in forum Contests Board
    Replies: 51
    Last Post: 01-21-2005, 03:17 PM
  4. Interface Question
    By smog890 in forum C Programming
    Replies: 11
    Last Post: 06-03-2002, 05:06 PM
  5. Replies: 0
    Last Post: 02-21-2002, 05:05 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21