comparison tests/agcl/parsifal/good/ss-sscx.h @ 0:13d2b8934445

Import AnaGram (near-)release tree into Mercurial.
author David A. Holland
date Sat, 22 Dec 2007 17:52:45 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:13d2b8934445
1 #ifndef SS-SSCX_H
2 #define SS-SSCX_H
3
4 typedef union {
5 double alignment;
6 char ag_vt_2[sizeof(int)];
7 char ag_vt_4[sizeof(double)];
8 char ag_vt_5[sizeof(Locator)];
9 } parseKernel_vs_type;
10
11 typedef enum {
12 parseKernel_white_space_token = 1, parseKernel_input_string_token = 4,
13 parseKernel_expression_token, parseKernel_eof_token,
14 parseKernel_logical_or_expression_token,
15 parseKernel_logical_and_expression_token = 10,
16 parseKernel_equality_expression_token = 12,
17 parseKernel_relational_expression_token = 14,
18 parseKernel_additive_expression_token = 17,
19 parseKernel_multiplicative_expression_token = 22,
20 parseKernel_factor_token = 25, parseKernel_primary_token = 28,
21 parseKernel_simple_real_token = 49, parseKernel_exponent_token = 52,
22 parseKernel_integer_part_token, parseKernel_fraction_part_token = 55,
23 parseKernel_digit_token = 57, parseKernel_column_token,
24 parseKernel_row_token, parseKernel_letter_token = 61,
25 parseKernel_real_token = 87, parseKernel_cell_name_token
26 } parseKernel_token_type;
27
28 typedef struct parseKernel_pcb_struct{
29 parseKernel_token_type token_number, reduction_token, error_frame_token;
30 int input_code;
31 int input_value;
32 int line, column;
33 int ssx, sn, error_frame_ssx;
34 int drt, dssx, dsn;
35 int ss[128];
36 parseKernel_vs_type vs[128];
37 int ag_ap;
38 const char *error_message;
39 char read_flag;
40 char exit_flag;
41 int bts[128], btsx;
42 unsigned char * pointer;
43 unsigned char * la_ptr;
44 const unsigned char *key_sp;
45 int save_index, key_state;
46 char ag_msg[82];
47 } parseKernel_pcb_type;
48
49 #ifndef PRULE_CONTEXT
50 #define PRULE_CONTEXT(pcb) (&((pcb).cs[(pcb).ssx]))
51 #define PERROR_CONTEXT(pcb) ((pcb).cs[(pcb).error_frame_ssx])
52 #define PCONTEXT(pcb) ((pcb).cs[(pcb).ssx])
53 #endif
54
55 #ifndef AG_RUNNING_CODE
56 /* PCB.exit_flag values */
57 #define AG_RUNNING_CODE 0
58 #define AG_SUCCESS_CODE 1
59 #define AG_SYNTAX_ERROR_CODE 2
60 #define AG_REDUCTION_ERROR_CODE 3
61 #define AG_STACK_ERROR_CODE 4
62 #define AG_SEMANTIC_ERROR_CODE 5
63 #endif
64
65 extern parseKernel_pcb_type parseKernel_pcb;
66 void init_parseKernel(void);
67 void parseKernel(void);
68 #endif
69