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

las.c File Reference

#include "global.h"
#include "interpret.h"
#include "las.h"
#include "array.h"
#include "object.h"
#include "stralloc.h"
#include "dynamic_buffer.h"
#include "lex.h"
#include "pike_types.h"
#include "constants.h"
#include "mapping.h"
#include "multiset.h"
#include "pike_error.h"
#include "docode.h"
#include "main.h"
#include "pike_memory.h"
#include "operators.h"
#include "callback.h"
#include "pike_macros.h"
#include "peep.h"
#include "builtin_functions.h"
#include "cyclic.h"
#include "block_alloc.h"
#include "opcodes.h"
#include "pikecode.h"
#include "treeopt.h"

Classes

struct  scope_info
struct  used_vars
struct  timer_oflo

Defines

#define MAX_GLOBAL   2048
#define BLOCK_ALLOC_NEXT   u.node.a
#define PRE_INIT_BLOCK(NODE)
#define NODES   (sizeof (((struct node_s_block *) NULL)->x) / sizeof (struct node_s))
#define BLOCK_ALLOC_NEXT   next
#define freeze_node(X)   (X)
#define mkemptynode()   dmalloc_touch(node *, debug_mkemptynode())
#define MAX_VAR   MAX_GLOBAL
#define VAR_BLOCKED   0
#define VAR_UNUSED   1
#define VAR_USED   3
#define depend_p   depend_p3

Functions

char * get_type_name (int)
int car_is_node (node *n)
int cdr_is_node (node *n)
int node_is_leaf (node *n)
INT32 count_args (node *n)
pike_typefind_return_type (node *n)
int check_tailrecursion (void)
void free_all_nodes (void)
void debug_free_node (node *n)
nodedebug_check_node_hash (node *n)
nodedebug_mknode (int token, node *a, node *b)
nodedebug_mkstrnode (struct pike_string *str)
nodedebug_mkintnode (INT_TYPE nr)
nodedebug_mknewintnode (INT_TYPE nr)
nodedebug_mkfloatnode (FLOAT_TYPE foo)
nodedebug_mkprgnode (struct program *p)
nodedebug_mkapplynode (node *func, node *args)
nodedebug_mkefuncallnode (char *function, node *args)
nodedebug_mkopernode (char *oper_id, node *arg1, node *arg2)
nodedebug_mklocalnode (int var, int depth)
nodedebug_mkidentifiernode (int i)
nodedebug_mktrampolinenode (int i, struct compiler_frame *frame)
nodedebug_mkexternalnode (struct program *parent_prog, int i)
nodedebug_mkthisnode (struct program *parent_prog, int inherit_num)
nodedebug_mkcastnode (struct pike_type *type, node *n)
nodedebug_mksoftcastnode (struct pike_type *type, node *n)
void resolv_constant (node *n)
void resolv_class (node *n)
void resolv_program (node *n)
nodeindex_node (node *n, char *node_name, struct pike_string *id)
int node_is_eq (node *a, node *b)
nodedebug_mktypenode (struct pike_type *t)
nodelow_mkconstantsvaluenode (struct svalue *s)
nodedebug_mkconstantsvaluenode (struct svalue *s)
nodedebug_mkliteralsvaluenode (struct svalue *s)
nodedebug_mksvaluenode (struct svalue *s)
nodecopy_node (node *n)
int is_const (node *n)
int node_is_tossable (node *n)
int node_is_true (node *n)
int node_is_false (node *n)
int node_may_overload (node *n, int lfun)
node ** last_cmd (node **a)
node ** my_get_arg (node **a, int n)
node ** is_call_to (node *n, c_fun f)
void print_tree (node *n)
char * find_q (struct scope_info **a, int num, int scope_id)
void free_vars (struct used_vars *a)
void yytype_error (char *msg, struct pike_type *expected_t, struct pike_type *got_t, unsigned int flags)
void fix_type_field (node *n)
void optimize_node (node *n)
ptrdiff_t eval_low (node *n, int print_error)
int dooptcode (struct pike_string *name, node *n, struct pike_type *type, int modifiers)

