Mercurial > urweb
comparison src/urweb.grm @ 360:c1e96b387115
Syntax highlighting for embedded XML
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 14 Oct 2008 16:37:43 -0400 |
parents | 383c72d11db8 |
children | 260b680a6a04 |
comparison
equal
deleted
inserted
replaced
359:465593c024ca | 360:c1e96b387115 |
---|---|
191 | FN | PLUSPLUS | MINUSMINUS | DOLLAR | TWIDDLE | 191 | FN | PLUSPLUS | MINUSMINUS | DOLLAR | TWIDDLE |
192 | STRUCTURE | SIGNATURE | STRUCT | SIG | END | FUNCTOR | WHERE | EXTERN | WITH | SQL | 192 | STRUCTURE | SIGNATURE | STRUCT | SIG | END | FUNCTOR | WHERE | EXTERN | WITH | SQL |
193 | INCLUDE | OPEN | CONSTRAINT | CONSTRAINTS | EXPORT | TABLE | SEQUENCE | 193 | INCLUDE | OPEN | CONSTRAINT | CONSTRAINTS | EXPORT | TABLE | SEQUENCE |
194 | CASE | IF | THEN | ELSE | 194 | CASE | IF | THEN | ELSE |
195 | 195 |
196 | XML_BEGIN of string | XML_END | 196 | XML_BEGIN of string | XML_END | XML_BEGIN_END of string |
197 | NOTAGS of string | 197 | NOTAGS of string |
198 | BEGIN_TAG of string | END_TAG of string | 198 | BEGIN_TAG of string | END_TAG of string |
199 | 199 |
200 | SELECT | FROM | AS | CWHERE | GROUP | ORDER | BY | HAVING | 200 | SELECT | FROM | AS | CWHERE | GROUP | ORDER | BY | HAVING |
201 | UNION | INTERSECT | EXCEPT | 201 | UNION | INTERSECT | EXCEPT |
799 (EField (e, ident), loc)) | 799 (EField (e, ident), loc)) |
800 (EVar path, s (pathleft, pathright)) idents | 800 (EVar path, s (pathleft, pathright)) idents |
801 end) | 801 end) |
802 | FOLD (EFold, s (FOLDleft, FOLDright)) | 802 | FOLD (EFold, s (FOLDleft, FOLDright)) |
803 | 803 |
804 | XML_BEGIN xml XML_END (xml) | 804 | XML_BEGIN xml XML_END (let |
805 | XML_BEGIN XML_END (EApp ((EVar (["Basis"], "cdata"), s (XML_BEGINleft, XML_ENDright)), | 805 val loc = s (XML_BEGINleft, XML_ENDright) |
806 (EPrim (Prim.String ""), s (XML_BEGINleft, XML_ENDright))), | 806 in |
807 s (XML_BEGINleft, XML_ENDright)) | 807 if XML_BEGIN = "xml" then |
808 () | |
809 else | |
810 ErrorMsg.errorAt loc "Initial XML tag pair aren't both tagged \"xml\"."; | |
811 xml | |
812 end) | |
813 | XML_BEGIN XML_END (let | |
814 val loc = s (XML_BEGINleft, XML_ENDright) | |
815 in | |
816 if XML_BEGIN = "xml" then | |
817 () | |
818 else | |
819 ErrorMsg.errorAt loc "Initial XML tag pair aren't both tagged \"xml\"."; | |
820 (EApp ((EVar (["Basis"], "cdata"), loc), | |
821 (EPrim (Prim.String ""), loc)), | |
822 loc) | |
823 end) | |
824 | XML_BEGIN_END (let | |
825 val loc = s (XML_BEGIN_ENDleft, XML_BEGIN_ENDright) | |
826 in | |
827 if XML_BEGIN_END = "xml" then | |
828 () | |
829 else | |
830 ErrorMsg.errorAt loc "Initial XML tag pair aren't both tagged \"xml\"."; | |
831 (EApp ((EVar (["Basis"], "cdata"), loc), | |
832 (EPrim (Prim.String ""), loc)), | |
833 loc) | |
834 end) | |
808 | 835 |
809 | LPAREN query RPAREN (query) | 836 | LPAREN query RPAREN (query) |
810 | LPAREN CWHERE sqlexp RPAREN (sqlexp) | 837 | LPAREN CWHERE sqlexp RPAREN (sqlexp) |
811 | LPAREN SQL sqlexp RPAREN (sqlexp) | 838 | LPAREN SQL sqlexp RPAREN (sqlexp) |
812 | 839 |