17.01.2013 Views

COMPORT – Compilador Portugol - Nilo Menezes

COMPORT – Compilador Portugol - Nilo Menezes

COMPORT – Compilador Portugol - Nilo Menezes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

obj = topScope->next;<br />

locblksize = parblksize;<br />

while (obj != guard)<br />

{<br />

obj->lev = curlev;<br />

if (obj->Class == Par)<br />

locblksize -= WordSize;<br />

else<br />

locblksize -= obj->type->size;<br />

obj->val = locblksize;<br />

obj = obj->next;<br />

}<br />

proc->dsc = topScope->next;<br />

if (sym == NOVALINHA)<br />

Get (sym);<br />

else<br />

Mark ("?");<br />

locblksize = 0;<br />

declarations (locblksize);<br />

while (sym == PROCEDIMENTO)<br />

{<br />

ProcedureDecl ();<br />

if (sym == NOVALINHA)<br />

Get (sym);<br />

else<br />

Mark ("?");<br />

}<br />

proc->val = pc;<br />

Enter (locblksize);<br />

// if (sym == BEGIN)<br />

// {<br />

Get (sym);<br />

StatSequence ();<br />

// }<br />

if (sym == FIMPROCEDIMENTO)<br />

Get (sym);<br />

else<br />

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

if (sym == IDENTIFICADOR)<br />

{<br />

if (procid != id)<br />

Mark ("no match");<br />

Get (sym);<br />

}<br />

Return (parblksize - marksize);<br />

CloseScope ();<br />

IncLevel (-1);<br />

}<br />

}<br />

void<br />

Module (FILE * S)<br />

{<br />

Ident modid;<br />

long varsize;<br />

fprintf (W, " compilando: ");<br />

if (sym == MODULO)<br />

{<br />

Get (sym);<br />

Open ();<br />

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

80

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

Saved successfully!

Ooh no, something went wrong!