属性の構文はひどいだろ

Character'('A')'Img

ほら、はてなの色分けも間違ってるし!
直前が識別子かリテラルか")"の後にクォーテーションが来て、後ろにアルファベット2文字以上続いている→属性、後ろに"("があって以降を式として解釈できる(スキャナレベルでは予知能力が必要)→aggregate式。
もしかしたら「直前が識別子かリテラルか")"の後にクォーテーションが来て」いるときは文字リテラルは有りえなくて(OCamlHaskellの関数呼出しのように式と式を併記するだけで効果のある構文が無いから)全部クォーテーションとしてパーサに送ってしまえばそれでいいのかも。