Canonical parser