block = type name ['(' {attributes} ')'] '{' {data_fields} '}'; type = 'map' | 'class' | 'module' | 'vartab'; attributes = name ':' name [',']; data_fields = data_name ',' data_value [':' depend_macro] '\n'; (* regular expression *) name = [_a-zA-Z]\w*; data_name = [\._a-zA-Z]\w*; data_value = [\w\()]+; depend_macro = [_a-zA-Z]\w*;