Branch: Tag:


1995-10-29 01:15:04 by Fredrik Hübinette (Hubbe) <>


Rev: bin/create_testsuite:
Rev: bin/export.lpc:
Rev: bin/fixdepends.lpc:
Rev: bin/hilfe.lpc:
Rev: bin/rsif:
Rev: bin/uhttpd.lpc:
Rev: doc/README:
Rev: doc/builtin/add_efun:
Rev: doc/builtin/aggregate:
Rev: doc/builtin/aggregate_list:
Rev: doc/builtin/aggregate_mapping:
Rev: doc/builtin/all_efuns:
Rev: doc/builtin/allocate:
Rev: doc/builtin/arrayp:
Rev: doc/builtin/backtrace:
Rev: doc/builtin/call_function:
Rev: doc/builtin/call_out:
Rev: doc/builtin/call_out_info:
Rev: doc/builtin/catch:
Rev: doc/builtin/clone:
Rev: doc/builtin/combine_path:
Rev: doc/builtin/compile_file:
Rev: doc/builtin/compile_string:
Rev: doc/builtin/copy_value:
Rev: doc/builtin/crypt:
Rev: doc/builtin/ctime:
Rev: doc/builtin/destruct:
Rev: doc/builtin/equal:
Rev: doc/builtin/exit:
Rev: doc/builtin/explode:
Rev: doc/builtin/find_call_out:
Rev: doc/builtin/floatp:
Rev: doc/builtin/function_name:
Rev: doc/builtin/function_object:
Rev: doc/builtin/functionp:
Rev: doc/builtin/getpid:
Rev: doc/builtin/hash:
Rev: doc/builtin/implode:
Rev: doc/builtin/indices:
Rev: doc/builtin/intp:
Rev: doc/builtin/kill:
Rev: doc/builtin/listp:
Rev: doc/builtin/lower_case:
Rev: doc/builtin/m_delete:
Rev: doc/builtin/mappingp:
Rev: doc/builtin/mkmapping:
Rev: doc/builtin/next_object:
Rev: doc/builtin/object_program:
Rev: doc/builtin/objectp:
Rev: doc/builtin/programp:
Rev: doc/builtin/query_host_name:
Rev: doc/builtin/query_num_arg:
Rev: doc/builtin/random:
Rev: doc/builtin/remove_call_out:
Rev: doc/builtin/replace:
Rev: doc/builtin/reverse:
Rev: doc/builtin/rusage:
Rev: doc/builtin/search:
Rev: doc/builtin/signal:
Rev: doc/builtin/signame:
Rev: doc/builtin/signum:
Rev: doc/builtin/sizeof:
Rev: doc/builtin/sleep:
Rev: doc/builtin/sscanf:
Rev: doc/builtin/stringp:
Rev: doc/builtin/sum:
Rev: doc/builtin/this_object:
Rev: doc/builtin/throw:
Rev: doc/builtin/time:
Rev: doc/builtin/trace:
Rev: doc/builtin/upper_case:
Rev: doc/builtin/values:
Rev: doc/builtin/zero_type:
Rev: doc/files/cd:
Rev: doc/files/exec:
Rev: doc/files/file:
Rev: doc/files/file_stat:
Rev: doc/files/fork:
Rev: doc/files/get_dir:
Rev: doc/files/getcwd:
Rev: doc/files/mkdir:
Rev: doc/files/mv:
Rev: doc/files/perror:
Rev: doc/files/port:
Rev: doc/files/rm:
Rev: doc/lpc/command_line_options:
Rev: doc/lpc/hilfe.hilfe:
Rev: doc/lpc/how_to_make_modules:
Rev: doc/lpc/preprocessor:
Rev: doc/lpc/reserved:
Rev: doc/manual/i-overview.html:
Rev: doc/manual/index.html:
Rev: doc/manual/t-hello.html:
Rev: doc/manual/ulpc-inside3.gif:
Rev: doc/math/acos:
Rev: doc/math/asin:
Rev: doc/math/atan:
Rev: doc/math/ceil:
Rev: doc/math/cos:
Rev: doc/math/exp:
Rev: doc/math/floor:
Rev: doc/math/log:
Rev: doc/math/pow:
Rev: doc/math/sin:
Rev: doc/math/sqrt:
Rev: doc/math/tan:
Rev: doc/operators/addition:
Rev: doc/regexp/regexp:
Rev: doc/simulated/PI:
Rev: doc/simulated/capitalize:
Rev: doc/simulated/code_value:
Rev: doc/simulated/describe_backtrace:
Rev: doc/simulated/exec:
Rev: doc/simulated/file_size:
Rev: doc/simulated/filter_array:
Rev: doc/simulated/get_function:
Rev: doc/simulated/getenv:
Rev: doc/simulated/l_sizeof:
Rev: doc/simulated/m_indices:
Rev: doc/simulated/m_sizeof:
Rev: doc/simulated/m_values:
Rev: doc/simulated/map_array:
Rev: doc/simulated/master:
Rev: doc/simulated/member_array:
Rev: doc/simulated/popen:
Rev: doc/simulated/previous_object:
Rev: doc/simulated/read_bytes:
Rev: doc/simulated/regexp:
Rev: doc/simulated/search_array:
Rev: doc/simulated/sort_array:
Rev: doc/simulated/spawn:
Rev: doc/simulated/strlen:
Rev: doc/simulated/strstr:
Rev: doc/simulated/sum_arrays:
Rev: doc/simulated/system:
Rev: doc/simulated/this_function:
Rev: doc/simulated/write:
Rev: doc/simulated/write_file:
Rev: doc/sprintf/sprintf:
Rev: doc/types/array:
Rev: doc/types/float:
Rev: doc/types/function:
Rev: doc/types/int:
Rev: doc/types/list:
Rev: doc/types/mapping:
Rev: doc/types/object:
Rev: doc/types/program:
Rev: doc/types/string:
Rev: lib/master.lpc:
Rev: lib/simulate.lpc:
Rev: lib/testsuite.lpc:
Rev: src/BUGS:
Rev: src/COPYING:
Rev: src/ChangeLog:
Rev: src/
Rev: src/README:
Rev: src/add_efun.c:
Rev: src/add_efun.h:
Rev: src/alloca.c:
Rev: src/array.c:
Rev: src/array.h:
Rev: src/backend.c:
Rev: src/backend.h:
Rev: src/build_modlist_h:
Rev: src/builtin_efuns.c:
Rev: src/builtin_efuns.h:
Rev: src/call_out.c:
Rev: src/call_out.h:
Rev: src/callback.c:
Rev: src/callback.h:
Rev: src/compilation.h:
Rev: src/config.h:
Rev: src/config.log:
Rev: src/configure:
Rev: src/
Rev: src/debug.c:
Rev: src/debug.h:
Rev: src/docode.c:
Rev: src/docode.h:
Rev: src/dynamic_buffer.c:
Rev: src/dynamic_buffer.h:
Rev: src/efun.h:
Rev: src/error.c:
Rev: src/error.h:
Rev: src/fd_control.c:
Rev: src/fd_control.h:
Rev: src/fsort.c:
Rev: src/fsort.h:
Rev: src/get_linker_options:
Rev: src/global.h:
Rev: src/hashtable.c:
Rev: src/hashtable.h:
Rev: src/install-sh:
Rev: src/interpret.c:
Rev: src/interpret.h:
Rev: src/language.y:
Rev: src/las.c:
Rev: src/las.h:
Rev: src/lex.c:
Rev: src/lex.h:
Rev: src/list.c:
Rev: src/list.h:
Rev: src/lpc_signal.c:
Rev: src/lpc_signal.h:
Rev: src/lpc_types.c:
Rev: src/lpc_types.h:
Rev: src/
Rev: src/macros.h:
Rev: src/main.c:
Rev: src/main.h:
Rev: src/make_modules:
Rev: src/mapping.c:
Rev: src/mapping.h:
Rev: src/memory.c:
Rev: src/memory.h:
Rev: src/module.c:
Rev: src/module.h:
Rev: src/modules/efuns.c:
Rev: src/modules/files/
Rev: src/modules/files/configure:
Rev: src/modules/files/
Rev: src/modules/files/datagram.c:
Rev: src/modules/files/efuns.c:
Rev: src/modules/files/file.c:
Rev: src/modules/files/file.h:
Rev: src/modules/files/
Rev: src/modules/files/socket.c:
Rev: src/modules/math/
Rev: src/modules/math/configure:
Rev: src/modules/math/
Rev: src/modules/math/math.c:
Rev: src/modules/regexp/
Rev: src/modules/regexp/configure:
Rev: src/modules/regexp/
Rev: src/modules/regexp/glue.c:
Rev: src/modules/regexp/regexp.c:
Rev: src/modules/regexp/regexp.h:
Rev: src/modules/sprintf/
Rev: src/modules/sprintf/configure:
Rev: src/modules/sprintf/
Rev: src/modules/sprintf/sprintf.c:
Rev: src/object.c:
Rev: src/object.h:
Rev: src/opcodes.c:
Rev: src/opcodes.h:
Rev: src/operators.c:
Rev: src/operators.h:
Rev: src/otable.h:
Rev: src/port.c:
Rev: src/port.h:
Rev: src/program.c:
Rev: src/program.h:
Rev: src/rusage.c:
Rev: src/rusage.h:
Rev: src/stamp-h:
Rev: src/stralloc.c:
Rev: src/stralloc.h:
Rev: src/stuff.c:
Rev: src/stuff.h:
Rev: src/svalue.c:
Rev: src/svalue.h:
Rev: src/todo:
Rev: src/types.h:
Rev: src/ualarm.c:

