IDENT: [a-z] [A-Z] [0-9] IDENT ::= [a-zA-Z]+ [0-9]* referenced by: assign_statement program_main var_help var_in var_out while_statement program: program_main program_var statement program ::= program_main program_var statement no referencesprogram_main: IDENT ( var_in ; var_out ) ; program_main ::= IDENT '(' var_in ';' var_out ')' ';' referenced by: program program_var: var ( var_help ) ; program_var ::= 'var' '(' var_help ')' ';' referenced by: program var_in: in IDENT , var_in ::= 'in' ( IDENT ( ',' IDENT )* )? referenced by: program_main var_out: out IDENT var_out ::= 'out' IDENT referenced by: program_main var_help: IDENT , var_help ::= ( IDENT ( ',' IDENT )* )? referenced by: program_var statement: assign_statement while_statement ; statement ::= ( assign_statement | while_statement ) ( ';' ( assign_statement | while_statement ) )* referenced by: program while_statement assign_statement: IDENT = 0 IDENT + 1 assign_statement ::= IDENT '=' ( '0' | IDENT '+' '1' ) referenced by: statement while_statement: while IDENT != IDENT do begin statement end while_statement ::= 'while' IDENT '!=' IDENT 'do' 'begin' statement 'end' referenced by: statement   ... generated by Railroad Diagram Generator R R