prog : defaultsection inc_and_cons ; inc_and_cons: include | constructor | include inc_and_cons | constructor inc_and_cons ; defaultsection : DEFAULT struct | ; struct : LEFTCURLY fields RIGHTCURLY ; fields: field fields | ; field : classname value ; value : STRING | INT | REAL | list | IDENT | box | constructor ; list : LEFTSQUARE valueslst RIGHTSQUARE | LEFTSQUARE RIGHTSQUARE ; valueslst : value | valueslst COMMA value | valueslst value ; include : INCLUDE STRING ; box: BOX LEFTCURLY walls RIGHTCURLY ; walls: value | walls value ; classname : IDENT | ROOM | DOOR | OPENING | ELEVATOR | MAP ; constructor: classname struct ;