]> Joshua Wise's Git repositories - snipe.git/blobdiff - parse/l5.grm
Add cast syntax.
[snipe.git] / parse / l5.grm
index 39f33cd2ad7cb5d1e271a75c7f13136ea4ce7ebd..bf2e2616f3ac4a722f592fed243b2970006f1427 100644 (file)
@@ -188,6 +188,7 @@ exp        : LPAREN exp RPAREN      (exp)
            | INTNUM                 (mark (A.ConstExp(INTNUM),(INTNUMleft,INTNUMright)))
            | STRING                 (mark (A.StringExp(STRING),(STRINGleft,STRINGright)))
            | IDENT                  (mark (A.Var(IDENT), (IDENTleft,IDENTright)))
            | INTNUM                 (mark (A.ConstExp(INTNUM),(INTNUMleft,INTNUMright)))
            | STRING                 (mark (A.StringExp(STRING),(STRINGleft,STRINGright)))
            | IDENT                  (mark (A.Var(IDENT), (IDENTleft,IDENTright)))
+           | LBRACKET vtype RBRACKET exp %prec UNARY (mark (A.Cast (vtype, exp), (LBRACKETleft, expright)))
            | exp DOT IDENT          (mark (A.Member(exp, IDENT), (expleft, IDENTright)))
            | exp ARROW IDENT        (mark (A.DerefMember(exp, IDENT), (expleft, IDENTright)))
            | STAR exp %prec UNARY   (mark (A.Dereference(exp), (STARleft, expright)))
            | exp DOT IDENT          (mark (A.Member(exp, IDENT), (expleft, IDENTright)))
            | exp ARROW IDENT        (mark (A.DerefMember(exp, IDENT), (expleft, IDENTright)))
            | STAR exp %prec UNARY   (mark (A.Dereference(exp), (STARleft, expright)))
This page took 0.022207 seconds and 4 git commands to generate.