msc: 'msc' '{' optlist ';' entitylist ';' arclist ';' '}' | 'msc' '{' entitylist ';' arclist ';' '}' optlist: opt | optlist ',' opt opt: optval '=' string optval: 'hscale' | 'width' | 'arcgradient' | 'wordwraparcs' entitylist: entity | entitylist ',' entity entity: string | entity '[' attrlist ']' arclist: arc | arclist ';' arc | arclist ',' arc arc: arcrel '[' attrlist ']' | arcrel arcrel: "..." | "---" | "|||" | string relation_box string | string relation_bi string | string relation_to string | string relation_line string | string relation_from string | string relation_to '*' | '*' relation_from string relation_box: 'box' | 'abox' | 'rbox' | 'note' relation_line: '--' | '==' | '..' | '::' relation_bi: '<->' | '<=>' | '<.>' | '<<=>>' | '<:>' relation_to: '->' | '=>' | '.>' | '=>>' | ':>' | '-x' relation_from: '<-' | '<=' | '<.' | '<<=' | '<:' | 'x-' attrlist: attr | attrlist ',' attr attr: attrval '=' string attrval: 'label' | 'url' | 'id' | 'idurl' | 'linecolour' | 'textcolour' | 'textbgcolour' | 'arclinecolour' | 'arctextcolour' | 'arctextbgcolour' | 'arcskip' string: "[^"]+" | [A-Za-z0-9_]+