All pastes #770501 Raw Edit

Untitled

public c v1 · immutable
·published 2007-11-12 10:43 UTC
rendered paste body
/*学籍番号:05T5018B名前  :カイルン ニサク実行結果:予約語 = 417算術演算子 = 111記号 = 647関係演算子 = 99代入演算子 = 199数字 = 281識別子 = 1435*/%{int tNumber;int tIdent;int tReservedWord;int tOperator;int tSymbol;int tAssignmentOperator;int tComparativeOperator;%}DIGIT [0-9]ALPHA [a-zA-Z]OPERA [+*/\-]SYM [.,;|]%%"begin"	    {printf("%s ", yytext); tReservedWord++;}"call"	    {printf( "%s ", yytext); tReservedWord++;}"const"	    {printf( "%s ", yytext); tReservedWord++;}"do"        {printf( "%s ", yytext); tReservedWord++;}"else"	    {printf( "%s ", yytext); tReservedWord++;}"end"	    {printf( "%s ", yytext); tReservedWord++;}"if"        {printf( "%s ", yytext); tReservedWord++;}"odd"		{printf( "%s ", yytext); tReservedWord++;}"procedure" {printf( "%s ", yytext); tReservedWord++;}"then"	    {printf( "%s ", yytext); tReservedWord++;}"var"	    {printf( "%s ", yytext); tReservedWord++;}"while"	    {printf( "%s ", yytext); tReservedWord++;}">"			{printf( "gt "); tComparativeOperator++;}"<"			{printf( "lt "); tComparativeOperator++;}">="		{printf( "geq ");tComparativeOperator++;}"<="		{printf( "leq ");tComparativeOperator++;}"="			{printf( "eq "); tComparativeOperator++;}"!="		{printf( "neq ");tComparativeOperator++;}":="		                {printf( "become "); tAssignmentOperator++;}{SYM}		                {printf( "%s ", yytext); tSymbol++;}{OPERA}		                {printf( "%s ", yytext); tOperator++;}{DIGIT}+                	{printf( "number(%s) ", yytext); tNumber++;}{ALPHA}({ALPHA}|{DIGIT})*	{fprintf(yyout, "ident(%s) ", yytext); tIdent++;}"\t"	{printf("\t");}"\n"	{printf("\n");} ;.			                {printf( "%s ", yytext);}%%main(int argc, char *argv[]) {	tNumber = 0;	tIdent = 0;	tReservedWord = 0;	tOperator = 0;	tSymbol = 0;	tAssignmentOperator = 0;	tComparativeOperator = 0;	if(argc > 1) {		yyin = fopen(argv[1], "r");		if(argc == 3) {			yyout = fopen(argv[2], "w");		}	}	yylex();	printf( "予約語 = %d\n", tReservedWord);	printf("算術演算子 = %d\n", tOperator);	printf("記号 = %d\n", tSymbol);	printf( "関係演算子 = %d\n", tComparativeOperator);	printf( "代入演算子 = %d\n", tAssignmentOperator);	printf( "数字 = %d\n", tNumber);	printf( "識別子 = %d\n", tIdent);}