projects
/
henge
/
webcc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
merged
[henge/webcc.git]
/
src
/
bin
/
tools
/
testapc.c
diff --git
a/src/bin/tools/testapc.c
b/src/bin/tools/testapc.c
index
4db0b86
..
77b825e
100644
(file)
--- a/
src/bin/tools/testapc.c
+++ b/
src/bin/tools/testapc.c
@@
-9,6
+9,7
@@
#include <stdio.h> //print
#include <errno.h> //errors
#include <string.h> //strnlen
#include <stdio.h> //print
#include <errno.h> //errors
#include <string.h> //strnlen
+#include <setjmp.h> //non-local jumps
/* Posix */
#include <stdlib.h> //exit
#include <unistd.h> //getopt
/* Posix */
#include <stdlib.h> //exit
#include <unistd.h> //getopt
@@
-28,9
+29,11
@@
int testapc_yyparse(void);
int test_yyparse(void);
extern //bison
int test_yyparse(void);
extern //bison
-int yyparse(void);
+int
yyparse(void);
extern //lexer.c
int lexer_init(void);
extern //lexer.c
int lexer_init(void);
+extern //scanner.c
+int scanner_init(void);
extern //apc.c
const char* cargs['Z'];
extern //apc.c
const char* cargs['Z'];
@@
-39,6
+42,9
@@
YYSTYPE yylval;
extern //lexer.c
int lexer(void);
extern //lexer.c
int lexer(void);
+static
+jmp_buf testapc_jump;
+
/* Ansi Term Colors */
#define RED "\x1b[31m"
#define GREEN "\x1b[32m"
/* Ansi Term Colors */
#define RED "\x1b[31m"
#define GREEN "\x1b[32m"
@@
-55,7
+61,8
@@
int main
( int argc,
char* argv[]
)
( int argc,
char* argv[]
)
-{ apc_main(argc, argv);
+{ setjmp(testapc_jump);
+ apc_main(argc, argv);
printf(GREEN "PASS" CLRC "\n");
exit(EXIT_SUCCESS);
}
printf(GREEN "PASS" CLRC "\n");
exit(EXIT_SUCCESS);
}
@@
-79,7
+86,7
@@
int testapc_yyparse
return YYABORT;
}
bPassedTest = 't';
return YYABORT;
}
bPassedTest = 't';
-
apc_main(0,NULL
);
+
longjmp(testapc_jump,0
);
}
return yyparse();
}
}
return yyparse();
}