start: word+ word: WORD PRON? ("et" WORD PRON)? POS+ (link | simple) ("◆" WORD? POS+ simple)* simple : etymology? (explanation | explanation_list) explanation_list: (BLACK_NUM explanation)+ explanation: PAREN_ENCLOSED? FR ZH (":" example ("/" example)*)? ("‖" phrase)* ENCYCLOPEDIA* example: FR ZH phrase: FR ZH (":" example ("/" example)*)? etymology: PAREN_ENCLOSED ETYM_ZH? link: "→" WORD PRON: /\[.+?\]/ PAREN_ENCLOSED: /\(.+?\)\.?/ ETYM_ZH: /《.+》/ POS: /(?:n|[mf]|adj|v|[it]|adv|inv|pl|pr)\./ FR: /[0-9a-zA-ZÀÂÉÊÈËÌÏÎÔÙÛÇÆŒàâéêèëìïîôùûçæœ\-\(\)=+\.,;\[\]\'\? ]+/ ZH: /[\u4e00-\u9fff0-9;,〈〉〔〕()…][a-zA-Z\u4e00-\u9fff0-9;,〈〉〔〕()…、\[\]\(\)\/]*[\u4e00-\u9fff0-9;,〈〉\)\]…〔〕()。]/ ENCYCLOPEDIA: /◇[a-zA-Z0-9ÀÂÉÊÈËÌÏÎÔÙÛÇÆŒàâéêèëìïîôùûçæœ\u4e00-\u9fff0-9;,。 、.]+/ BLACK_NUM: /[❶❷❸❹❺❻❼❽❾❿⓫⓬⓭⓮⓯⓰⓱⓲⓳⓴]/ WORD: /([0-9]\. *)?[a-zA-ZÀÂÉÊÈËÌÏÎÔÙÛÇÆŒàâéêèëìïîôùûçæœ\-]+( [a-zA-ZÀÂÉÊÈËÌÏÎÔÙÛÇÆŒàâéêèëìïîôùûçæœ\-]+\b(?!\.))*(, *[a-zA-ZÀÂÉÊÈËÌÏÎÔÙÛÇÆŒàâéêèëìïîôùûçæœ\-]+)*|([A-Z]\. ?)+/ %import common.WS %ignore WS