7 (defmacro ew-scan-std11 (scan col str)
8 `(let ((res (ew-make-anchor col str))
31 ((?\r ?\n [" \t"]) 'ew:fold)
34 ((+ [(?a ?z) (?A ?Z) (?0 ?9) "!#$%&'*+-/=?^_`{|}~" non-ascii])
36 (?\" (setq mode 'quoted-string) 'ew:qs-begin)
37 (?\[ (setq mode 'domain-literal) 'ew:dl-begin)
38 (?\( (setq mode 'comment
41 (() (setq p q) 'ew:*err*)))
42 (ew-add-frag res r p type))
43 ((eq mode 'quoted-string)
48 (?\" (setq mode 'token) 'ew:qs-end)
49 ((?\\ ?\r ?\n [" \t"]) 'ew:qs-qfold)
50 ((?\\ ?\r ?\n [^ " \t"])
53 (* (+ ?\r) [^ "\"\\ \t\r\n"] (* [^ "\"\\ \t\r"]))
57 (ew-add-frag res r (- p 3) 'ew:qs-texts)
61 (* (+ ?\r) [^ "\"\\ \t\r\n"] (* [^ "\"\\ \t\r"]))
65 (ew-add-frag res r (- p 3) 'ew:qs-texts)
73 (* (+ ?\r) [^ "\"\\ \t\r\n"] (* [^ "\"\\ \t\r"]))
77 (progn (setq p q) 'ew:*err*)))))
78 (ew-add-frag res r p type))
79 ((eq mode 'domain-literal)
84 (?\] (setq mode 'token) 'ew:dl-end)
85 ((?\\ ?\r ?\n [" \t"])
87 ((?\\ ?\r ?\n [^ " \t"])
90 (* (+ ?\r) [^ "[]\\ \t\r\n"] (* [^ "[]\\ \t\r"]))
94 (ew-add-frag res r (- p 3) 'ew:dl-texts)
98 (* (+ ?\r) [^ "[]\\ \t\r\n"] (* [^ "[]\\ \t\r"]))
102 (ew-add-frag res r (- p 3) 'ew:dl-texts)
104 (setq p q) 'ew:*err*)
109 (((* [^ "[]\\ \t\r"])
110 (* (+ ?\r) [^ "[]\\ \t\r\n"] (* [^ "[]\\ \t\r"]))
114 (progn (setq p q) 'ew:*err*)))))
115 (ew-add-frag res r p type))
121 (?\( (setq nest (1+ nest)) 'ew:cm-nested-begin)
122 (?\) (setq nest (1- nest))
124 (progn (setq mode 'token) 'ew:cm-end)
126 ((?\\ ?\r ?\n [" \t"])
128 ((?\\ ?\r ?\n [^ " \t"])
129 (setq p q) 'ew:*err*)
130 (((* [^ "()\\ \t\r"])
131 (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"]))
135 (ew-add-frag res r (- p 3) 'ew:cm-texts)
138 (((* [^ "()\\ \t\r"])
139 (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"]))
143 (ew-add-frag res r (- p 3) 'ew:cm-texts)
145 (setq p q) 'ew:*err*)
150 (((* [^ "()\\ \t\r"])
151 (* (+ ?\r) [^ "()\\ \t\r\n"] (* [^ "()\\ \t\r"]))
155 (progn (setq p q) 'ew:*err*)))))
156 (ew-add-frag res r p type))))
160 (defun ew-scan-unibyte-std11 (col str)
161 (ew-scan-std11 lex-scan-unibyte col str))
162 (defun ew-scan-multibyte-std11 (col str)
163 (ew-scan-std11 lex-scan-multibyte col str))
170 (ew-scan-unibyte-std11
171 0 " Tanaka Akira <akr@jaist.ac.jp> (Tanaka Akira)"))))
175 (lambda (frag) (cons (get frag 'type) (symbol-name frag)))
177 (ew-scan-unibyte-std11
178 0 " Tanaka Akira <akr@jaist.ac.jp> (Tanaka Akira)"))))