Variables

int cumulative_parse_error = 0
INT32 last_function_opt_info

Define Documentation

#define BLOCK_ALLOC_NEXT   next
 

#define BLOCK_ALLOC_NEXT   u.node.a
 

#define depend_p   depend_p3
 

#define freeze_node  )     (X)
 

#define MAX_GLOBAL   2048
 

#define MAX_VAR   MAX_GLOBAL
 

 
#define mkemptynode  )     dmalloc_touch(node *, debug_mkemptynode())
 

#define NODES   (sizeof (((struct node_s_block *) NULL)->x) / sizeof (struct node_s))
 

#define PRE_INIT_BLOCK NODE   ) 
 

Value:

do {                                    \
    NODE->token = USHRT_MAX;                                            \
  } while (0)

#define VAR_BLOCKED   0
 

#define VAR_UNUSED   1
 

#define VAR_USED   3
 


Function Documentation

int car_is_node node n  ) 
 

int cdr_is_node node n  ) 
 

int check_tailrecursion void   ) 
 

node* copy_node node n  ) 
 

INT32 count_args node n  ) 
 

node* debug_check_node_hash node n  ) 
 

void debug_free_node node n  ) 
 

node* debug_mkapplynode node func,
node args
 

node* debug_mkcastnode struct pike_type type,
node n
 

node* debug_mkconstantsvaluenode struct svalue s  ) 
 

node* debug_mkefuncallnode char *  function,
node args
 

node* debug_mkexternalnode struct program parent_prog,
int  i
 

node* debug_mkfloatnode FLOAT_TYPE  foo  ) 
 

node* debug_mkidentifiernode int  i  ) 
 

node* debug_mkintnode INT_TYPE  nr  ) 
 

node* debug_mkliteralsvaluenode struct svalue s  ) 
 

node* debug_mklocalnode int  var,
int  depth
 

node* debug_mknewintnode INT_TYPE  nr  ) 
 

node* debug_mknode int  token,
node a,
node b
 

node* debug_mkopernode char *  oper_id,
node arg1,
node arg2
 

node* debug_mkprgnode struct program p  ) 
 

node* debug_mksoftcastnode struct pike_type type,
node n
 

node* debug_mkstrnode struct pike_string str  ) 
 

node* debug_mksvaluenode struct svalue s  ) 
 

node* debug_mkthisnode struct program parent_prog,
int  inherit_num
 

node* debug_mktrampolinenode int  i,
struct compiler_frame frame
 

node* debug_mktypenode struct pike_type t  ) 
 

int dooptcode struct pike_string name,
node n,
struct pike_type type,
int  modifiers
 

ptrdiff_t eval_low node n,
int  print_error
 

char* find_q struct scope_info **  a,
int  num,
int  scope_id
 

struct pike_type* find_return_type node n  ) 
 

void fix_type_field node n  ) 
 

void free_all_nodes void   ) 
 

void free_vars struct used_vars a  ) 
 

char* get_type_name int   ) 
 

node* index_node node n,
char *  node_name,
struct pike_string id
 

node** is_call_to node n,
c_fun  f
 

int is_const node n  ) 
 

node** last_cmd node **  a  ) 
 

node* low_mkconstantsvaluenode struct svalue s  ) 
 

node** my_get_arg node **  a,
int  n
 

int node_is_eq node a,
node b
 

int node_is_false node n  ) 
 

int node_is_leaf node n  ) 
 

int node_is_tossable node n  ) 
 

int node_is_true node n  ) 
 

int node_may_overload node n,
int  lfun
 

void optimize_node node n  ) 
 

void print_tree node n  ) 
 

void resolv_class node n  ) 
 

void resolv_constant node n  ) 
 

void resolv_program node n  ) 
 

void yytype_error char *  msg,
struct pike_type expected_t,
struct pike_type got_t,
unsigned int  flags
 


Variable Documentation

int cumulative_parse_error = 0
 

INT32 last_function_opt_info
 


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