Fix warnings

Co-authored-by: Ezequiel Bellver <ebellver@itba.edu.ar>
Co-authored-by: Juan Barmasch <jbarmasch@itba.edu.ar>
This commit is contained in:
Santiago Lo Coco 2022-04-18 06:51:48 -03:00
parent af3d848aec
commit 01d08db37b
5 changed files with 18 additions and 16 deletions

View File

@ -7,7 +7,9 @@ project(Compiler C)
# Compilar el parser con Bison: # Compilar el parser con Bison:
add_custom_command( add_custom_command(
OUTPUT ../src/frontend/syntactic-analysis/bison-parser.c ../src/frontend/syntactic-analysis/bison-parser.h OUTPUT ../src/frontend/syntactic-analysis/bison-parser.c ../src/frontend/syntactic-analysis/bison-parser.h
COMMAND bison -t -d ../src/frontend/syntactic-analysis/bison-grammar.y -o ../src/frontend/syntactic-analysis/bison-parser.c) COMMAND bison -d ../src/frontend/syntactic-analysis/bison-grammar.y -o ../src/frontend/syntactic-analysis/bison-parser.c)
# COMMAND bison -Wcounterexamples -d ../src/frontend/syntactic-analysis/bison-grammar.y -o ../src/frontend/syntactic-analysis/bison-parser.c)
# COMMAND bison -t -d ../src/frontend/syntactic-analysis/bison-grammar.y -o ../src/frontend/syntactic-analysis/bison-parser.c)
# Seleccionar estrategia según el compilador de C disponible en el sistema: # Seleccionar estrategia según el compilador de C disponible en el sistema:
if (CMAKE_C_COMPILER_ID STREQUAL "GNU") if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
@ -21,8 +23,9 @@ if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
# Compilar el scanner con Flex: # Compilar el scanner con Flex:
add_custom_command( add_custom_command(
OUTPUT ../src/frontend/lexical-analysis/flex-scanner.c OUTPUT ../src/frontend/lexical-analysis/flex-scanner.c
COMMAND flex --debug -o ../src/frontend/lexical-analysis/flex-scanner.c ../src/frontend/lexical-analysis/flex-patterns.l COMMAND flex -o ../src/frontend/lexical-analysis/flex-scanner.c ../src/frontend/lexical-analysis/flex-patterns.l
DEPENDS ../src/frontend/syntactic-analysis/bison-parser.c ../src/frontend/syntactic-analysis/bison-parser.h) DEPENDS ../src/frontend/syntactic-analysis/bison-parser.c ../src/frontend/syntactic-analysis/bison-parser.h)
# COMMAND flex --debug -o ../src/frontend/lexical-analysis/flex-scanner.c ../src/frontend/lexical-analysis/flex-patterns.l
elseif (CMAKE_C_COMPILER_ID STREQUAL "MSVC") elseif (CMAKE_C_COMPILER_ID STREQUAL "MSVC")
message(NOTICE "El compilador de C es Microsoft Visual Studio.") message(NOTICE "El compilador de C es Microsoft Visual Studio.")

View File

@ -7,29 +7,29 @@
*/ */
TokenID IntegerPatternAction(const char * lexeme) { TokenID IntegerPatternAction(const char * lexeme) {
LogDebug("IntegerPatternAction: '%s'.", lexeme); // LogDebug("IntegerPatternAction: '%s'.", lexeme);
yylval = atoi(lexeme); yylval = atoi(lexeme);
return INTEGER; return INTEGER;
} }
TokenID DoublePatternAction(const char * lexeme) { TokenID DoublePatternAction(const char * lexeme) {
LogDebug("DoublePatternAction: '%s'.", lexeme); // LogDebug("DoublePatternAction: '%s'.", lexeme);
yylval = atof(lexeme); yylval = atof(lexeme);
return DOUBLE; return DOUBLE;
} }
TokenID StringPatternAction(const char * lexeme) { TokenID StringPatternAction(const char * lexeme) {
LogDebug("StringPatternAction: '%s'.", lexeme); // LogDebug("StringPatternAction: '%s'.", lexeme);
return STRING; return STRING;
} }
TokenID EscapeStringPatternAction(const char * lexeme) { TokenID EscapeStringPatternAction(const char * lexeme) {
LogDebug("EscapeStringPatternAction: '%s'.", lexeme); // LogDebug("EscapeStringPatternAction: '%s'.", lexeme);
return ESCAPESTRING; return ESCAPESTRING;
} }
void IgnoredPatternAction(const char * lexeme) { void IgnoredPatternAction(const char * lexeme) {
LogDebug("IgnoredPatternAction: '%s'.", lexeme); // LogDebug("IgnoredPatternAction: '%s'.", lexeme);
} }
TokenID UnknownPatternAction(const char * lexeme) { TokenID UnknownPatternAction(const char * lexeme) {

View File

@ -20,7 +20,7 @@ void yyerror(const char * string) {
} }
int ProgramGrammarAction(const int value) { int ProgramGrammarAction(const int value) {
LogDebug("ProgramGrammarAction(%d)", value); // LogDebug("ProgramGrammarAction(%d)", value);
state.succeed = true; state.succeed = true;
state.result = value; state.result = value;
return value; return value;

View File

@ -67,7 +67,7 @@
%% %%
program: statements program: statements { $$ = ProgramGrammarAction($1); }
; ;
expression: constant expression: constant
@ -239,7 +239,7 @@ while_statement: WHILE OPEN_PARENTHESIS boolean CLOSE_PARENTHESIS OPEN_BRACKETS
; ;
declare_variable: VAR STRING declare_variable: VAR STRING
| VAR STRING ASSIGN expression | declare_variable ASSIGN expression
; ;
printCSV: PRINTCSV OPEN_PARENTHESIS escapeStringArray COMMA arrayNumArray COMMA escapeString CLOSE_PARENTHESIS printCSV: PRINTCSV OPEN_PARENTHESIS escapeStringArray COMMA arrayNumArray COMMA escapeString CLOSE_PARENTHESIS
@ -258,8 +258,7 @@ number: constant
| OPEN_PARENTHESIS number CLOSE_PARENTHESIS | OPEN_PARENTHESIS number CLOSE_PARENTHESIS
; ;
assign_variable: STRING ASSIGN number assign_variable: STRING ADD_ASSIGN number
| STRING ADD_ASSIGN number
| STRING SUB_ASSIGN number | STRING SUB_ASSIGN number
| STRING MUL_ASSIGN number | STRING MUL_ASSIGN number
| STRING DIV_ASSIGN number | STRING DIV_ASSIGN number

View File

@ -10,9 +10,9 @@ CompilerState state;
// Punto de entrada principal del compilador. // Punto de entrada principal del compilador.
const int main(const int argumentCount, const char ** arguments) { const int main(const int argumentCount, const char ** arguments) {
#ifdef YYDEBUG // #ifdef YYDEBUG
yydebug = 1; // yydebug = 1;
#endif // #endif
// Inicializar estado de la aplicación. // Inicializar estado de la aplicación.
state.result = 0; state.result = 0;
state.succeed = false; state.succeed = false;
@ -29,7 +29,7 @@ const int main(const int argumentCount, const char ** arguments) {
case 0: case 0:
if (state.succeed) { if (state.succeed) {
LogInfo("La compilacion fue exitosa."); LogInfo("La compilacion fue exitosa.");
Generator(state.result); // Generator(state.result);
} }
else { else {
LogError("Se produjo un error en la aplicacion."); LogError("Se produjo un error en la aplicacion.");