COMPORT – Compilador Portugol - Nilo Menezes
COMPORT – Compilador Portugol - Nilo Menezes
COMPORT – Compilador Portugol - Nilo Menezes
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