Ejemplo n.º 1
0
int main(int argv, char **argc)
{
	initMe();
    //extern int yydebug;
    //int simb;

    if (argv < 2) 
    {
        printf("Digite o nome do arquivo!\n");
        exit(1);
    }
    
    yyin = fopen(argc[1],"r");
    printf("Arquivo de entrada: %s\n",argc[1]);

   
	//yydebug = 1;
    yyparse();
    //printTokens();
    
    printf("╔═╗╦ ╦╔═╗╔═╗╔═╗╔═╗╔═╗\n");
    printf("╚═╗║ ║║  ║╣ ╚═╗╚═╗║ ║\n");
    printf("╚═╝╚═╝╚═╝╚═╝╚═╝╚═╝╚═╝\n");
    printf("Analise sintatica feita com sucesso. Nenhum erro encontrado.\n");
    printf("Numero de linhas do arquivo de entrada: %d\n", getLineNumber());
    printf("TABELA HASH\n-----------\n");
    hashPrint();
    exit(0);
}
Ejemplo n.º 2
0
int main(int argc, char ** argv) {
	FILE* file;
	if (!(file = fopen("test.txt", "r"))) {
		printf ("Erro ao abrir arquivo");
	}
	yyin = file;
	initMe();
	while(isRunning()) {
		switch (yylex()) {
			
			case KW_INT: printf("int @ linha %d \n", getLineNumber()); break;
			case KW_REAL: printf("real @ linha %d \n", getLineNumber()); break;
			case KW_BOOL: printf("bool @ linha %d \n", getLineNumber()); break;
			case KW_CHAR: printf("char @ linha %d \n", getLineNumber()); break;
			case KW_IF: printf("if @ linha %d \n", getLineNumber()); break;
			case KW_ELSE: printf("else @ linha %d \n", getLineNumber()); break;
			case KW_WHILE: printf("while @ linha %d \n", getLineNumber()); break;
			case KW_INPUT: printf("input @ linha %d \n", getLineNumber()); break;
			case KW_RETURN: printf("return @ linha %d \n", getLineNumber()); break;
			case KW_OUTPUT: printf("output @ linha %d \n", getLineNumber()); break;
			case TOKEN_ERROR: printf("error |%s| @ linha %d \n", yytext, getLineNumber()); break;
			default: printf("token |%s| @ linha %d \n", yytext, getLineNumber()); break;
		}
	
	}
	hashPrint();
}
Ejemplo n.º 3
0
int main(int argc, char **argv)
{
    int s;
    yyin = fopen("out.c","r");
    while(running != 0) 
    {
	s = yylex();
    	printf("linha %d token %d\n", lineNumber, s);
    }
    hashPrint();
    return 0;
}
Ejemplo n.º 4
0
int main(int argc, char *argv[])
{	
	//int simb;
	
	initMe();
	
	if (argc<2)
	{
		fprintf(stderr, "Ops! Call me with the filename. Try typing 'etapa1 <nome_do_arquivo>'\n");
		exit (1);
	}
	if (!(yyin = fopen(argv[1], "r")))
	{
		fprintf(stderr, "There is an error. It is not possible to open the file!\n");
		fprintf(stderr, "Check if the file path is correct and try again!\n");
		exit(1);
	}

	system("clear");
	printf("\n-----------------------------------------");
	printf("\nUFRGS - INSTITUTE OF INFORMATICS");
	printf("\nINF01147 - COMPILERS 2014/2");
	printf("\nMiller Biazus");
	printf("\nPedro Morales");
	printf("\n-----------------------------------------\n");

	printf("\n-----------------------------------------");
	printf("\nSTARTING PART 2");
	printf("\nPLEASE WAIT, MAKING THE PARSER...");
	printf("\n-----------------------------------------\n");
	
	while (isRunning())
	{
		yyparse();
		//simb = yylex();
		//if(simb)
		//	printf("LINE: [%d] - TOKEN: [%d] \n", LineNumber, simb);
	}

	printf("-----------------------------------------");
	printf("\nTHE FILE WAS READ SUCCESSFULLY:");
	printf("\n-----------------------------------------\n");

   	hashPrint(&hashTable);

        printf("\n-----------------------------------------");
	printf("\nPART 2 DONE!");
	printf("\n-----------------------------------------\n\n");

	return 0;
}
Ejemplo n.º 5
0
int main (int argc, char ** argv)
{
    FILE *srcFilePointer = NULL;

    if (argc != 3)
    {
        fprintf(stderr, "ERROR! Input and output files must be defined! \nUsage: etapa6 inputFile outputFile\n");
        exit(2);
    }

    initMe();

    srcFilePointer = fopen(argv[1], "r");

    if (srcFilePointer == NULL)
    {
        fprintf(stderr, "ERROR! The input file could not be opened! \nUsage: etapa6 inputFile outputFile\n");
        exit(2);
    }

    yyin = srcFilePointer;
    if (yyparse() != 0)
    {
        fprintf(stderr, "Syntax error in line: %i\n\n", getLineNumber()+1);
        exit(3);
    }

    DEST_FILE = fopen(argv[2], "w");

    if (DEST_FILE == NULL)
    {
        fprintf(stderr, "ERROR! The output file could not be opened! \nUsage: etapa6 inputFile outputFile\n");
        exit(2);
    }

    //descompileTree(astTree);
    //astPrint(astTree, 0);
    hashPrint();

    if (semanticErrors > 0)
    {
        printf("\n\nSemantic error!\n");
        exit(4);
    }
    else
    {
        printf("\n\nProgram sucessful!\n\n");
        exit(0);
    }
}
Ejemplo n.º 6
0
int main(int argc, char ** argv)
{
	if(argc!=2)
	{
		printf("\nUsage: etapa6 <arquivo> \n");
		exit(1);
	}
	
	FILE* file;


	if(!(file=fopen(argv[1], "r")))
	{
		printf("\nErro ao abrir %s!\n", argv[1]);
	    exit(2);
	}
	
	yyin = file;
    
    /*if(!(file=fopen(argv[2], "w"))){
        printf("Erro ao abrir arquivo de saida: %s !\n", argv[2]);
    }
    out_file(file);*/
    initMe();

    yyparse();

	if(reportSemanticError())
	{
		printf("Erro: existem erros semanticos.\n");
		exit(4);
	}

	printf("\nSucesso!\n\n");
	hashPrint();
	printf("\nFinalizado!\n\n");

	exit(0);
}
Ejemplo n.º 7
0
int main(int argc, char *argv[])
{
	int token = yylex();
	while (isRunning()) {
		switch (token) {
			case KW_INT:
				printf("Line: %d - KW_INT\n", getLineNumber());
				break;
			case KW_REAL:
				printf("Line: %d - KW_REAL\n", getLineNumber());
				break;
			case KW_BOOL:
				printf("Line: %d - KW_BOOL\n", getLineNumber());
				break;
			case KW_CHAR:
				printf("Line: %d - KW_CHAR\n", getLineNumber());
				break;
			case KW_IF:
				printf("Line: %d - KW_IF\n", getLineNumber());
				break;
			case KW_ELSE:
				printf("Line: %d - KW_ELSE\n", getLineNumber());
				break;
			case KW_WHILE:
				printf("Line: %d - KW_WHILE\n", getLineNumber());
				break;
			case KW_INPUT:
				printf("Line: %d - KW_INPUT\n", getLineNumber());
				break;
			case KW_RETURN:
				printf("Line: %d - KW_RETURN\n", getLineNumber());
				break;
			case KW_OUTPUT:
				printf("Line: %d - KW_OUTPUT\n", getLineNumber());
				break;
			case OPERATOR_LE:
				printf("Line: %d - OPERATOR_LE\n", getLineNumber());
				break;
			case OPERATOR_GE:
				printf("Line: %d - OPERATOR_GE\n", getLineNumber());
				break;
			case OPERATOR_EQ:
				printf("Line: %d - OPERATOR_EQ\n", getLineNumber());
				break;
			case OPERATOR_NE:
				printf("Line: %d - OPERATOR_NE\n", getLineNumber());
				break;
			case OPERATOR_AND:
				printf("Line: %d - OPERATOR_AND\n", getLineNumber());
				break;
			case OPERATOR_OR:
				printf("Line: %d - OPERATOR_OR\n", getLineNumber());
				break;
			case TK_IDENTIFIER:
				printf("Line: %d - TK_IDENTIFIER\n", getLineNumber());
				break;
			case LIT_INTEGER:
				printf("Line: %d - LIT_INTEGER\n", getLineNumber());
				break;
			case LIT_FALSE:
				printf("Line: %d - LIT_FALSE\n", getLineNumber());
				break;
			case LIT_TRUE:
				printf("Line: %d - LIT_TRUE\n", getLineNumber());
				break;
			case LIT_CHAR:
				printf("Line: %d - LIT_CHAR\n", getLineNumber());
				break;
			case LIT_STRING:
				printf("Line: %d - LIT_STRING\n", getLineNumber());
				break;
			case TOKEN_ERROR:
				printf("Line: %d - TOKEN_ERROR\n", getLineNumber());
				break;
			default:
				printf("Line: %d - %c\n", getLineNumber(), token);
				break;
		}
		token = yylex();
	}
	hashPrint();
	return 0;
}