IFJ 05 (Jazyk C)
Detail souboru
Zdrojový kód
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lex.h"
int main(int argc, char **argv)
{
FILE *file_cfg;
file_cfg=NULL;
char *soubor;
if (argc == 2) // kontrola parametru
{
soubor=argv[1];
}
else
{
printf("Pocet parametru neni 2 \n");
return -1;
}
file_cfg = fopen(soubor, "r");
if (file_cfg != NULL)
{
end_file = 0;
int token;
while ((token = yylex(file_cfg)) != EOF)
{
if (token == ID)
{
printf("Tohle je ID a je v nem %s\n", yytext);
}
else
if (token == BIND)
{
printf("Tohle je BIND \n" );
}
else
if (token == NUM)
{
printf("Tohle je NUM a je v nem %d\n", yynum);
}
else
if (token == TEXT)
{
printf("Tohle je TEXT a je v nem %s\n", yytext);
}
else
if (token == LABEL)
{
printf("Tohle je LABEL a je v nem %s\n", yytext);
}
else
if (token == DBL)
{
printf("Tohle je DBL %f\n",yydbl);
}
else
if (token == ERR_SLASH_TEXT)
{
printf("Tohle je ERR_SLASH_TEXT\n");
}
else
if (token == ERR_BIND)
{
printf("Tohle je ERR_BIND\n");
}
else
if (token == ERR_LABEL)
{
printf("Tohle je ERR_LABEL\n");
}
else
if (token == ERR_DBL)
{
printf("Tohle je ERR_DBL \n");
}
else
if (token == ERR_INT_OFW)
{
printf("Tohle je ERR_INT_OFW \n");
}
else
if (token == NEQ)
{
printf("Tohle je NEQ \n");
}
else
if (token == LEQ)
{
printf("Tohle je LEQ \n");
}
else
if (token == GEQ)
{
printf("Tohle je GEQ \n");
}
else
if (token == GO_TO)
{
printf("Tohle je GO_TO \n");
}
else
if (token == ERR_NEQ)
{
printf("Tohle je ERR_NEQ \n");
}
else
if (token == ERR_GO_TO)
{
printf("Tohle je ERR_GO_TO \n");
}
else
printf("Token je neco uplne jineho: %c cislene %d\n", token, token);
}
}
else
printf("Soubor nelze otevrit.");
fclose(file_cfg);
return 0;
}