/
niceSOFT
/
flex
Обзор
Документация
Войти
/
niceSOFT
/
flex
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/manual/expr.y
56 строк
988 B
Will Estes
adding the rest of vern's files
02 май 2001, 00:47
02 май 2001, 00:47
2eae880
Код
Авторство
О чём код?
/* * expr.y : A simple yacc expression parser * Based on the Bison manual example. */ %{ #include <stdio.h> #include <math.h> %} %union { float val; } %token NUMBER %token PLUS MINUS MULT DIV EXPON %token EOL %token LB RB %left MINUS PLUS %left MULT DIV %right EXPON %type <val> exp NUMBER %% input : | input line ; line : EOL | exp EOL { printf("%g\n",$1);} exp : NUMBER { $$ = $1; } | exp PLUS exp { $$ = $1 + $3; } | exp MINUS exp { $$ = $1 - $3; } | exp MULT exp { $$ = $1 * $3; } | exp DIV exp { $$ = $1 / $3; } | MINUS exp %prec MINUS { $$ = -$2; } | exp EXPON exp { $$ = pow($1,$3);} | LB exp RB { $$ = $2; } ; %% yyerror(char *message) { printf("%s\n",message); } int main(int argc, char *argv[]) { yyparse(); return(0); }