У меня проблема.
Я пишу программу с flex и использую этот код:
%union {
int entero;
char *cadena;
TipoDato tipo;
}
Этот код для моих типов данных.
Я хочу оценить следующую строку: выражение SUM выражение, где SUM — это сумма операции для оценки, например 69 + 60.
Когда я пишу это
if (($1.tipo == ENT) && ($3.tipo == ENT)){
$$.tipo = ENT;
} else if (($1.tipo == CADEN) && ($3.tipo == CADEN)) {
$$.tipo = CADEN;
} else {
printf ("Error en la suma: Tipos de datos incompatibles Revise los tipos\n");
yyerror(parser);
}
у меня следующая ошибка
../src/buggy.y:350.37-38: $1 для `выражения' не указывается типом объявления
../src/buggy.y:351.28-29: $1 для `выражения' не указывается типом объявления
buggy.tab.c: В функции ‘yyparse’:
buggy.tab.c:1646: предупреждение: неявное объявление функции ‘yylex’
../src/buggy.y: На верхнем уровне:
lex.yy.c:1577: предупреждение: ‘yyunput’ определен, но не используется
lex.yy.c:1618: **предупреждение: «ввод» определен, но не используется
Найдите файл '../docs/prog1.bgy'.
В чем проблема?
Спасибо!
Пока!!