Main Page | Class List | Directories | File List | Class Members | File Members

docode.h File Reference

Go to the source code of this file.

Defines

#define DO_LVALUE   1
#define DO_NOT_COPY   2
#define DO_POP   4
#define DO_INDIRECT   8
#define DO_LVALUE_IF_POSSIBLE   16
#define DO_NOT_COPY_TOPLEVEL   32
#define WANT_LVALUE   (DO_LVALUE | DO_INDIRECT)
#define emit0(X)   insert_opcode0((X),lex.current_line, lex.current_file)
#define emit1(X, Y)   insert_opcode1((X),(Y),lex.current_line, lex.current_file)
#define emit2(X, Y, Z)   insert_opcode2((X),(Y),(Z),lex.current_line, lex.current_file)

Functions

void upd_int (int offset, INT32 tmp)
INT32 read_int (int offset)
void push_address (void)
void push_explicit (INT32 address)
INT32 pop_address (void)
int alloc_label (void)
int do_jump (int token, INT32 lbl)
void do_pop (int x)
int do_docode (node *n, int flags)
void do_cond_jump (node *n, int label, int iftrue, int flags)
INT32 do_code_block (node *n)
INT32 docode (node *n)


Define Documentation

#define DO_INDIRECT   8
 

#define DO_LVALUE   1
 

#define DO_LVALUE_IF_POSSIBLE   16
 

#define DO_NOT_COPY   2
 

#define DO_NOT_COPY_TOPLEVEL   32
 

#define DO_POP   4
 

#define emit0  )     insert_opcode0((X),lex.current_line, lex.current_file)
 

#define emit1 X,
 )     insert_opcode1((X),(Y),lex.current_line, lex.current_file)
 

#define emit2 X,
Y,
 )     insert_opcode2((X),(Y),(Z),lex.current_line, lex.current_file)
 

#define WANT_LVALUE   (DO_LVALUE | DO_INDIRECT)
 


Function Documentation

int alloc_label void   ) 
 

INT32 do_code_block node n  ) 
 

void do_cond_jump node n,
int  label,
int  iftrue,
int  flags
 

int do_docode node n,
int  flags
 

int do_jump int  token,
INT32  lbl
 

void do_pop int  x  ) 
 

INT32 docode node n  ) 
 

INT32 pop_address void   ) 
 

void push_address void   ) 
 

void push_explicit INT32  address  ) 
 

INT32 read_int int  offset  ) 
 

void upd_int int  offset,
INT32  tmp
 


Generated on Fri Jul 22 23:44:28 2005 for Pike by  doxygen 1.3.9.1