Here's what I've input and the error I receive:

Here's my sample input:

%{
#include <stdio.h>
#include <string.h>
char identifier[1000][100];
char linesFound[1000][1000];
void insertId(int, const char*);
int i = 0;
int lineNum = 1;
%}
NEWLINE \n
%x comment
%x double_quote
%%
{NEWLINE} lineNum++;
auto ;
break ;
float ;
for ;
goto ;
if ;
int ;
long ;
void ;
while ;
[*]*[a-zA-Z][a-zA-Z0-9_]* insertId(lineNum, yytext);
[^a-zA-Z0-9_\n\/*"']+ ;
[0-9]+ ;
%%
main()
{
yylex();
if(lineNum==1)
{
printf("The number of lines we have are: %d\n", lineNum);
}
else
{
printf("The number of lines we have are: %d\n", lineNum-1);
}
int m;
for(m=0; m<i; m++)
{
printf("identifier[%d] is: \"%s\" found on lines: %s\n", m, identifier[m], linesFound[m]);
}
}
void insertId(int nLine, const char* s)
{
char num[2];
sprintf ( num, "%d", nLine);
int iter;
for(iter = 0; iter <= i; iter++)
{
if ( strcmp(identifier[iter], s) == 0 )
{
strcat( linesFound[iter], ", " );
strcat( linesFound[iter], num );
return;
}
}
strcpy( identifier[i], s );
// strcat( identifier[i], ": " );
strcpy( linesFound[i], num );
i++;
}

New Topic/Question
Reply



MultiQuote



|