(sieve_op_t.line): New member
Showing
1 changed file
with
10 additions
and
3 deletions
... | @@ -32,11 +32,13 @@ typedef union { | ... | @@ -32,11 +32,13 @@ typedef union { |
32 | long number; | 32 | long number; |
33 | char *string; | 33 | char *string; |
34 | size_t pc; | 34 | size_t pc; |
35 | size_t line; | ||
35 | } sieve_op_t; | 36 | } sieve_op_t; |
36 | 37 | ||
37 | struct sieve_machine { | 38 | struct sieve_machine { |
38 | /* Static data */ | 39 | /* Static data */ |
39 | char *filename; /* Name of the source script */ | 40 | sieve_locus_t locus; /* Approximate location in the code */ |
41 | |||
40 | list_t memory_pool; /* Pool of allocated memory objects */ | 42 | list_t memory_pool; /* Pool of allocated memory objects */ |
41 | list_t destr_list; /* List of destructor functions */ | 43 | list_t destr_list; /* List of destructor functions */ |
42 | 44 | ||
... | @@ -44,6 +46,7 @@ struct sieve_machine { | ... | @@ -44,6 +46,7 @@ struct sieve_machine { |
44 | list_t test_list; /* Tests */ | 46 | list_t test_list; /* Tests */ |
45 | list_t action_list; /* Actions */ | 47 | list_t action_list; /* Actions */ |
46 | list_t comp_list; /* Comparators */ | 48 | list_t comp_list; /* Comparators */ |
49 | list_t source_list; /* Source names (for diagnostics) */ | ||
47 | 50 | ||
48 | size_t progsize; /* Number of allocated program cells */ | 51 | size_t progsize; /* Number of allocated program cells */ |
49 | sieve_op_t *prog; /* Compiled program */ | 52 | sieve_op_t *prog; /* Compiled program */ |
... | @@ -113,8 +116,10 @@ int sieve_code_list __P((list_t list)); | ... | @@ -113,8 +116,10 @@ int sieve_code_list __P((list_t list)); |
113 | int sieve_code_number __P((long num)); | 116 | int sieve_code_number __P((long num)); |
114 | int sieve_code_test __P((sieve_register_t *reg, list_t arglist)); | 117 | int sieve_code_test __P((sieve_register_t *reg, list_t arglist)); |
115 | int sieve_code_action __P((sieve_register_t *reg, list_t arglist)); | 118 | int sieve_code_action __P((sieve_register_t *reg, list_t arglist)); |
116 | void sieve_code_anyof (size_t start); | 119 | void sieve_code_anyof __P((size_t start)); |
117 | void sieve_code_allof (size_t start); | 120 | void sieve_code_allof __P((size_t start)); |
121 | int sieve_code_source __P((const char *name)); | ||
122 | int sieve_code_line __P((size_t line)); | ||
118 | 123 | ||
119 | void instr_action __P((sieve_machine_t mach)); | 124 | void instr_action __P((sieve_machine_t mach)); |
120 | void instr_test __P((sieve_machine_t mach)); | 125 | void instr_test __P((sieve_machine_t mach)); |
... | @@ -125,6 +130,8 @@ void instr_branch __P((sieve_machine_t mach)); | ... | @@ -125,6 +130,8 @@ void instr_branch __P((sieve_machine_t mach)); |
125 | void instr_brz __P((sieve_machine_t mach)); | 130 | void instr_brz __P((sieve_machine_t mach)); |
126 | void instr_brnz __P((sieve_machine_t mach)); | 131 | void instr_brnz __P((sieve_machine_t mach)); |
127 | void instr_nop __P((sieve_machine_t mach)); | 132 | void instr_nop __P((sieve_machine_t mach)); |
133 | void instr_source __P((sieve_machine_t mach)); | ||
134 | void instr_line __P((sieve_machine_t mach)); | ||
128 | 135 | ||
129 | int sieve_mark_deleted __P((message_t msg, int deleted)); | 136 | int sieve_mark_deleted __P((message_t msg, int deleted)); |
130 | 137 | ... | ... |
-
Please register or sign in to post a comment