19.04.2013 Views

Apostila antiga - The Cyan Programming Language

Apostila antiga - The Cyan Programming Language

Apostila antiga - The Cyan Programming Language

SHOW MORE
SHOW LESS

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

}

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

Saved successfully!

Ooh no, something went wrong!