src/Pure/Syntax/syn_ext.ML
changeset 2201 7cffa6e6fc53
parent 1510 4588ba1b1438
child 2209 e10e02de3e02
--- a/src/Pure/Syntax/syn_ext.ML	Mon Nov 18 17:29:49 1996 +0100
+++ b/src/Pure/Syntax/syn_ext.ML	Mon Nov 18 17:30:28 1996 +0100
@@ -186,6 +186,15 @@
       fun scan_delim_char ("'" :: c :: cs) =
             if is_blank c then raise LEXICAL_ERROR else (c, cs)
         | scan_delim_char ["'"] = err "trailing escape character"
+        | scan_delim_char ("\\" :: "{" :: cs) =
+            let
+              val (ch_name, cs') = (scan_id -- $$ "}" >> #1) cs
+                handle LEXICAL_ERROR => err "malformed symbolic char specification";
+              val c =
+                if ch_name mem SymbolFont.char_names then
+                  SymbolFont.char ch_name
+                else err ("unknown symbolic char name: " ^ quote ch_name);
+            in (c, cs') end
         | scan_delim_char (chs as c :: cs) =
             if is_blank c orelse is_meta c then raise LEXICAL_ERROR else (c, cs)
         | scan_delim_char [] = raise LEXICAL_ERROR;