* mime-def.el (mime-library-version-string): bump up to FLAM-DOODLE 1.9.1.
[elisp/flim.git] / ew-scan-s.el
index e060cdc..656c1ef 100644 (file)
         (p 0)
         (q (length str))
         r
+        type
         nest)
      (while (< p q)
        (setq r p)
        (cond
        ((eq mode 'token)
-        (,scan
-         str p q
-         ([" \t"] (ew-add-frag res r p 'ew:wsp-tok))
-         (?< (ew-add-frag res r p 'ew:lt-tok))
-         (?> (ew-add-frag res r p 'ew:gt-tok))
-         (?@ (ew-add-frag res r p 'ew:at-tok))
-         (?, (ew-add-frag res r p 'ew:comma-tok))
-         (?\; (ew-add-frag res r p 'ew:semicolon-tok))
-         (?: (ew-add-frag res r p 'ew:colon-tok))
-         (?. (ew-add-frag res r p 'ew:dot-tok))
-         ((?\r ?\n [" \t"])
-          (ew-add-frag res r p 'ew:fold-tok))
-         ((?\r ?\n [^ " \t"])
-          (ew-add-frag res r (setq p q) 'ew:err-tok))
-         ((+ [(?a ?z) (?A ?Z) (?0 ?9) "!#$%&'*+-/=?^_`{|}~" non-ascii])
-          (ew-add-frag res r p 'ew:atom-tok))
-         (?\" (ew-add-frag res r p 'ew:qs-begin-tok)
-              (setq mode 'quoted-string))
-         (?\[ (ew-add-frag res r p 'ew:dl-begin-tok)
-              (setq mode 'domain-literal))
-         (?\( (ew-add-frag res r p 'ew:cm-begin-tok)
-              (setq mode 'comment
-                    nest 1))
-         (() (ew-add-frag res r q 'ew:err-tok) (setq p q))))
+        (setq
+         type
+         (,scan
+          str p q
+          ([" \t"] 'ew:wsp-tok)
+          (?< 'ew:lt-tok)
+          (?> 'ew:gt-tok)
+          (?@ 'ew:at-tok)
+          (?, 'ew:comma-tok)
+          (?\; 'ew:semicolon-tok)
+          (?: 'ew:colon-tok)
+          (?. 'ew:dot-tok)
+          ((?\r ?\n [" \t"]) 'ew:fold-tok)
+          ((?\r ?\n [^ " \t"])
+           (setq p q) 'ew:err-tok)
+          ((+ [(?a ?z) (?A ?Z) (?0 ?9) "!#$%&'*+-/=?^_`{|}~" non-ascii])
+           'ew:atom-tok)
+          (?\" (setq mode 'quoted-string) 'ew:qs-begin-tok)
+          (?\[ (setq mode 'domain-literal) 'ew:dl-begin-tok)
+          (?\( (setq mode 'comment
+                     nest 1)
+               'ew:cm-begin-tok)
+          (() (setq p q) 'ew:err-tok)))
+        (ew-add-frag res r p type))
        ((eq mode 'quoted-string)
-        (,scan
-         str p q
-         (?\" (ew-add-frag res r p 'ew:qs-end-tok)
-              (setq mode 'token))
-         ((?\\ ?\r ?\n [" \t"])
-          (ew-add-frag res r p 'ew:qs-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:qs-texts-tok)
-            (setq r (- p 3)))
-          (ew-add-frag res r p 'ew:qs-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:qs-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:qs-qpair-tok))
-         ([" \t"]
-          (ew-add-frag res r p 'ew:qs-wsp-tok))
-         (((* [^ "\"\\ \t\r"]) (* (+ ?\r) [^ "\"\\ \t\r\n"] (* [^ "\"\\ \t\r"])) (* ?\r))
-          (if (< r p)
-              (ew-add-frag res r p 'ew:qs-texts-tok)
-            (ew-add-frag res r (setq p q) 'ew:err-tok)))))
+        (setq
+         type
+         (,scan
+          str p q
+          (?\" (setq mode 'token) 'ew:qs-end-tok)
+          ((?\\ ?\r ?\n [" \t"]) 'ew:qs-qfold-tok)
+          ((?\\ ?\r ?\n [^ " \t"])
+           (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:qs-texts-tok)
+             (setq r (- p 3)))
+           'ew:qs-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:qs-texts-tok)
+             (setq r (- p 3)))
+           (setq p q) 'ew:err-tok)
+          ((?\\ (any))
+           'ew:qs-qpair-tok)
+          ([" \t"]
+           'ew:qs-wsp-tok)
+          (((* [^ "\"\\ \t\r"])
+            (* (+ ?\r) [^ "\"\\ \t\r\n"] (* [^ "\"\\ \t\r"]))
+            (* ?\r))
+           (if (< r p)
+               'ew:qs-texts-tok
+             (progn (setq p q) 'ew:err-tok)))))
+        (ew-add-frag res r p type))
        ((eq mode 'domain-literal)
-        (,scan
-         str p q
-         (?\] (ew-add-frag res r p 'ew:dl-end-tok)
-              (setq mode 'token))
-         ((?\\ ?\r ?\n [" \t"])
-          (ew-add-frag res r p 'ew:dl-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:dl-texts-tok)
-            (setq r (- p 3)))
-          (ew-add-frag res r p 'ew:dl-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:dl-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:dl-qpair-tok))
-         ([" \t"]
-          (ew-add-frag res r p 'ew:dl-wsp-tok))
-         (((* [^ "[]\\ \t\r"]) (* (+ ?\r) [^ "[]\\ \t\r\n"] (* [^ "[]\\ \t\r"])) (* ?\r))
-          (if (< r p)
-              (ew-add-frag res r p 'ew:dl-texts-tok)
-            (ew-add-frag res r (setq p q) 'ew:err-tok)))))
+        (setq
+         type
+         (,scan
+          str p q
+          (?\] (setq mode 'token) 'ew:dl-end-tok)
+          ((?\\ ?\r ?\n [" \t"])
+           'ew:dl-qfold-tok)
+          ((?\\ ?\r ?\n [^ " \t"])
+           (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:dl-texts-tok)
+             (setq r (- p 3)))
+           'ew:dl-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:dl-texts-tok)
+             (setq r (- p 3)))
+           (setq p q) 'ew:err-tok)
+          ((?\\ (any))
+           'ew:dl-qpair-tok)
+          ([" \t"]
+           'ew:dl-wsp-tok)
+          (((* [^ "[]\\ \t\r"])
+            (* (+ ?\r) [^ "[]\\ \t\r\n"] (* [^ "[]\\ \t\r"]))
+            (* ?\r))
+           (if (< r p)
+               'ew:dl-texts-tok
+             (progn (setq p q) 'ew:err-tok)))))
+        (ew-add-frag res r p type))
        ((eq mode 'comment)
-        (,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-tok)
+          (?\) (setq nest (1- nest))
+               (if (zerop nest)
+                   (progn (setq mode 'token) 'ew:cm-end-tok)
+                 'ew:cm-nested-end-tok))
+          ((?\\ ?\r ?\n [" \t"])
+           'ew:cm-qfold-tok)
+          ((?\\ ?\r ?\n [^ " \t"])
+           (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: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)))
+           (setq p q) 'ew:err-tok)
+          ((?\\ (any))
+           'ew:cm-qpair-tok)
+          ([" \t"]
+           'ew:cm-wsp-tok)
+          (((* [^ "()\\ \t\r"])
+            (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"]))
+            (* ?\r))
+           (if (< r p)
+               'ew:cm-texts-tok
+             (progn (setq p q) 'ew:err-tok)))))
+        (ew-add-frag res r p type))))
      (ew-terminate res)
      res))