diff options
| author | Mengchi Zhang <[email protected]> | 2019-05-27 17:27:58 -0400 |
|---|---|---|
| committer | Mengchi Zhang <[email protected]> | 2019-05-27 17:27:58 -0400 |
| commit | 913865e6ac7d0f7c12faeb8430dc5724fdc4be80 (patch) | |
| tree | 3829491145e7650736d37741d263e8af7e9f2be6 /libcuda/cuobjdump.y | |
| parent | 112e85e32c08e9fa0a34bb0ec262d8e95df61e6b (diff) | |
Move some cuobjdump parser variables
Signed-off-by: Mengchi Zhang <[email protected]>
Diffstat (limited to 'libcuda/cuobjdump.y')
| -rw-r--r-- | libcuda/cuobjdump.y | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/libcuda/cuobjdump.y b/libcuda/cuobjdump.y index 66cbace..9c0c28d 100644 --- a/libcuda/cuobjdump.y +++ b/libcuda/cuobjdump.y @@ -30,6 +30,7 @@ #include <stdio.h> typedef void * yyscan_t; +#include "cuobjdump.h" extern void addCuobjdumpSection(int sectiontype); void setCuobjdumparch(const char* arch); @@ -37,23 +38,19 @@ void setCuobjdumpidentifier(const char* identifier); void setCuobjdumpptxfilename(const char* filename); void setCuobjdumpelffilename(const char* filename); void setCuobjdumpsassfilename(const char* filename); -int elfserial = 1; -int ptxserial = 1; -FILE *ptxfile; -FILE *elffile; -FILE *sassfile; -char filename [1024]; %} %define api.pure full %parse-param {yyscan_t scanner} +%parse-param {cuobjdump_parser* parser} %lex-param {yyscan_t scanner} +%lex-param {cuobjdump_parser* parser} %union { char* string_value; } %{ -int yylex(YYSTYPE * yylval_param, yyscan_t yyscanner); -void yyerror(yyscan_t yyscanner, const char* msg); +int yylex(YYSTYPE * yylval_param, yyscan_t yyscanner, cuobjdump_parser* parser); +void yyerror(yyscan_t yyscanner, cuobjdump_parser* parser, const char* msg); %} %token <string_value> H_SEPARATOR H_ARCH H_CODEVERSION H_PRODUCER H_HOST H_COMPILESIZE H_IDENTIFIER H_UNKNOWN H_COMPRESSED %token <string_value> CODEVERSION @@ -79,24 +76,24 @@ emptylines : emptylines NEWLINE section : PTXHEADER { addCuobjdumpSection(0); - snprintf(filename, 1024, "_cuobjdump_%d.ptx", ptxserial++); - ptxfile = fopen(filename, "w"); - setCuobjdumpptxfilename(filename); + snprintf(parser->filename, 1024, "_cuobjdump_%d.ptx", parser->ptxserial++); + parser->ptxfile = fopen(parser->filename, "w"); + setCuobjdumpptxfilename(parser->filename); } headerinfo compressedkeyword identifier ptxcode { - fclose(ptxfile); + fclose(parser->ptxfile); } | ELFHEADER { addCuobjdumpSection(1); - snprintf(filename, 1024, "_cuobjdump_%d.elf", elfserial); - elffile = fopen(filename, "w"); - setCuobjdumpelffilename(filename); + snprintf(parser->filename, 1024, "_cuobjdump_%d.elf", parser->elfserial); + parser->elffile = fopen(parser->filename, "w"); + setCuobjdumpelffilename(parser->filename); } headerinfo compressedkeyword identifier elfcode { - fclose(elffile); - snprintf(filename, 1024, "_cuobjdump_%d.sass", elfserial++); - sassfile = fopen(filename, "w"); - setCuobjdumpsassfilename(filename); + fclose(parser->elffile); + snprintf(parser->filename, 1024, "_cuobjdump_%d.sass", parser->elfserial++); + parser->sassfile = fopen(parser->filename, "w"); + setCuobjdumpsassfilename(parser->filename); } sasscode { - fclose(sassfile); + fclose(parser->sassfile); }; headerinfo : H_SEPARATOR NEWLINE @@ -118,13 +115,13 @@ identifier : H_IDENTIFIER FILENAME emptylines {setCuobjdumpidentifier($2);} compressedkeyword : H_COMPRESSED emptylines | ; -ptxcode : ptxcode PTXLINE {fprintf(ptxfile, "%s", $2);} +ptxcode : ptxcode PTXLINE {fprintf(parser->ptxfile, "%s", $2);} | ; -elfcode : elfcode ELFLINE {fprintf(elffile, "%s", $2);} +elfcode : elfcode ELFLINE {fprintf(parser->elffile, "%s", $2);} | ; -sasscode : sasscode SASSLINE {fprintf(sassfile, "%s", $2);} +sasscode : sasscode SASSLINE {fprintf(parser->sassfile, "%s", $2);} | ; |
