diff options
Diffstat (limited to 'parser.ll')
-rw-r--r-- | parser.ll | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/parser.ll b/parser.ll deleted file mode 100644 index 0545e1b..0000000 --- a/parser.ll +++ /dev/null @@ -1,97 +0,0 @@ -/***************************************************************************** - Copyright (C) 2008 University of Southern California. - All Rights Reserved. - - Purpose: - CHiLL script lexical analysis - - Update history: - created by Chun Chen, Jan 2008 -*****************************************************************************/ - -%{ -#include <stdio.h> -#include <string.h> -#include <vector> -#include <map> -#include "parser.tab.hh" - -extern std::map<std::string, int> parameter_tab; -extern bool is_interactive; -extern const char *PROMPT_STRING; -%} - -%s LINE COMMENT FILE_NAME PROCEDURE_NAME -%option yylineno -%option noyywrap - -%% -# BEGIN(COMMENT); -<COMMENT>.* /* comment */ -source BEGIN(FILE_NAME); return SOURCE; -<FILE_NAME>[^ \t\n:#]+ yylval.name = new char[yyleng+1]; strcpy(yylval.name, yytext); return FILENAME; -procedure BEGIN(LINE); return PROCEDURE; -loop BEGIN(LINE); return LOOP; -format BEGIN(FILE_NAME); return FORMAT; -original BEGIN(LINE); return ORIGINAL; -permute BEGIN(LINE); return PERMUTE; -pragma BEGIN(LINE); return PRAGMA; -prefetch BEGIN(LINE); return PREFETCH; -tile BEGIN(LINE); return TILE; -datacopy BEGIN(LINE); return DATACOPY; -datacopy_privatized BEGIN(LINE); return DATACOPY_PRIVATIZED; -unroll BEGIN(LINE); return UNROLL; -unroll_extra BEGIN(LINE); return UNROLL_EXTRA; -split BEGIN(LINE); return SPLIT; -nonsingular BEGIN(LINE); return NONSINGULAR; -print BEGIN(LINE); return PRINT; -dep BEGIN(LINE); return PRINT_DEP; -code BEGIN(LINE); return PRINT_CODE; -space BEGIN(LINE); return PRINT_IS; -exit BEGIN(LINE); return EXIT; -known BEGIN(LINE); return KNOWN; -strided BEGIN(LINE); return STRIDED; -counted BEGIN(LINE); return COUNTED; -num_statement BEGIN(LINE); return NUM_STATEMENT; -ceil BEGIN(LINE); return CEIL; -floor BEGIN(LINE); return FLOOR; -true BEGIN(LINE); yylval.bool_val = true; return TRUEORFALSE; -false BEGIN(LINE); yylval.bool_val = false; return TRUEORFALSE; -skew BEGIN(LINE); return SKEW; -shift BEGIN(LINE); return SHIFT; -scale BEGIN(LINE); return SCALE; -reverse BEGIN(LINE); return REVERSE; -shift_to BEGIN(LINE); return SHIFT_TO; -fuse BEGIN(LINE); return FUSE; -peel BEGIN(LINE); return PEEL; -distribute BEGIN(LINE); return DISTRIBUTE; -remove_dep BEGIN(LINE); return REMOVE_DEP; -structure BEGIN(LINE); return PRINT_STRUCTURE; -[ \t]+ /* ignore whitespaces */ -\n BEGIN(INITIAL); return (int)yytext[0]; -L[0-9]+ yylval.val = atoi(&yytext[1]); return LEVEL; -[a-zA-Z_][a-zA-Z_0-9]* { - BEGIN(LINE); - yylval.name = new char[yyleng+1]; - strcpy(yylval.name, yytext); - return VARIABLE; - } -\"(\\.|[^\\"])*\" { - BEGIN(LINE); - std::string str = std::string(yytext); - yylval.name = new char[yyleng-1]; - str = str.substr(1,yyleng-2); - strcpy(yylval.name, str.c_str()); - return STRING; - } -[0-9]+ yylval.val = atoi(yytext); return NUMBER; -\>\= return GE; -\<\= return LE; -\!\= return NE; -\=\= return EQ; -. return (int)yytext[0]; -<LINE><<EOF>> BEGIN(INITIAL); unput('\n'); - -%% - - |