diff --git a/Makefile b/Makefile index d07873c..260ffca 100644 --- a/Makefile +++ b/Makefile @@ -9,8 +9,8 @@ LIBPREFIX = $(PREFIX)/lib # флегови за C компајлер и линкер CPPFLAGS = -D_POSIX_C_SOURCE=2 -DDESTDIR=\"$(DESTDIR)\" -DVERSION=\"$(VERSION)\" -CFLAGS = -g -std=c99 -pedantic -Wall -Wextra -O0 -fexec-charset=UTF-8 -finput-charset=UTF-8 -fwide-exec-charset=UTF-32LE -# CFLAGS = -std=c99 -pedantic -Wall -Wextra -O3 -fexec-charset=UTF-8 -finput-charset=UTF-8 -fwide-exec-charset=UTF-32LE +# CFLAGS = -g -std=c99 -pedantic -Wall -Wextra -O0 -fexec-charset=UTF-8 -finput-charset=UTF-8 -fwide-exec-charset=UTF-32LE +CFLAGS = -std=c99 -pedantic -Wall -Wextra -O3 -fexec-charset=UTF-8 -finput-charset=UTF-8 -fwide-exec-charset=UTF-32LE LDFLAGS = -lm -lc CC = cc diff --git a/doc/maturskiRad/rad.tex b/doc/maturskiRad/rad.tex index d0eb971..75a68a8 100644 --- a/doc/maturskiRad/rad.tex +++ b/doc/maturskiRad/rad.tex @@ -1282,7 +1282,9 @@ int main(int argc, char **argv) \begin{wrapfigure}{r}{0.5\textwidth} \begin{center} - \includegraphics[width=0.5\linewidth]{../../MMM_5394.jpg} + \IfFileExists{./../../../MMM_5394.jpg} + {\includegraphics[width=0.5\linewidth]{../../../MMM_5394.jpg}} + {НАЈС ТРАЈ ЕФ-БИ-АЈ!} \end{center} \caption{Моја слика} \end{wrapfigure} diff --git a/eval.c b/eval.c index 34e2927..edf7958 100644 --- a/eval.c +++ b/eval.c @@ -185,17 +185,24 @@ object apply(object procedure, object parameters, env currentEnv) } object *currentExprPointer = &PROC_COMP_BODY(procedure); - while (TYPE(*currentExprPointer) != nilObject) + object currentExpr; + while (TYPE(CDR(*currentExprPointer)) != nilObject) + /* сви изрази осим задњег */ { - object currentExpr = copyObject(CAR(*currentExprPointer)); + currentExpr = copyObject(CAR(*currentExprPointer)); currentExpr = Eval(currentExpr, procEnv); - if (TYPE(CDR(*currentExprPointer)) == nilObject) - { - result = copyObject(currentExpr); - } - currentExprPointer = &CDR(*currentExprPointer); + deleteObject(currentExpr); + currentExprPointer = &CDR(*currentExprPointer); } + /* репни позив */ + currentExpr = copyObject(CAR(*currentExprPointer)); + //pruneExpr(¤tExpr); ова функција ће бити коришћена за + // упроштавање израза, тако да постану репно-елиминалбилни, када буде + // написана ЛОЛ :) + currentExpr = Eval(currentExpr, procEnv); + result = copyObject(currentExpr); + removeEnvironment(procEnv); --currentRecursionDepth;