Tópicos
Processamento semântico.Exercício 1
Considere a seguinte gramárica ( ε representa a produção nula), onde os operadores WRITE (não associativo), '=' (associativo à direita) e '+' (associativo à esquerda) têm precedências crescentes.
- Construa a árvore sintáctica, utilizando as classes disponibilizadas na CDK (subclasses de cdk::node::Node).
- Traduza a árvore sintáctica para um programa em C, utilizando o padrão de desenho Visitor (mantenha informação sobre símbolos utilizando as classes cdk::Symbol e cdk::SymbolTable).
prog -> decls exprs '.'
decls -> ε | decls decl ';'
decl -> INT ID | STR ID init
init -> ε | '=' STRING
exprs -> expr | exprs ',' expr
expr -> INTEGER | ID | ID '=' expr | expr '+' expr | WRITE expr