diff options
Diffstat (limited to 'cuobjdump_to_ptxplus/cuobjdump.l')
| -rw-r--r-- | cuobjdump_to_ptxplus/cuobjdump.l | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/cuobjdump_to_ptxplus/cuobjdump.l b/cuobjdump_to_ptxplus/cuobjdump.l deleted file mode 100644 index fcd43f8..0000000 --- a/cuobjdump_to_ptxplus/cuobjdump.l +++ /dev/null @@ -1,96 +0,0 @@ - /*Lex file for output of cuobjdump*/ -%{ -#include <stdio.h> -#include <string.h> -#include "cuobjdump_parser.h" - -#define YY_NEVER_INTERACTIVE 1 - -#define YYDEBUG 1 - -#define yylval cuobjdump_lval - -void cuobjdump_error(const char*); -%} - -%option stack -%option noyywrap -%option yylineno - -%s ptxcode -%s sasscode -%s elfcode -%s header -%s endheader - -alpha [a-zA-Z] -numeric [0-9] -whitespace [ \t] -newline [\n] -notnewline [^\n] -newlines {newline}+ -%% - - -"ptxasOptions"{notnewline}*{newline} -[1-9]{numeric}* yylval.string_value = strdup(yytext); return DECIMAL; - - -"Fatbin ptx code:"{newline} { - yy_push_state(ptxcode); - yy_push_state(header); - yylval.string_value = strdup(yytext); - return PTXHEADER; -} -"Fatbin elf code:"{newline} { - yy_push_state(elfcode); - yy_push_state(header); - yylval.string_value = strdup(yytext); - return ELFHEADER; -} - /*PTX code tokens*/ -<ptxcode>{notnewline}*{newline} yylval.string_value = strdup(yytext); return PTXLINE; - - /*ELF code tokens*/ -<elfcode>{whitespace}*"code for sm_"{numeric}+{newline} { - BEGIN(sasscode); - yylval.string_value = strdup(yytext); - return SASSLINE; -} -<elfcode>{notnewline}*{newline} yylval.string_value = strdup(yytext); return ELFLINE; - - /*SASS code tokens*/ -<sasscode>{notnewline}*{newline} yylval.string_value = strdup(yytext); return SASSLINE; - - /*Header tokens*/ -<header>[[:alnum:]_]+ yylval.string_value = strdup(yytext); return IDENTIFIER; -<header>"================" return H_SEPARATOR; -<header>"arch = " return H_ARCH; -<header>"code version = " return H_CODEVERSION; -<header>\[{numeric},{numeric}\] return CODEVERSION; -<header>"producer = " return H_PRODUCER; -<header>"host = " return H_HOST; -<header>"compile_size = " return H_COMPILESIZE; -<header>"identifier = " BEGIN(endheader); return H_IDENTIFIER; -<header>"has debug info"{newline} - - /* Looking for the identifier (filename) then the header is done */ -<endheader>[[:alnum:]_\.]+{newline} yylval.string_value = strdup(yytext); yy_pop_state(); return FILENAME; - - -{newline} return NEWLINE; - - /*Reached end of file*/ -<<EOF>> return 0; - - /*No other rule matched. Throw an error*/ -. cuobjdump_error("Invalid token"); - -%% -void cuobjdump_error(const char* message) -{ - printf(" "); printf(message); printf(" near \""); printf(yytext); printf("\""); - printf(" on line "); - char line[5]; sprintf(line, "%i", yylineno); printf(line); - printf("\n"); -} |
