diff options
Diffstat (limited to 'sem1/osc/mm11/regn2')
-rw-r--r-- | sem1/osc/mm11/regn2/Makefile | 30 | ||||
-rw-r--r-- | sem1/osc/mm11/regn2/regn.l | 27 | ||||
-rw-r--r-- | sem1/osc/mm11/regn2/regn.y | 46 |
3 files changed, 0 insertions, 103 deletions
diff --git a/sem1/osc/mm11/regn2/Makefile b/sem1/osc/mm11/regn2/Makefile deleted file mode 100644 index 9640aaa..0000000 --- a/sem1/osc/mm11/regn2/Makefile +++ /dev/null @@ -1,30 +0,0 @@ - -LEX=flex -YACC=bison -LIBS=-ly -lfl -lm -CC=gcc - -PROG=regn -TRASH=lex.yy.c $(PROG).tab.c $(PROG) $(PROG).tab.h $(PROG).output - -$(PROG): $(PROG).tab.o lex.yy.o - $(CC) -o $@ $^ $(LIBS) - -$(PROG).tab.c $(PROG).tab.h: $(PROG).y - $(YACC) -d -v $(PROG).y - -lex.yy.c: $(PROG).l - $(LEX) $(PROG).l - -%.o: %.c - $(CC) -c -o $@ $^ - -PHONY: clean run - -run: $(PROG) - ./$(PROG) - -clean: - rm -f *.o - rm -f $(TRASH) - diff --git a/sem1/osc/mm11/regn2/regn.l b/sem1/osc/mm11/regn2/regn.l deleted file mode 100644 index 9988ddd..0000000 --- a/sem1/osc/mm11/regn2/regn.l +++ /dev/null @@ -1,27 +0,0 @@ -%{ -#include <math.h> -#include <string.h> -#include "regn.tab.h" -%} - -realtal ([0-9]+|([0-9]*\.[0-9]+))([eE][-+]?[0-9]+)? -op_log log -op_exp exp -op_sqrt sqrt - -%% -{realtal} {yylval.dval = atof(yytext); - return TAL;} -{op_log} {return LOG;} -{op_exp} {return EXP;} -{op_sqrt} {return SQRT;} - -[ \t] ; - - -'$' {return 0;} - -\n|. {return yytext[0];} - -%% - diff --git a/sem1/osc/mm11/regn2/regn.y b/sem1/osc/mm11/regn2/regn.y deleted file mode 100644 index eac24c8..0000000 --- a/sem1/osc/mm11/regn2/regn.y +++ /dev/null @@ -1,46 +0,0 @@ -%{ -#include <stdio.h> -#include <math.h> -#include <string.h> -%} - -%union { - double dval; -} - -%token <dval> TAL -%token LOG EXP SQRT - -%left '-' '+' -%left LOG EXP SQRT -%left '*' '/' -%right UMINUS - -%type <dval> expression - -%% - -statement_list: statement '\n' - | statement_list statement '\n' ; - -statement: expression {printf("out \n");}; - -expression: expression '+' expression {printf("sum \n");} - | expression '-' expression {printf("sub \n");} - | expression '*' expression {printf("mul \n");} - | expression '/' expression {if ($3 == 0.0) - yyerror("divide dy zero"); - else printf("div \n");} - | '-' expression %prec UMINUS {printf("neg \n");} - | '(' expression ')' {;} - | LOG expression {printf("log \n");} - | EXP expression {printf("exp \n");} - | SQRT expression {printf("sqrt \n");} - | TAL {printf("load %f \n", $$);}; -%% - -int main() -{ - yyparse(); -} - |