diff --git a/src/main/scala/sintatico/Expr.scala b/src/main/scala/sintatico/Expr.scala index 02ad93f544243724442aceb835ab2463e5315a97..5dfefa63717d84ac5b3fc6b4e89d90bd465ce1c2 100644 --- a/src/main/scala/sintatico/Expr.scala +++ b/src/main/scala/sintatico/Expr.scala @@ -1 +1,25 @@ package sintatico + +abstract trait Molecula +case class Program(name:String, inOut:String*) extends Molecula +case class Variavel(id:String,tipo:String) extends Molecula +case class DecVariaveis(vars:Variavel*) extends Molecula + +abstract class DecFunPro extends Molecula +case class DecProcedimento(id:String,params:Parametros*) extends DecFunPro +case class DecFuncao(id:String,tipoRet:String,params:Parametros*) extends DecFunPro +case class Parametros(id:String,modo:String,tipo:String) extends Molecula + + +abstract trait Comando extends Molecula +case class Bloco(comandos:Comando*) extends Comando +case class Atribuicao(id:String,op:String,expr:ExprInt) extends Comando + +abstract trait Chamada extends Comando +case class ChamadaFuncao(id:String,Args:Argumento*) extends Chamada +case class ChamadaProcedimento(id:String,Args:Argumento*) extends Chamada +class Argumento() + +class Expr extends Comando +class ExprInt extends Expr +class ExprBool extends Expr \ No newline at end of file