Prave som uvolnil termin na 3. Hadam dakomu pomoze...
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Zobrazi� pr�spevky MenuCASE LOZAT Vyraz POZAT ZERO Prikaz MINUS Prikaz
{
if($3.sig[0] != 'Z') yyerror("Ocakava sa logicky vyraz pre prikaz cyklu CASE");
$$=(char*)malloc(200+strlen($3.kod)+strlen($6)+strlen($8));
pn1 = navestie++;
pn2 = navestie++;
sprintf($$,
"%s"
"\tifeq\t.%d\n"
"%s"
"\tgoto\t.%d\n"
"\t.%d\n"
"%s"
"\t.%d\n",
$3.kod,pn1,$6.kod,pn2,pn1,$8.kod,pn2
);
free($3.kod);
free($8);
free($6);
};
napr takto ak ten prvy vyraz sa vykona ked je vyraz true a druhy ked je falseQuote from: mioto nemoze byt dobre, lebo potom by si mohol zacinat len symbolom a, bckom by sa nemohlo zacinat
([q,B],a,B,[q,a],R) - cize pamata si "B", na vstupe je "a", zapise tam "B" a pamata si "a" a posunie sa doprava
Quote from: Martin18 on 12.01.2010, 18:56:25Quote from: mio on 12.01.2010, 18:14:44
([q,B],a,B,[q,a],R) - cize pamata si "B", na vstupe je "a", zapise tam "B" a pamata si "a" a posunie sa doprava
([q,a],b,a,[q,b],R) - pamata si "a", na vstupe je "b", zapise tam "a" a pamata si "b" a posunie sa doprava
([q,a],B,a,[q,B],R) - (na konci retazca) pamata si "a", na vstupe je "B", zapise tam "a" a pamata si "B" a posunie sa doprava
([q,B],a,a,[q,B],L) - a toto je naco ?
([q,B],B,B,[p,B],R) - a teraz len skontrolujem, ze je koniec retazca a prejdem do finalneho stavu "p"
je to tak ? a potom preco ked si pamatam "b" tak uz nie je pre nho dalsia instrukcia ? ... napriklad ([q,b],a,b,[q,a],R) ... som z toho jelen![]()
toto co sa posuvas do lava tak si nie som isty ,ale bolo tam cosi take ze ked posunies to na paske tak sa vratis asi na zaciatok,ale neviem urcite
a to ze tam neni instrukcia pre b tak to je asi chyba,alebo neviem
cely princip je v tom ze si zapamatas co si prave precital a zapises co si mal zapamatane