1: + /* +  * Compilator state push / pop operator construction file +  * +  * (Can you tell I like macros?) +  */    -  + /* +  * IMEMBER: do not reset this member when popping +  * ZMEMBER: reset this member to zero when pushing +  * +  * defining STRUCT defines the structures +  * defining DECLARE creates global vars for saving linked list +  * of these lists... +  * defining PUSH pushes the selected state(s) on the stack(s) +  * defining POP pops the selected state(s) from the stack(s) +  * +  * define FILE_STATE to select the file state +  * define PROGRAM_STATE to select the program state +  */ +  + #ifdef STRUCT + #define IMEMBER(X,Y,Z) X Y Z ; + #define ZMEMBER(X,Y,Z) X Y Z ; + #define SNAME(X,Y) struct X { struct X *previous; + #define SEND }; + #endif +  + #ifdef DECLARE + #define IMEMBER(X,Y,Z) + #define ZMEMBER(X,Y,Z) + #define SNAME(X,Y) static struct X * Y = 0; + #define SEND + #endif +  + #ifdef PUSH + #define IMEMBER(X,Y,Z) MEMCPY((char *)&(oLd->Y), (char *)&(Y), sizeof(Y)); + #define ZMEMBER(X,Y,Z) MEMCPY((char *)&(oLd->Y), (char *)&(Y), sizeof(Y)); \ +  MEMSET((char *)&(Y), 0, sizeof(Y)); + #define SNAME(X,Y) { \ +  struct X *oLd; \ +  oLd=ALLOC_STRUCT(X); \ +  oLd->previous=Y; Y=oLd; + #define SEND } + #endif +  +  + #ifdef POP + #define IMEMBER(X,Y,Z) MEMCPY((char *)&(Y), (char *)&(oLd->Y), sizeof(Y)); + #define ZMEMBER(X,Y,Z) MEMCPY((char *)&(Y), (char *)&(oLd->Y), sizeof(Y)); + #define SNAME(X,Y) { \ +  struct X *oLd; \ +  oLd=Y; Y=oLd->previous; + #define SEND free(oLd); \ +  } + #endif +  + #ifdef FILE_STATE +  SNAME(file_state,previous_file_state) +  ZMEMBER(INT32,current_line,) +  ZMEMBER(INT32,old_line,) +  ZMEMBER(INT32,nexpands,) +  ZMEMBER(int,pragma_all_inline,) +  ZMEMBER(struct inputstate *,istate,) +  ZMEMBER(struct hash_table *,defines,) +  ZMEMBER(struct lpc_string *,current_file,) +  SEND + #endif +  + #ifdef PROGRAM_STATE +  SNAME(program_state,previous_program_state) +  ZMEMBER(struct program,fake_program,) +  ZMEMBER(node *,init_node,) +  ZMEMBER(INT32,last_line,) +  ZMEMBER(INT32,last_pc,) +  ZMEMBER(int,num_parse_error,) +  ZMEMBER(struct locals *,local_variables,) +  ZMEMBER(dynamic_buffer,inherit_names,) +  ZMEMBER(dynamic_buffer,areas,[NUM_AREAS]) +  IMEMBER(int,comp_stackp,) +  SEND + #endif +  + #undef IMEMBER + #undef ZMEMBER + #undef SNAME + #undef SEND   Newline at end of file added.