db : record*; record : name address cuisine review; name : STRING; address() : street city country tel; review() : date menu quality note reviewer; street : STRING; city : STRING; country : STRING; tel : STRING; cuisine : STRING; date : DATE; menu : STRING; quality : /[0-9]|10/; note : note_text; /* note_text is in fact (STRING | span)* but we want to test recursion... */ note_text() : /* empty */ | STRING note_text | span note_text; reviewer : STRING; span : (STRING | span)* @class?; @class : S* IDENT (S+ IDENT)*;