Cobus.Debeer@p0.f1.n491.z5.fidonet.org (Cobus Debeer) (10/29/90)
Grammer continued ....
record_type : RECORD field_list END;
field_list : field | field_list semicolon field;
field : | field_declaration | variant_field;
variant_field : CASE tag OF variant_list variant_else_opt END;
tag : ident colon qualident | ident ref_list_opt;
variant_list : variant | variant_list vertical_bar variant;
variant : case_label_list colon field_list;
case_label_list : case_label | case_label_list comma case_label;
case_label : const_expression | subrange;
variant_else_opt : | variant_else;
variant_else : ELSE field_list;
set_type : SET OF simple_type;
pointer_type : POINTER TO type;
procedure_type : PROCEDURE formal_type_list_opt function_opt;
formal_type_list_opt : | formal_type_list;
formal_type_list : left_parenthesis ft_list_opt right_parenthesis;
ft_list_opt : | ft_list;
ft_list : ft | ft_list comma ft;
ft : var_opt formal_type;
statement_list : statement | statement_list semicolon statement;
statement : | assignment | procedure_call | if_statement |
case_statement | while_statement | repeat_statement |
loop_statement | for_statement | with_statement | EXIT |
RETURN expression_opt;
expression_opt : | expression;
assignment : out_designator out_colon_equals expression;
out_designator : designator;
out_colon_equals : colon_equals;
designator : ident ref_list_opt;
ref_list_opt : | ref_list;
ref_list : ref | ref_list ref;
ref : dot ident | left_square_bracket exp_list right_square_bracket |
up_arrow;
exp_list_opt : | exp_list;
exp_list : expression | exp_list comma expression;
procedure_call : designator actual_parameters_opt;
actual_parameters_opt : | actual_parameters;
actual_parameters : left_parenthesis exp_list_opt right_parenthesis;
if_statement : IF expression THEN statement_list elsif_list_opt
else_opt END;
elsif_list_opt : | elsif_list;
elsif_list : elsif | elsif_list elsif;
elsif : ELSIF expression THEN statement_list;
else_opt : | else;
else : ELSE statement_list;
case_statement : CASE expression OF case_list else_opt END;
case_list : case | case_list vertical_bar case;
case : case_label_list colon statement_list;
while_statement : WHILE expression DO statement_list END;
repeat_statement : REPEAT statement_list UNTIL expression;
loop_statement : LOOP statement_list END;
Regards
- Cobus de Beer
--
uucp: uunet!m2xenix!puddle!5!491!1.0!Cobus.Debeer
Internet: Cobus.Debeer@p0.f1.n491.z5.fidonet.org