1 /********************************************************************
3 parser.h - recursive-descent parser declarations
5 Niksa Orlic, 2004-04-19
7 ********************************************************************/
11 string
* RD_program_header();
13 block
* RD_block(block
*);
14 void RD_const_declaration();
15 void RD_var_declaration(block
*);
16 string_list
* RD_identifier_list(block
*, int);
17 void RD_type_declaration(block
*);
18 void RD_procedure_declaration(block
*);
19 void RD_function_declaration(block
*);
20 int RD_proc_block(block
*, type
*, type_list
*);
21 type_list
* RD_param_list(block
*);
22 void RD_block_body(block
*);
23 void RD_inline_body(block
*);
24 void RD_statement(block
*);
25 void RD_if_statement(block
*);
26 void RD_case_statement(block
*);
27 void RD_case_list(block
*, type
*);
28 void RD_while_statement(block
*);
29 void RD_repeat_statement(block
*);
30 void RD_for_statement(block
*);
31 type
* RD_type(block
*);
32 type
* RD_basic_type(block
*);
33 type
* RD_array_declaration(block
*);
34 type
* RD_record_declaration(block
*);
35 type
* RD_file_declaration(block
*);
36 void RD_set_declaration(block
*);
37 type
* RD_expression(block
*);
39 type
* RD_mult(block
*);
42 void RD_assignment_or_procedure_call(block
*);
43 type_list
* RD_expression_list(block
*);
44 type_list
* RD_expression_list_cast(block
*, type_list
*);
45 type_list
* RD_expression_list_array(block
*, bytecode
*, type
*);
46 void RD_with_statement(block
*);
47 type
* RD_value(block
*);
49 void RD_unit_interface(block
*);
50 void RD_unit_implementation(block
*);
51 void RD_unit_initialization(block
*);
52 void RD_unit_finalization(block
*);
54 void create_constant_bytecode(identifier
*, bytecode
*);
55 void create_variable_bytecode(identifier
*, bytecode
*, char*, int);
56 void create_put_variable_bytecode(identifier
*, bytecode
*, char*, int);
58 void replace_aaload_instruction(bytecode
*, type
*);
59 void adjust_indices(bytecode
*code
, type
*dimension
);