Apostila antiga - The Cyan Programming Language
Apostila antiga - The Cyan Programming Language
Apostila antiga - The Cyan Programming Language
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CHAPTER 2. A ANÁLISE SINTÁTICA 22<br />
expr2();<br />
}<br />
else<br />
if (token == menos_simb) {<br />
// Expr’ ::= - Term Expr’<br />
nextToken();<br />
term();<br />
expr2();<br />
}<br />
/* se nenhum dos dois testes for verdadeiro (+ ou -), a alternativa<br />
escolhida sera Expr’ ::= vazio e esta funcao nao deve fazer nada<br />
*/<br />
}<br />
void term()<br />
{<br />
if ( token == numero_smb ) {<br />
nextToken();<br />
term2();<br />
}<br />
else<br />
// Como nao ha alternativa Term ::= vazio, houve um erro<br />
erro();<br />
}<br />
void term2()<br />
{<br />
switch (token) {<br />
case mult_smb:<br />
nextToken();<br />
if (token == numero_smb)<br />
nextToken();<br />
else<br />
erro();<br />
term2();<br />
break;<br />
case div_smb:<br />
nextToken();<br />
if (token == numero_smb)<br />
nextToken();<br />
else<br />
erro();<br />
term2();<br />
break;<br />
default:<br />
// Ok, existe producao Term’ ::= vazio<br />
}<br />
}