17.01.2013 Views

COMPORT – Compilador Portugol - Nilo Menezes

COMPORT – Compilador Portugol - Nilo Menezes

COMPORT – Compilador Portugol - Nilo Menezes

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

}<br />

{<br />

if (op == MAIS)<br />

x.a += y.a;<br />

else if (op == MENOS)<br />

x.a -= y.a;<br />

else if (op == MULTIPLICACAO)<br />

x.a *= y.a;<br />

else if (op == DIVISAO)<br />

x.a /= y.a;<br />

else if (op == RESTO)<br />

x.a %= y.a;<br />

else<br />

Mark ("bad type");<br />

}<br />

else<br />

{<br />

if (op == MAIS)<br />

PutOp (ADD, x, y);<br />

else if (op == MENOS)<br />

PutOp (SUB, x, y);<br />

else if (op == MULTIPLICACAO)<br />

PutOp (MUL, x, y);<br />

else if (op == DIVISAO)<br />

PutOp (DIV, x, y);<br />

else if (op == RESTO)<br />

PutOp (MOD, x, y);<br />

else<br />

Mark ("bad type");<br />

}<br />

}<br />

else<br />

{<br />

if (x.type->form == Boolean && y.type->form == Boolean)<br />

{<br />

if (y.mode != Cond)<br />

loadBool (y);<br />

if (op == OU)<br />

{<br />

x.a = y.a;<br />

x.b = merged (y.b, x.b);<br />

x.c = y.c;<br />

}<br />

else<br />

{<br />

if (op == E)<br />

{<br />

x.a = merged (y.a, x.a);<br />

x.b = y.b;<br />

x.c = y.c;<br />

}<br />

}<br />

}<br />

else<br />

Mark ("bad type");<br />

}<br />

void<br />

Relation (int op, Item & x, Item & y)<br />

{<br />

ComPort <strong>–</strong> <strong>Compilador</strong> <strong>Portugol</strong><br />

93

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!