Expressões 2

  • Estende a Linguagem de Expressões 1 com identificadores (variáveis) que possuem um valor (constante)
  • Durante a compilação, surge a necessidade de um contexto:mapeamento entre identificadores e tipos
  • Durante a interpretação, surge a necessidade de um contexto: mapeamento entre identificadores e valores
  • Na avaliação de uma expressão, a ocorrência de um identificador é substituída pelo valor associado ao identificador
  • Um programa é uma expressão

Fontes

Programa ::= Expressao

Expressao ::= Valor
      | ExpUnaria
      | ExpBinaria
      | ExpDeclaracao
      | Id

Valor ::= ValorConcreto

ValorConcreto ::= ValorInteiro
      | ValorBooleano
      | ValorString

ExpUnaria ::= ExpMenos “-“ Expressao
      | ExpNot “not” Expressao
      | ExpLength “length” Expressao

ExpBinaria ::= ExpSoma Expressao “+” Expressao
      | ExpSub Expressao “-“ Expressao
      | ExpAnd Expressao “and” Expressao
      | ExpOr Expressao “or” Expressao
      | ExpEquals Expressao “==” Expressao
      | ExpConcat Expressao “++” Expressao

Classes Auxiliares

Tipo
TipoPrimitivo

Ambiente
AmbienteCompilacao
AmbienteExecucao

Contexto
ContextoCompilacao
ContextoExecucao

VariavelJaDeclaradaException
VariavelNaoDeclaradaException
IdentificadorJaDeclaradoException
IdentificadorNaoDeclaradoException

Exemplos de Programas

Exemplo

Parser

Expressoes2