# HG changeset patch # User kono # Date 1319781441 -32400 # Node ID c8e3b90ba2d95e26c301d67875c1ca8719c94688 # Parent 745c62bbc200207b20adeca9b8573419bfdcbed0 check diff -r 745c62bbc200 -r c8e3b90ba2d9 Makefile --- a/Makefile Fri Nov 09 16:23:32 2007 +0900 +++ b/Makefile Fri Oct 28 14:57:21 2011 +0900 @@ -1,10 +1,10 @@ -TEST = s-imac +TEST = s-imac64 CC = gcc -CFLAGS = -g +CFLAGS = -g -O -Wall YYFLAGS = -v -# COMPILER = s-compile.o s-token.o -COMPILER = s-tree-compile.o s-token.o +COMPILER = s-compile.o s-token.o +# COMPILER = s-tree-compile.o s-token.o # COMPILER = s-yacc.o s-token.o # TARGET = token calc s-calc s-prefix s-rpn s-09 s-intel s-intel-r s-sparc s-rs6k s-m68k s-ppc s-imac @@ -37,6 +37,8 @@ $(CC) $(CFLAGS) -o $@ $^ s-imac: $(COMPILER) s-code-intel-mac.o $(CC) $(CFLAGS) -o $@ $^ +s-imac64: $(COMPILER) s-code-intel64-mac.o + $(CC) $(CFLAGS) -o $@ $^ s-sparc: $(COMPILER) s-code-sparc.o $(CC) $(CFLAGS) -o $@ $^ s-rs6k: $(COMPILER) s-code-rs6k.o diff -r 745c62bbc200 -r c8e3b90ba2d9 s-calc-r.c --- a/s-calc-r.c Fri Nov 09 16:23:32 2007 +0900 +++ b/s-calc-r.c Fri Oct 28 14:57:21 2011 +0900 @@ -15,6 +15,7 @@ static int mexpr(); static int term(); static int token(); +static void error(char *); static int @@ -159,6 +160,14 @@ } } +static int lineno = 0; + +void +error(char *msg) +{ + fprintf(stderr,"%s on line %d\n",msg, lineno); +} + int main() { @@ -170,6 +179,7 @@ d = expr(); printf("%s = 0x%08x = %d\n",buf,d,d); fflush(stdout); + lineno++; } return 0; } diff -r 745c62bbc200 -r c8e3b90ba2d9 s-token.c --- a/s-token.c Fri Nov 09 16:23:32 2007 +0900 +++ b/s-token.c Fri Oct 28 14:57:21 2011 +0900 @@ -33,7 +33,7 @@ } if('0'<=c && c<='9') { /* Decimal */ d = c-'0'; - while(c= *ptr++) { + while((c= *ptr++)) { if('0'<=c && c<='9') { d = d*10 + (c - '0'); } else { diff -r 745c62bbc200 -r c8e3b90ba2d9 s-yacc.y --- a/s-yacc.y Fri Nov 09 16:23:32 2007 +0900 +++ b/s-yacc.y Fri Oct 28 14:57:21 2011 +0900 @@ -19,6 +19,8 @@ #define YYSTYPE nodeptr static node *new_node(); +static void free_node(node *d); +static void code_generate(node *d); %} %% @@ -101,8 +103,7 @@ } static void -free_node(d) -node *d; +free_node(node *d) { if(d->left) { free_node(d->left); @@ -114,8 +115,7 @@ } static void -code_generate(d) -node *d; +code_generate(node *d) { int assign; if(!d) return; /* compiler internal error.. */