Mercurial > ~dholland > hg > ag > index.cgi
diff tests/agcl/parsifal/good/ss-kb.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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/agcl/parsifal/good/ss-kb.h Sat Dec 22 17:52:45 2007 -0500 @@ -0,0 +1,78 @@ +#ifndef SS-KB_H +#define SS-KB_H + +typedef enum { + ss-kb_file_error_message_token = 1, ss-kb_goto_query_token, + ss-kb_load_name_query_token, ss-kb_no_such_file_message_token, + ss-kb_overwrite_query_token, ss-kb_save_changes_query_token, + ss-kb_save_name_query_token, ss-kb_print_file_query_token, + ss-kb_block_query_token, ss-kb_decimals_query_token, + ss-kb_bad_decimals_message_token, ss-kb_grammar_token, + ss-kb_top_level_command_token, ss-kb_eof_token = 16, + ss-kb_recalc_request_token, ss-kb_utility_menu_token, + ss-kb_main_menu_token = 20, ss-kb_edit_request_token = 22, + ss-kb_edit_text_token, ss-kb_return_token, ss-kb_escape_token, + ss-kb_delete_request_token, ss-kb_page_up_token, ss-kb_page_down_token, + ss-kb_control_left_token, ss-kb_control_right_token, ss-kb_home_token, + ss-kb_end_token, ss-kb_up_token, ss-kb_down_token, ss-kb_left_token, + ss-kb_right_token, ss-kb_load_file_token, ss-kb_save_file_token, + ss-kb_clear_spreadsheet_token, ss-kb_format_token, ss-kb_exit_token, + ss-kb_error_token, ss-kb_goto_token, ss-kb_column_menu_token, + ss-kb_column_width_token = 47, ss-kb_row_menu_token, ss-kb_any_menu_token, + ss-kb_print_menu_token, ss-kb_print_file_name_token = 52, + ss-kb_spreadsheet_menu_token, ss-kb_format_menu_token, + ss-kb_block_token = 56, ss-kb_digits_spec_token = 58, + ss-kb_label_menu_token, ss-kb_how_token, ss-kb_bad_digits_spec_token = 63, + ss-kb_edit_number_token, ss-kb_F1_token, ss-kb_delete_token, + ss-kb_cell_name_token, ss-kb_column_width_request_token, + ss-kb_bad_cell_name_token = 70, ss-kb_bad_block_token, + ss-kb_exit_request_token, ss-kb_save_changes_token, + ss-kb_alt_x_token = 75, ss-kb_load_spreadsheet_token, + ss-kb_save_spreadsheet_token = 78, ss-kb_not_changed_token, + ss-kb_changed_token, ss-kb_no_token, ss-kb_yes_token, + ss-kb_write_file_token = 84, ss-kb_old_file_token, ss-kb_new_file_token, + ss-kb_file_error_token, ss-kb_any_key_token, + ss-kb_clear_spreadsheet_request_token, ss-kb_F2_token = 95, + ss-kb_text_character_token = 100, ss-kb_edit_key_token, ss-kb_digit_token, + ss-kb_backspace_token +} ss-kb_token_type; + +typedef struct ss-kb_pcb_struct{ + ss-kb_token_type token_number, reduction_token, error_frame_token; + int input_code; + int input_value; + int line, column; + int ssx, sn, error_frame_ssx; + int drt, dssx, dsn; + int ss[128]; + int vs[128]; + int ag_ap; + const char *error_message; + char read_flag; + char exit_flag; + int bts[128], btsx; + const int *ag_dtl; + int ag_dsn; +} ss-kb_pcb_type; + +#ifndef PRULE_CONTEXT +#define PRULE_CONTEXT(pcb) (&((pcb).cs[(pcb).ssx])) +#define PERROR_CONTEXT(pcb) ((pcb).cs[(pcb).error_frame_ssx]) +#define PCONTEXT(pcb) ((pcb).cs[(pcb).ssx]) +#endif + +#ifndef AG_RUNNING_CODE +/* PCB.exit_flag values */ +#define AG_RUNNING_CODE 0 +#define AG_SUCCESS_CODE 1 +#define AG_SYNTAX_ERROR_CODE 2 +#define AG_REDUCTION_ERROR_CODE 3 +#define AG_STACK_ERROR_CODE 4 +#define AG_SEMANTIC_ERROR_CODE 5 +#endif + +extern ss-kb_pcb_type ss-kb_pcb; +void init_ss-kb(void); +void ss-kb(void); +#endif +