From f27932a1f9c98cd77bd8c0029ac5c9c8b8566187 Mon Sep 17 00:00:00 2001 From: kappa Date: Thu, 25 Jul 2019 15:21:52 +0200 Subject: [PATCH] =?UTF-8?q?=D0=8B=D0=B8=D1=80=D0=B8=D0=BB=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=20=D0=BA=D0=BE=D0=B4,=20=D0=B0=D0=BA=D1=82=D0=B8=D0=B2?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=B8=D0=B7=D0=B2=D1=80=D1=88=D0=B0=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=20=D1=83=20=D1=85=D0=B8=D0=BF=D1=83,=20=D1=98=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D0=B8=D0=BC=D0=B8=D1=87=D0=BD=D0=BE=20=D1=80?= =?UTF-8?q?=D0=B5=D0=BF=D0=BD=D0=BE-=D0=B5=D0=BB=D0=B8=D0=BC=D0=B8=D0=BD?= =?UTF-8?q?=D0=B0=D0=B1=D0=B8=D0=BB=D0=B0=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 4 ++-- doc/maturskiRad/rad.tex | 4 +++- eval.c | 21 ++++++++++++++------- 3 files changed, 19 insertions(+), 10 deletions(-) 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;