From: Joshua Wise Date: Sat, 25 Dec 2010 06:24:07 +0000 (-0500) Subject: Add string pasting support to the gramamr. X-Git-Url: http://git.joshuawise.com/snipe.git/commitdiff_plain/refs/heads/blargcpu?ds=sidebyside;hp=ab221774a414bdcc3fd6b8cae773c1489b88b051 Add string pasting support to the gramamr. --- diff --git a/parse/l5.grm b/parse/l5.grm index bf2e261..75c8bc9 100644 --- a/parse/l5.grm +++ b/parse/l5.grm @@ -51,6 +51,7 @@ fun make_lval (A.Var(id)) ext = id program of A.program | programx of A.program | stms of A.stm list + | stringcat of string | stm of A.stm | simp of A.stm | return of A.stm @@ -184,9 +185,12 @@ simpoption : (NONE) block : stm ([stm]) | LBRACE stms RBRACE (stms) +stringcat : STRING (STRING) + | STRING stringcat (STRING ^ stringcat) + exp : LPAREN exp RPAREN (exp) | INTNUM (mark (A.ConstExp(INTNUM),(INTNUMleft,INTNUMright))) - | STRING (mark (A.StringExp(STRING),(STRINGleft,STRINGright))) + | stringcat (mark (A.StringExp(stringcat),(stringcatleft,stringcatright))) | 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)))