module z/lexical/Literals
imports z/lexical/Keywords
exports 
  sorts DECORWORD WORD STROKE
  lexical syntax
    Keyword                   -> DECORWORD {reject}
    WORD STROKE*              -> DECORWORD
    LETTER ALPHASTR           -> WORD
    (LETTER | DIGIT)*         -> ALPHASTR
    [a-zA-Z] | "Δ" | "Ξ" | "_"-> LETTER
    [0-9]                     -> DIGIT
    "'" | "!" | "?"           -> STROKE
  lexical restrictions
    ALPHASTR  -/- [A-Za-z0-9]
    DECORWORD -/- [\'\!\?]
hiddens
  sorts WORDPART ALPHASTR LETTER DIGIT