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
+