|
Message
From: OpenCores CVS Agent<cvs@o...>
Date: Tue Jan 18 16:25:45 CET 2005
Subject: [cvs-checkins] MODIFIED: sc2v ...
Date: 00/05/01 18:16:25 Modified: sc2v/src sc2v_step1.l sc2v_step2.l Log: Contributions by Harald Devos Revision Changes Path 1.4 +92 -85 sc2v/src/sc2v_step1.l http://www.opencores.org/cvsweb.shtml/sc2v/src/sc2v_step1.l.diff?r1=1.3&r2=1.4 (In the diff below, changes in quantity of whitespace are not shown.) Index: sc2v_step1.l =================================================================== RCS file: /cvsroot/jcastillo/sc2v/src/sc2v_step1.l,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- sc2v_step1.l 17 Jan 2005 11:04:45 -0000 1.3 +++ sc2v_step1.l 18 Jan 2005 15:24:34 -0000 1.4 @@ -28,54 +28,61 @@ extern int yylval; +int includefound = 0; +int linecomment = 0; +int multilinecomment = 0; %} %% -"void" return VOID; -"true" return TTRUE; -"false" return TFALSE; +"void" if(!includefound & !linecomment & !multilinecomment) return VOID; else {yylval=(int)strdup(yytext);} return WORD; +"true" if(!includefound & !linecomment & !multilinecomment) return TTRUE; else {yylval=(int)strdup(yytext);} return WORD; +"false" if(!includefound & !linecomment & !multilinecomment) return TFALSE; else {yylval=(int)strdup(yytext);} return WORD; [0-9]+ yylval=atoi(yytext); return NUMBER; -"::" return TWODOUBLEPOINTS; -sc_int return SC_INT; -sc_uint return SC_UINT; -sc_bigint return SC_BIGINT; -sc_biguint return SC_BIGUINT; -bool return BOOL; -">" return BIGGER; -"<" return LOWER; -"{" return OPENKEY; -"}" return CLOSEKEY; -"(" return OPENPAR; -")" return CLOSEPAR; -"[" return OPENCORCH; -"]" return CLOSECORCH; -".write" return WRITE; -"switch" return SWITCH; -"case" return CASE; -"default" return DEFAULT; -"break" return BREAK; -".read" return READ; -".range" return RANGE; +"::" if(!includefound & !linecomment & !multilinecomment) return TWODOUBLEPOINTS; else {yylval=(int)strdup(yytext);} return WORD; +sc_int if(!includefound & !linecomment & !multilinecomment) return SC_INT; else {yylval=(int)strdup(yytext);} return WORD; +sc_uint if(!includefound & !linecomment & !multilinecomment) return SC_UINT; else {yylval=(int)strdup(yytext);} return WORD; +sc_bigint if(!includefound & !linecomment & !multilinecomment) return SC_BIGINT; else {yylval=(int)strdup(yytext);} return WORD; +sc_biguint if(!includefound & !linecomment & !multilinecomment) return SC_BIGUINT; else {yylval=(int)strdup(yytext);} return WORD; +bool if(!includefound & !linecomment & !multilinecomment) return BOOL; else {yylval=(int)strdup(yytext);} return WORD; +">" if(!includefound & !linecomment & !multilinecomment) return BIGGER; else {yylval=(int)strdup(yytext);} return WORD; +"<" if(!includefound & !linecomment & !multilinecomment) return LOWER; else {yylval=(int)strdup(yytext);} return WORD; +"{" if(!includefound & !linecomment & !multilinecomment) return OPENKEY; else {yylval=(int)strdup(yytext);} return WORD; +"}" if(!includefound & !linecomment & !multilinecomment) return CLOSEKEY; else {yylval=(int)strdup(yytext);} return WORD; +"(" if(!includefound & !linecomment & !multilinecomment) return OPENPAR; else {yylval=(int)strdup(yytext);} return WORD; +")" if(!includefound & !linecomment & !multilinecomment) return CLOSEPAR; else {yylval=(int)strdup(yytext);} return WORD; +"[" if(!includefound & !linecomment & !multilinecomment) return OPENCORCH; else {yylval=(int)strdup(yytext);} return WORD; +"]" if(!includefound & !linecomment & !multilinecomment) return CLOSECORCH; else {yylval=(int)strdup(yytext);} return WORD; +".write" if(!includefound & !linecomment & !multilinecomment) return WRITE; else {yylval=(int)strdup(yytext);} return WORD; +"switch" if(!includefound & !linecomment & !multilinecomment) return SWITCH; else {yylval=(int)strdup(yytext);} return WORD; +"case" if(!includefound & !linecomment & !multilinecomment) return CASE; else {yylval=(int)strdup(yytext);} return WORD; +"default" if(!includefound & !linecomment & !multilinecomment) return DEFAULT; else {yylval=(int)strdup(yytext);} return WORD; +"break" if(!includefound & !linecomment & !multilinecomment) return BREAK; else {yylval=(int)strdup(yytext);} return WORD; +".read" if(!includefound & !linecomment & !multilinecomment) return READ; else {yylval=(int)strdup(yytext);} return WORD; +".range" if(!includefound & !linecomment & !multilinecomment) return RANGE; else {yylval=(int)strdup(yytext);} return WORD; [a-zA-Z][_a-zA-Z0-9]* yylval=(int)strdup(yytext); return WORD; [.:"^"!%()=/+*_"&""?""|""\\"] yylval=(int)strdup(yytext); return SYMBOL; "-" yylval=(int)strdup(yytext); return SYMBOL; "~" yylval=(int)strdup(yytext); return SYMBOL; "@" yylval=(int)strdup(yytext); return SYMBOL; -"," return COLON; -";" return SEMICOLON; +"," if(!includefound & !linecomment & !multilinecomment) return COLON; else {yylval=(int)strdup(yytext);} return WORD; +";" if(!includefound & !linecomment & !multilinecomment) return SEMICOLON; else {yylval=(int)strdup(yytext);} return WORD; [" "]+ /*Ignore white spaces*/ "\t" return TAB; /*Ignore Tab*/ -"\n" return NEWLINE; -"0x" return HEXA; -"$" return DOLLAR; /* Ignore $ */ -"(int)" return INTCONV; /* Ignore int type conversions*/ - -"#define" return DEFINE; -"#include" -"#ifdef" return PIFDEF; -"#else" return PELSE;
-"#endif" return PENDDEF;
-
+"\n" if (linecomment) linecomment=0; else if(includefound) includefound=0; return NEWLINE;
+"\\\n" /* no new line */
+"0x" if(!includefound & !linecomment & !multilinecomment) return HEXA; else {yylval=(int)strdup(yytext);} return WORD;
+"$" if(!includefound & !linecomment & !multilinecomment) return DOLLAR; else {yylval=(int)strdup(yytext);} return WORD;/* Ignore if(!includefound & !linecomment & !multilinecomment) $ */
+"(int)" if(!includefound & !linecomment & !multilinecomment) return INTCONV; else {yylval=(int)strdup(yytext);} return WORD;/* Ignore int type if(!includefound & !linecomment & !multilinecomment) conversions*/
+
+"#define" if(!includefound & !linecomment & !multilinecomment) return DEFINE; else {yylval=(int)strdup(yytext);} return WORD;
+"#include" includefound = 1;
+"#ifdef" if(!includefound & !linecomment & !multilinecomment) return PIFDEF; else {yylval=(int)strdup(yytext);} return WORD;
+"#else" if(!includefound & !linecomment & !multilinecomment) return PELSE; else {yylval=(int)strdup(yytext);} return WORD;
+"#endif" if(!includefound & !linecomment & !multilinecomment) return PENDDEF; else {yylval=(int)strdup(yytext);} return WORD;
+
+"//" if (!multilinecomment) linecomment = 1; yylval=(int)strdup(yytext); return WORD;
+"/*" if (!linecomment) multilinecomment = 1; yylval=(int)strdup(yytext); return WORD;
+"*/" if (multilinecomment) multilinecomment = 0; yylval=(int)strdup(yytext); return WORD;
"//"[ ]*[tT][rR][aA][nN][sS][lL][aA][tT][eE][ ]*[oO][fF][fF] return TRANSLATEOFF; /*Translate directive*/
"//"[ ]*[tT][rR][aA][nN][sS][lL][aA][tT][eE][ ]*[oO][nN] return TRANSLATEON; /*Translate directive*/
1.3 +94 -93 sc2v/src/sc2v_step2.l
http://www.opencores.org/cvsweb.shtml/sc2v/src/sc2v_step2.l.diff?r1=1.2&r2=1.3
(In the diff below, changes in quantity of whitespace are not shown.)
Index: sc2v_step2.l
===================================================================
RCS file: /cvsroot/jcastillo/sc2v/src/sc2v_step2.l,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- sc2v_step2.l 20 Dec 2004 17:49:08 -0000 1.2
+++ sc2v_step2.l 18 Jan 2005 15:24:35 -0000 1.3
@@ -74,13 +74,14 @@
}
"*" if(!includefound & !linecomment & !multilinecomment) return ASTERISCO;
"\n" includefound = 0; linecomment = 0;
+"\\\n" /* no new line */
"$" /* ignore */
"." /* ignore */
":" /* ignore */
"#include" includefound = 1;
-"//" linecomment = 1;
-"/*" multilinecomment = 1;
-"*/" multilinecomment = 0;
+"//" if (!multilinecomment) linecomment = 1;
+"/*" if (!linecomment) multilinecomment = 1;
+"*/" if (multilinecomment) multilinecomment = 0;
"/" /* ignore */
"-"
"#"
|
 |