From a644da892dbd55a7be1aed029dafebe28d26d27e Mon Sep 17 00:00:00 2001 From: Joshua Wise Date: Sat, 25 Dec 2010 01:24:07 -0500 Subject: [PATCH 1/1] Add string pasting support to the gramamr. --- parse/l5.grm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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))) -- 2.39.2