summaryrefslogtreecommitdiff
path: root/src/urweb.grm
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-04-28 15:04:37 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-04-28 15:04:37 -0400
commit81138f15749d9fcd2b6056d4c4cd8c0edc5fce4b (patch)
treee4e2246dc15a7cbbf067401a21197b6fd17ea95b /src/urweb.grm
parent488033c82277ffe87f8fbd32ccd52298e0883743 (diff)
A view query works
Diffstat (limited to 'src/urweb.grm')
-rw-r--r--src/urweb.grm13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/urweb.grm b/src/urweb.grm
index ce078279..da817ab3 100644
--- a/src/urweb.grm
+++ b/src/urweb.grm
@@ -195,7 +195,7 @@ datatype attr = Class of exp | Normal of con * exp
| FN | PLUSPLUS | MINUSMINUS | MINUSMINUSMINUS | DOLLAR | TWIDDLE | CARET
| LET | IN
| STRUCTURE | SIGNATURE | STRUCT | SIG | END | FUNCTOR | WHERE | EXTERN | SQL
- | INCLUDE | OPEN | CONSTRAINT | CONSTRAINTS | EXPORT | TABLE | SEQUENCE
+ | INCLUDE | OPEN | CONSTRAINT | CONSTRAINTS | EXPORT | TABLE | SEQUENCE | VIEW
| COOKIE | STYLE
| CASE | IF | THEN | ELSE
@@ -438,6 +438,10 @@ decl : CON SYMBOL cargl2 kopt EQ cexp (let
| TABLE SYMBOL COLON cterm pkopt commaOpt cstopt([(DTable (SYMBOL, entable cterm, pkopt, cstopt),
s (TABLEleft, cstoptright))])
| SEQUENCE SYMBOL ([(DSequence SYMBOL, s (SEQUENCEleft, SYMBOLright))])
+ | VIEW SYMBOL EQ query ([(DView (SYMBOL, query),
+ s (VIEWleft, queryright))])
+ | VIEW SYMBOL EQ LBRACE eexp RBRACE ([(DView (SYMBOL, eexp),
+ s (VIEWleft, RBRACEright))])
| CLASS SYMBOL EQ cexp (let
val loc = s (CLASSleft, cexpright)
in
@@ -674,6 +678,13 @@ sgi : CON SYMBOL DCOLON kind ((SgiConAbs (SYMBOL, kind), s (CONleft,
in
(SgiVal (SYMBOL, t), loc)
end)
+ | VIEW SYMBOL COLON cexp (let
+ val loc = s (VIEWleft, cexpright)
+ val t = (CVar (["Basis"], "sql_view"), loc)
+ val t = (CApp (t, cexp), loc)
+ in
+ (SgiVal (SYMBOL, t), loc)
+ end)
| CLASS SYMBOL (let
val loc = s (CLASSleft, SYMBOLright)
val k = (KArrow ((KType, loc), (KType, loc)), loc)