Exercício 1: Objetivo: Desenvolver uma gramática - DC

Propaganda
Exercício 1:
Objetivo: Desenvolver uma gramática para uma linguagem simples
do tipo SQL
Consulta:
"SELECT" campos=Campos "FROM" tabelas=Tabelas "WHERE" condicoes=Condicoes;
Campos:
colecao+=Campo ("," colecao+=Campo)*;
Campo:
tabela=STRING "." coluna=STRING;
Tabelas:
colecao+=Tabela ("," colecao+=Tabela)*;
Tabela:
nome=STRING;
Condicoes:
colecao+=Condicao ("AND" colecao+=Condicao)*;
Condicao:
esquerda=Campo "=" direita=Campo;
Exercício 2:
Objetivo: Desenvolver uma gramática para duas linguagens – uma
para definição de tipos de dados e outra para definição de
formatos
tipo Pessoa {
nome : String
endereco : Endereco
telefone : String
}
tipo Endereco {
rua : String
numero : int
bairro : String
cidade : String
estado : String
}
tipo Dependente {
nome : String
idade : int
titular : Pessoa
}
registro Pessoa (“PES”) {
nome:endereco:telefone
}
registro Endereco (“END”) {
rua:numero:bairro:cidade:estado
}
registro Dependente (“DEP”) {
nome:idade:titular
}
Importa :
"Tipos" "{" (tipos+=Tipo)* "}"
"Registros" "{" (registros+=Registro)* "}"
;
Tipo :
"tipo" name=ID "{"
(atributos+=Atributo)+
"}"
;
Atributo :
name=ID ":" (tipo=Primitivo | ref=[Tipo])
;
Primitivo:
"String" | "int" | "double" | "float"
;
Registro:
"registro" tipo=[Tipo] "(" (identificador=STRING) ")" "{"
campos+=[Atributo] (":" campos+=[Atributo])*
"}"
;
Exercício 3
Objetivo: Desenvolver um metamodelo para uma linguagem para
questionários
Exercício 4
Objetivo: Desenvolver um metamodelo para uma linguagem que
descreve topologias de redes
Download