All pastes #34917 Raw Edit

Anonymous

public text v1 · immutable
#34917 ·published 2005-12-26 17:06 UTC
rendered paste body
digit [0-9]
letter [a-zA-Z]
%%


[ \t\n]				;
[ \t]*#.*\n				;
\/\*(.|\n)*\*\/			;

0[0-7]+(u?|U?|l?|L?)			fprintf(yyout,"\nOCTAL CONST\t%s",yytext);
{digit}*[.]{digit}*			fprintf(yyout,"\nFLOAT CONST\t%s",yytext);
(0x|0X)[0-9a-fA-F]*(u?|U?|l?|L?)	fprintf(yyout,"\nHEX CONST\t%s",yytext);
{digit}+(u?|U?|l?|L?)          	fprintf(yyout,"\nDEC CONST\t%s",yytext);
[-\[\]\.+\*\/(\?)%<>{}&|\^!:]	fprintf(yyout,"\n\t%s",yytext);
[,;:]						fprintf(yyout,"\nDELIM\t%s",yytext);
'(.|\n)'			fprintf(yyout,"\nCHAR-CONST\t%s",yytext);
\"([^\"]|\n)*\"		fprintf(yyout,"\nSTRING\t%s",yytext);
"++"				fprintf(yyout,"\n\t++");
"="				fprintf(yyout,"\n\t=");
"--"				fprintf(yyout,"\n\t--");
"*="				fprintf(yyout,"\n\t%s",yytext);
"/="				fprintf(yyout,"\n\t%s",yytext);
"+="				fprintf(yyout,"\n\t%s",yytext);
"-="				fprintf(yyout,"\n\t%s",yytext);
"->"				fprintf(yyout,"\n\t%s",yytext);
"&&"				fprintf(yyout,"\n\t%s",yytext);
"||"				fprintf(yyout,"\n\t%s",yytext);
"&="				fprintf(yyout,"\n\t%s",yytext);
"|="				fprintf(yyout,"\n\t%s",yytext);
"!="				fprintf(yyout,"\n\t%s",yytext);
"^="				fprintf(yyout,"\n\t%s",yytext);
"<<"				fprintf(yyout,"\n\t%s",yytext);
">>"				fprintf(yyout,"\n\t%s",yytext);
"<<="				fprintf(yyout,"\n\t%s",yytext);
">>="				fprintf(yyout,"\n\t%s",yytext);
"=="				fprintf(yyout,"\n\t%s",yytext);
">="				fprintf(yyout,"\n\t%s",yytext);
"<="				fprintf(yyout,"\n\t%s",yytext);
"%="				fprintf(yyout,"\n\t%s",yytext);
"const"			fprintf(yyout,"\nKEY\t%s",yytext);		
"continue"			fprintf(yyout,"\nKEY\t%s",yytext);	
"break"			fprintf(yyout,"\nKEY\t%s",yytext);
"default"			fprintf(yyout,"\nKEY\t%s",yytext);
"extern"			fprintf(yyout,"\nKEY\t%s",yytext);
"goto"			fprintf(yyout,"\nKEY\t%s",yytext);
"return"			fprintf(yyout,"\nKEY\t%s",yytext);
"sizeof"			fprintf(yyout,"\nKEY\t%s",yytext);
"if"				fprintf(yyout,"\nKEY\t%s",yytext);
"else"			fprintf(yyout,"\nKEY\t%s",yytext);
"enum"			fprintf(yyout,"\nKEY\t%s",yytext);
"auto"			fprintf(yyout,"\nKEY\t%s",yytext);
"register"			fprintf(yyout,"\nKEY\t%s",yytext);
"static"			fprintf(yyout,"\nKEY\t%s",yytext);
"struct"			fprintf(yyout,"\nKEY\t%s",yytext);
"typedef"			fprintf(yyout,"\nKEY\t%s",yytext);
"union"			fprintf(yyout,"\nKEY\t%s",yytext);
"void"			fprintf(yyout,"\nKEY\t%s",yytext);
"char"			fprintf(yyout,"\nKEY\t%s",yytext);
"int" 			fprintf(yyout,"\nKEY\t%s",yytext);
"float"			fprintf(yyout,"\nKEY\t%s",yytext);
"double"			fprintf(yyout,"\nKEY\t%s",yytext);
"signed"			fprintf(yyout,"\nKEY\t%s",yytext);
"unsigned"			fprintf(yyout,"\nKEY\t%s",yytext);
"short"			fprintf(yyout,"\nKEY\t%s",yytext);
"long"			fprintf(yyout,"\nKEY\t%s",yytext);
"switch"			fprintf(yyout,"\nKEY\t%s",yytext);
"case"			fprintf(yyout,"\nKEY\t%s",yytext);
"do"				fprintf(yyout,"\nKEY\t%s",yytext);
"for"				fprintf(yyout,"\nKEY\t%s",yytext);
"while"			fprintf(yyout,"\nKEY\t%s",yytext);
"far"				fprintf(yyout,"\nKEY\t%s",yytext);
"volatile" 			fprintf(yyout,"\nKEY\t%s",yytext);
{letter}({letter}|{digit})*  fprintf(yyout,"\n%s\t%s","ID",yytext);
fprintf(yyout,"\n%s",yyline);
%%
int yywrap(void)
{
	return 1;
}

int main(int argc,char *argv[])
{
	yyin=fopen(argv[1],"r");
	yyout=fopen("tokens.txt","w");
	yylex();
	fclose(yyin);
	fclose(yyout);
	return 0;
}