- (,scan
- str p q
- (?\( (ew-add-frag res r p 'ew:cm-nested-begin-tok)
- (setq nest (1+ nest)))
- (?\) (setq nest (1- nest))
- (if (zerop nest)
- (progn
- (ew-add-frag res r p 'ew:cm-end-tok)
- (setq mode 'token))
- (ew-add-frag res r p 'ew:cm-nested-end-tok)))
- ((?\\ ?\r ?\n [" \t"])
- (ew-add-frag res r p 'ew:cm-qfold-tok))
- ((?\\ ?\r ?\n [^ " \t"])
- (ew-add-frag res r (setq p q) 'ew:err-tok))
- (((* [^ "()\\ \t\r"]) (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"])) (* ?\r)
- (?\r ?\n [" \t"]))
- (when (< r (- p 3))
- (ew-add-frag res r (- p 3) 'ew:cm-texts-tok)
- (setq r (- p 3)))
- (ew-add-frag res r p 'ew:cm-fold-tok))
- (((* [^ "()\\ \t\r"]) (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"])) (* ?\r)
- (?\r ?\n [^ " \t"]))
- (when (< r (- p 3))
- (ew-add-frag res r (- p 3) 'ew:cm-texts-tok)
- (setq r (- p 3)))
- (ew-add-frag res r (setq p q) 'ew:err-tok))
- ((?\\ (any))
- (ew-add-frag res r p 'ew:cm-qpair-tok))
- ([" \t"]
- (ew-add-frag res r p 'ew:cm-wsp-tok))
- (((* [^ "()\\ \t\r"]) (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"])) (* ?\r))
- (if (< r p)
- (ew-add-frag res r p 'ew:cm-texts-tok)
- (ew-add-frag res r (setq p q) 'ew:err-tok)))))))
+ (setq
+ type
+ (,scan
+ str p q
+ (?\( (setq nest (1+ nest)) 'ew:cm-nested-begin)
+ (?\) (setq nest (1- nest))
+ (if (zerop nest)
+ (progn (setq mode 'token) 'ew:cm-end)
+ 'ew:cm-nested-end))
+ ((?\\ ?\r ?\n [" \t"])
+ 'ew:cm-qfold)
+ ((?\\ ?\r ?\n [^ " \t"])
+ (setq p q) 'ew:*err*)
+ (((* [^ "()\\ \t\r"])
+ (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"]))
+ (* ?\r)
+ (?\r ?\n [" \t"]))
+ (when (< r (- p 3))
+ (ew-add-frag res r (- p 3) 'ew:cm-texts)
+ (setq r (- p 3)))
+ 'ew:cm-fold)
+ (((* [^ "()\\ \t\r"])
+ (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"]))
+ (* ?\r)
+ (?\r ?\n [^ " \t"]))
+ (when (< r (- p 3))
+ (ew-add-frag res r (- p 3) 'ew:cm-texts)
+ (setq r (- p 3)))
+ (setq p q) 'ew:*err*)
+ ((?\\ (any))
+ 'ew:cm-qpair)
+ ([" \t"]
+ 'ew:cm-wsp)
+ (((* [^ "()\\ \t\r"])
+ (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"]))
+ (* ?\r))
+ (if (< r p)
+ 'ew:cm-texts
+ (progn (setq p q) 'ew:*err*)))))
+ (ew-add-frag res r p type))))