00001
00002
00003
00004
00005
00006
00007
00008 #ifndef PEEP_H
00009 #define PEEP_H
00010
00011 #include "dynamic_buffer.h"
00012 extern dynamic_buffer instrbuf;
00013
00014 struct p_instr_s
00015 {
00016 short opcode;
00017 short line;
00018 struct pike_string *file;
00019 INT32 arg;
00020 INT32 arg2;
00021 };
00022
00023 typedef struct p_instr_s p_instr;
00024
00025
00026 void init_bytecode(void);
00027 void exit_bytecode(void);
00028 ptrdiff_t insert_opcode2(unsigned int f,
00029 INT32 a,
00030 INT32 b,
00031 INT32 current_line,
00032 struct pike_string *current_file);
00033 ptrdiff_t insert_opcode1(unsigned int f,
00034 INT32 a,
00035 INT32 current_line,
00036 struct pike_string *current_file);
00037 ptrdiff_t insert_opcode0(int f,int current_line,
00038 struct pike_string *current_file);
00039 void update_arg(int instr,INT32 arg);
00040 INT32 assemble(int store_linenumbers);
00041
00042
00043 #endif