Semantic Analysis/The Tiny language: semantic analysis example and C generation

From Wiki**3

< Semantic Analysis
Revision as of 19:18, 11 May 2008 by Root (talk | contribs) (New page: == The Problem (in Portuguese) == Considere a seguinte gramárica (ε representa a produção nula), onde os operadores '''WRITE''' (não associativo), '''=''' (associativo à direita) e ...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The Problem (in Portuguese)

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.

  1. Construa a árvore sintáctica, utilizando as classes disponibilizadas na CDK (subclasses de cdk::node::Node).
  2. 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).

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