ソースを参照

fix exit status

ceriel 36 年 前
コミット
0f09afdd84
2 ファイル変更7 行追加3 行削除
  1. 3 0
      util/ceg/as_parser/help.c
  2. 4 3
      util/ceg/as_parser/pars.g

+ 3 - 0
util/ceg/as_parser/help.c

@@ -221,6 +221,8 @@ va_dcl
 	va_end(pvar);
 }
 
+extern int nerrors;
+
 /*VARARGS*/
 error(va_alist)
 va_dcl
@@ -228,6 +230,7 @@ va_dcl
 	char *fmt;
 	va_list pvar;
 
+	nerrors++;
 	va_start(pvar);
 	fmt = va_arg(pvar, char *);
 	fprint( STDERR, "!! ERROR :	");

+ 4 - 3
util/ceg/as_parser/pars.g

@@ -124,21 +124,22 @@ if_statement	: IF
 
 {
 
+int nerrors;
 static int saved = 0, token;
 
 
 LLmessage( inserted_token)
 int inserted_token;
 {
+	nerrors++;
 	if ( inserted_token == 0) {
 		fprint( STDERR, "Sytax error in line %d, ", yylineno);
 		print_token( LLsymb);
 		fprint( STDERR, "  will be deleted!!\n");
 	}
 	else if ( inserted_token < 0) {
-		fprint( STDERR, "Stack overflow in line %d, fatal error!\n",
+		fprint( STDERR, "Garbage at end, line %d!!\n",
 			 yylineno);
-		exit( 1);
 	}
 	else {
 		fprint( STDERR, "Sytax error in line %d, ", yylineno);
@@ -194,7 +195,7 @@ int lex_analyzer()
 main()
 {
 	table();
-	return( 0);
+	exit(nerrors);
 }
 
 }