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 />

case ENUMERO:<br />

MakeConstItem (x, intType, val);<br />

Get (sym);<br />

break;<br />

case PARENTESE_E:<br />

Get (sym);<br />

expression (x);<br />

if (sym == PARENTESE_D)<br />

Get (sym);<br />

else<br />

Mark (")?");<br />

break;<br />

case COLCHETE_E:<br />

Get (sym);<br />

expression (x);<br />

if (sym == COLCHETE_D)<br />

Get (sym);<br />

else<br />

Mark ("]?");<br />

break;<br />

case NAO:<br />

Get (sym);<br />

factor (x);<br />

Op1 (NAO, x);<br />

break;<br />

default:<br />

Mark ("factor?");<br />

MakeItem (x, guard);<br />

void<br />

term (Item & x)<br />

{<br />

Item y;<br />

int op;<br />

factor (x);<br />

// Modulo retirado, pois não é definido em portugol<br />

while (sym == MULTIPLICACAO || sym==DIVISAO || sym == E)<br />

{<br />

op = sym;<br />

Get (sym);<br />

if (op == E)<br />

Op1 (op, x);<br />

factor (y);<br />

Op2 (op, x, y);<br />

}<br />

}<br />

void<br />

SimpleExpression (Item & x)<br />

{<br />

Item y;<br />

int op;<br />

switch(sym)<br />

{<br />

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

70

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

Saved successfully!

Ooh no, something went wrong!