module languages/modula-3/syntax/Layout imports languages/modula-3/syntax/Pragma exports sorts CAsterisk Comment CommentChar CommentTail CParen lexical syntax [\ \t\n] -> LAYOUT Comment -> LAYOUT {category("Comment")} lexical syntax "(*" CommentChar* CommentTail* "*)" -> Comment Comment CommentChar* -> CommentTail lexical syntax [\*] -> CAsterisk [\(] -> CParen ~[\*\(] -> CommentChar CAsterisk -> CommentChar CParen -> CommentChar lexical restrictions CAsterisk -/- [\)] CParen -/- [\*] context-free restrictions LAYOUT? -/- [\ \t\n] LAYOUT? -/- [\(].[\*]