- (,scan
- str p q
- ([" \t"] (ew-add-frag res r p 'ew:raw-wsp-tok))
- (?< (ew-add-token res r p 'ew:raw-lt-tok))
- (?> (ew-add-token res r p 'ew:raw-gt-tok))
- (?@ (ew-add-token res r p 'ew:raw-at-tok))
- (?, (ew-add-token res r p 'ew:raw-comma-tok))
- (?\; (ew-add-token res r p 'ew:raw-semicolon-tok))
- (?: (ew-add-token res r p 'ew:raw-colon-tok))
- (?/ (ew-add-token res r p 'ew:raw-slash-tok))
- (?? (ew-add-token res r p 'ew:raw-question-tok))
- (?= (ew-add-token res r p 'ew:raw-equal-tok))
- ((?\r ?\n [" \t"])
- (ew-add-frag res r p 'ew:raw-fold-tok))
- ((?\r ?\n [^ " \t"])
- (ew-add-frag res r (setq p q) 'ew:raw-err-tok))
- ((+ [(?a ?z) (?A ?Z) (?0 ?9) "!#$%&'*+-.^_`{|}~" non-ascii])
- (ew-add-token res r p 'ew:raw-atom-tok))
- (?\" (ew-add-open res r p 'ew:raw-qs-begin-tok)
- (setq mode 'quoted-string))
- (?\[ (ew-add-open res r p 'ew:raw-dl-begin-tok)
- (setq mode 'domain-literal))
- (?\( (ew-add-open res r p 'ew:raw-cm-begin-tok)
- (setq mode 'comment
- nest 1))
- (() (ew-add-frag res r q 'ew:raw-err-tok) (setq p q))))
+ (setq
+ type
+ (,scan
+ str p q
+ ([" \t"] 'ew:wsp)
+ (?< 'ew:lt)
+ (?> 'ew:gt)
+ (?@ 'ew:at)
+ (?, 'ew:comma)
+ (?\; 'ew:semicolon)
+ (?: 'ew:colon)
+ (?/ 'ew:slash)
+ (?? 'ew:question)
+ (?= 'ew:equal)
+ ((?\r ?\n [" \t"]) 'ew:fold)
+ ((?\r ?\n [^ " \t"])
+ (setq p q) 'ew:*err*)
+ ((+ [(?a ?z) (?A ?Z) (?0 ?9) "!#$%&'*+-.^_`{|}~" non-ascii])
+ 'ew:token)
+ (?\" (setq mode 'quoted-string) 'ew:qs-begin)
+ (?\[ (setq mode 'domain-literal) 'ew:dl-begin)
+ (?\( (setq mode 'comment
+ nest 1)
+ 'ew:cm-begin)
+ (() (setq p q) 'ew:*err*)))
+ (ew-add-frag res r p type))