comparison src/urweb.grm @ 339:075b36dbb1a4

Crud supports INSERT
author Adam Chlipala <adamc@hcoop.net>
date Sun, 14 Sep 2008 15:10:04 -0400
parents e976b187d73a
children 389399d65331
comparison
equal deleted inserted replaced
338:e976b187d73a 339:075b36dbb1a4
10 * this list of conditions and the following disclaimer in the documentation 10 * this list of conditions and the following disclaimer in the documentation
11 * and/or other materials provided with the distribution. 11 * and/or other materials provided with the distribution.
12 * - The names of contributors may not be used to endorse or promote products 12 * - The names of contributors may not be used to endorse or promote products
13 * derived from this software without specific prior written permission. 13 * derived from this software without specific prior written permission.
14 * 14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 * THIS SOFTARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
170 | CON | LTYPE | VAL | REC | AND | FUN | FOLD | UNIT | KUNIT | CLASS 170 | CON | LTYPE | VAL | REC | AND | FUN | FOLD | UNIT | KUNIT | CLASS
171 | DATATYPE | OF 171 | DATATYPE | OF
172 | TYPE | NAME 172 | TYPE | NAME
173 | ARROW | LARROW | DARROW | STAR | SEMI 173 | ARROW | LARROW | DARROW | STAR | SEMI
174 | FN | PLUSPLUS | MINUSMINUS | DOLLAR | TWIDDLE 174 | FN | PLUSPLUS | MINUSMINUS | DOLLAR | TWIDDLE
175 | STRUCTURE | SIGNATURE | STRUCT | SIG | END | FUNCTOR | WHERE | EXTERN 175 | STRUCTURE | SIGNATURE | STRUCT | SIG | END | FUNCTOR | WHERE | EXTERN | WITH | SQL
176 | INCLUDE | OPEN | CONSTRAINT | CONSTRAINTS | EXPORT | TABLE | SEQUENCE 176 | INCLUDE | OPEN | CONSTRAINT | CONSTRAINTS | EXPORT | TABLE | SEQUENCE
177 | CASE | IF | THEN | ELSE 177 | CASE | IF | THEN | ELSE
178 178
179 | XML_BEGIN of string | XML_END 179 | XML_BEGIN of string | XML_END
180 | NOTAGS of string 180 | NOTAGS of string
314 %right COMMA 314 %right COMMA
315 %right OR 315 %right OR
316 %right CAND 316 %right CAND
317 %nonassoc EQ NE LT LE GT GE 317 %nonassoc EQ NE LT LE GT GE
318 %right ARROW 318 %right ARROW
319 %left WITH
319 %right PLUSPLUS MINUSMINUS 320 %right PLUSPLUS MINUSMINUS
320 %right STAR 321 %right STAR
321 %left NOT 322 %left NOT
322 %nonassoc TWIDDLE 323 %nonassoc TWIDDLE
323 %nonassoc DOLLAR 324 %nonassoc DOLLAR
658 in 659 in
659 (EApp (e, (EAbs ("_", SOME t, eexp2), loc)), loc) 660 (EApp (e, (EAbs ("_", SOME t, eexp2), loc)), loc)
660 end) 661 end)
661 | eexp EQ eexp (native_op ("eq", eexp1, eexp2, s (eexp1left, eexp2right))) 662 | eexp EQ eexp (native_op ("eq", eexp1, eexp2, s (eexp1left, eexp2right)))
662 | eexp NE eexp (native_op ("ne", eexp1, eexp2, s (eexp1left, eexp2right))) 663 | eexp NE eexp (native_op ("ne", eexp1, eexp2, s (eexp1left, eexp2right)))
664 | eexp WITH cterm EQ eexp (EWith (eexp1, cterm, eexp2), s (eexp1left, eexp2right))
663 665
664 eargs : earg (earg) 666 eargs : earg (earg)
665 | eargl (eargl) 667 | eargl (eargl)
666 668
667 eargl : eargp eargp (eargp1 o eargp2) 669 eargl : eargp eargp (eargp1 o eargp2)
769 (EPrim (Prim.String ""), s (XML_BEGINleft, XML_ENDright))), 771 (EPrim (Prim.String ""), s (XML_BEGINleft, XML_ENDright))),
770 s (XML_BEGINleft, XML_ENDright)) 772 s (XML_BEGINleft, XML_ENDright))
771 773
772 | LPAREN query RPAREN (query) 774 | LPAREN query RPAREN (query)
773 | LPAREN CWHERE sqlexp RPAREN (sqlexp) 775 | LPAREN CWHERE sqlexp RPAREN (sqlexp)
776 | LPAREN SQL sqlexp RPAREN (sqlexp)
774 777
775 | LPAREN INSERT INTO texp LPAREN fields RPAREN VALUES LPAREN sqlexps RPAREN RPAREN 778 | LPAREN INSERT INTO texp LPAREN fields RPAREN VALUES LPAREN sqlexps RPAREN RPAREN
776 (let 779 (let
777 val loc = s (LPAREN1left, RPAREN3right) 780 val loc = s (LPAREN1left, RPAREN3right)
778 781