🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.modula2
Article #1356

Grammer continued 4/5

#1356
From: Cobus Debeer
Date: Mon, 29 Oct 1990 05:18
64 lines
3068 bytes
 
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
Technical Details
Message-ID: <292.2730462F@puddle.fidonet.org>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!uunet!zephyr.ens.tek.com!tektronix!nosun!qiclab!m2xenix!puddle!p0.f1.n491.z5.fidonet.org!Cobus.Debeer

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!uunet!zephyr.ens.tek.com!tektronix!nosun!qiclab!m2xenix!puddle!p0.f1.n491.z5.fidonet.org!Cobus.Debeer
From: Cobus.Debeer@p0.f1.n491.z5.fidonet.org (Cobus Debeer)
Newsgroups: comp.lang.modula2
Subject: Grammer continued 4/5
Message-ID: <292.2730462F@puddle.fidonet.org>
Date: 29 Oct 90 05:18:17 GMT
Sender: ufgate@puddle.fidonet.org (newsout1.26)
Organization: FidoNet node 5:491/1.0 - Golden City Opus, Johannesburg RSA
Lines: 64