qbe

Internal scc patchset buffer for QBE
Log | Files | Refs | README | LICENSE

commit 7ff4186aa88118a0f3a7bcd2762db82d09a33bbc
parent d3530271f8c0296170d306be276231cb9ebc51e8
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date:   Mon, 29 Feb 2016 10:23:36 -0500

patch minic to new string syntax

Diffstat:
Mminic/minic.y | 12++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/minic/minic.y b/minic/minic.y @@ -893,20 +893,20 @@ yylex() i = 0; n = 32; p = alloc(n); - p[0] = '"'; - for (i=1;; i++) { + strcpy(p, "{ b \""); + for (i=5;; i++) { c = getchar(); if (c == EOF) die("unclosed string literal"); - if (i+1 >= n) { + if (i+8 >= n) { p = memcpy(alloc(n*2), p, n); n *= 2; } p[i] = c; - if (c == '"' && (!i || p[i-1]!='\\')) + if (c == '"' && p[i-1]!='\\') break; } - p[i+1] = 0; + strcpy(&p[i], "\", b 0 }"); if (nglo == NGlo) die("too many globals"); ini[nglo] = p; @@ -950,6 +950,6 @@ main() if (yyparse() != 0) die("parse error"); for (i=1; i<nglo; i++) - fprintf(of, "data $glo%d = {b %s, b 0 }\n", i, ini[i]); + fprintf(of, "data $glo%d = %s\n", i, ini[i]); return 0; }