plp.expressions1.util.Tipo Class Reference

Collaboration diagram for plp.expressions1.util.Tipo:

Collaboration graph
[legend]
List of all members.

Public Types

 INTEIRO
enum  Tipos { INTEIRO, BOOLEANO, STRING }

Public Member Functions

 Tipo ()
 Tipo (Tipo prox)
 Tipo (Set< Tipos > tipo)
 Tipo (Set< Tipos > tipo, Tipo prox)
Set< Tiposget ()
boolean eInteiro ()
boolean eBooleano ()
boolean eString ()
boolean eVoid ()
Override boolean equals (Object obj)
Tipo intersecao (Tipo outroTipo)
Tipo getProx ()
boolean eValido ()

Static Public Attributes

static final Tipo TIPO_INTEIRO = new Tipo(EnumSet.of(Tipos.INTEIRO))
static final Tipo TIPO_BOOLEANO = new Tipo(EnumSet.of(Tipos.BOOLEANO))
static final Tipo TIPO_STRING = new Tipo(EnumSet.of(Tipos.STRING))
static final Tipo TIPO_INDEFINIDO = new Tipo(EnumSet.noneOf(Tipos.class))

Private Attributes

Set< Tipostipo
Tipo prox

Detailed Description

Classe que representa os possiveis tipos de uma expressao. Objetos desta classe sao imutaveis, portanto as vezes as instancias sao compartilhadas.

Modificado em 11/07/2005 por Leonardo Lucena para usar tipos enumerados

Definition at line 15 of file Tipo.java.


Member Enumeration Documentation

enum plp::expressions1::util::Tipo::Tipos

Enumerator:
INTEIRO 
BOOLEANO 
STRING 

Definition at line 17 of file Tipo.java.


Constructor & Destructor Documentation

plp.expressions1.util.Tipo.Tipo (  ) 

Construtor da classe que representa um tipo qualquer (inteiro, boolean ou string).

Definition at line 40 of file Tipo.java.

Referenced by plp.expressions1.util.Tipo.intersecao().

plp.expressions1.util.Tipo.Tipo ( Tipo  prox  ) 

Construtor da classe que representa um tipo qualquer (inteiro, boolean ou string).

Parameters:
prox o proximo head no tipo de uma funcao, ou null para o caso de tipos primitivos.

Definition at line 51 of file Tipo.java.

References plp.expressions1.util.Tipo.prox.

plp.expressions1.util.Tipo.Tipo ( Set< Tipos tipo  ) 

Construtor da classe.

Parameters:
tipo o tipo da expressao associada.
See also:
Tipos.INTEIRO

Tipos.BOOLEANO

Tipos.STRING

Definition at line 63 of file Tipo.java.

plp.expressions1.util.Tipo.Tipo ( Set< Tipos tipo,
Tipo  prox 
)

Construtor da classe.

Parameters:
tipo o tipo da expressao associada.
prox o proximo head no tipo de uma funcao, ou null para o caso de tipos primitivos.
See also:
Tipos.INTEIRO

Tipos.BOOLEANO

Tipos.STRING

Definition at line 77 of file Tipo.java.

References plp.expressions1.util.Tipo.prox.


Member Function Documentation

boolean plp.expressions1.util.Tipo.eBooleano (  ) 

Indica se esta expressao é booleana.

Returns:
true se esta expressao for booleana; false caso contrario.

Definition at line 110 of file Tipo.java.

References plp.expressions1.util.Tipo.tipo.

Referenced by plp.functional1.expression.IfThenElse.checaTipo().

boolean plp.expressions1.util.Tipo.eInteiro (  ) 

Indica se esta expressao é inteira.

Returns:
true se esta expressao for inteira; false caso contrario.

Definition at line 100 of file Tipo.java.

References plp.expressions1.util.Tipo.tipo.

Override boolean plp.expressions1.util.Tipo.equals ( Object  obj  ) 

Compara este tipo com o tipo dado.

Returns:
true se se tratarem do mesmo tipo; false caso contrario.

Definition at line 141 of file Tipo.java.

References plp.expressions1.util.Tipo.tipo.

boolean plp.expressions1.util.Tipo.eString (  ) 

Indica se esta expressao é string.

Returns:
true se esta expressao for string; false caso contrario.

Definition at line 120 of file Tipo.java.

References plp.expressions1.util.Tipo.tipo.

boolean plp.expressions1.util.Tipo.eValido (  ) 

Definition at line 183 of file Tipo.java.

References plp.expressions1.util.Tipo.tipo.

Referenced by plp.imperative2.declaration.DeclaracaoParametro.checaTipo().

boolean plp.expressions1.util.Tipo.eVoid (  ) 

Indica se esta expressao nao pode representar tipo algum.

Returns:
true se esta expressao for void; false caso contrario.

Definition at line 130 of file Tipo.java.

References plp.expressions1.util.Tipo.tipo.

Referenced by plp.functional2.expression.Aplicacao.checkArgumentTypes(), and plp.functional1.expression.Aplicacao.checkArgumentTypes().

Set<Tipos> plp.expressions1.util.Tipo.get (  ) 

Retorna o tipo da expressao associada.

Returns:
o tipo da expressao associada.
See also:
Tipos.INTEIRO

Tipos.BOOLEANO

Tipos.STRING

Definition at line 90 of file Tipo.java.

References plp.expressions1.util.Tipo.tipo.

Referenced by plp.functional1.util.RestrictTypesVisitor._visitAplicacao(), plp.functional2.expression.ValorFuncao.checaTipo(), plp.functional1.util.ValorFuncao.checaTipo(), plp.functional1.expression.Aplicacao.getTipo(), and plp.expressions2.expression.Id.getTipo().

Tipo plp.expressions1.util.Tipo.getProx (  ) 

Retorna o tipo de retorno, no caso de ser uma funcao. O que ocorre por exemplo com uma funcao f(x) = x == 1 (do tipo Int -> Bool), é que seu tipo será um objeto desta classe do tipo Inteiro cujo campo prox será outro objeto desta classe, do tipo Booleano (que por sua vez terá o campo prox igual a null.

Returns:
o tipo de retorno, no caso de uma função, ou null no caso de valor primitivo.

Definition at line 179 of file Tipo.java.

References plp.expressions1.util.Tipo.prox.

Referenced by plp.functional1.util.RestrictTypesVisitor._visitAplicacao(), plp.functional2.expression.ValorFuncao.checaTipo(), plp.functional1.util.ValorFuncao.checaTipo(), plp.functional2.expression.Aplicacao.checkArgumentListSize(), plp.functional1.expression.Aplicacao.checkArgumentListSize(), plp.functional2.expression.Aplicacao.getTipo(), and plp.functional1.expression.Aplicacao.getTipo().

Tipo plp.expressions1.util.Tipo.intersecao ( Tipo  outroTipo  ) 

Retorna o tipo mais abrangente que engloba este tipo e o tipo dado. Por exemplo, se este tipo pode ser String ou inteiro e o tipo dado pode ser inteiro ou booleano, entao este metodo retorna um tipo que so pode ser inteiro.

Parameters:
outroTipo o outro tipo.
Returns:
a interseção entre este tipo e o tipo dado.

Definition at line 156 of file Tipo.java.

References plp.expressions1.util.Tipo.Tipo(), and plp.expressions1.util.Tipo.tipo.

Referenced by plp.functional1.util.RestrictTypesVisitor._visitId(), plp.functional1.expression.IfThenElse.checaTipo(), plp.functional2.expression.Aplicacao.checkArgumentTypes(), plp.functional1.expression.Aplicacao.checkArgumentTypes(), and plp.functional1.expression.IfThenElse.getTipo().

Here is the call graph for this function:


Member Data Documentation

Tipo plp.expressions1.util.Tipo.prox [private]

O tipo de retorno, no caso de ser uma funcao. O que ocorre por exemplo com uma funcao f(x) = x == 1 (do tipo Int -> Bool), é que seu tipo será um objeto desta classe do tipo Inteiro cujo campo prox será outro objeto desta classe, do tipo Booleano (que por sua vez terá o campo prox igual a null.

Definition at line 34 of file Tipo.java.

Referenced by plp.expressions1.util.Tipo.getProx(), and plp.expressions1.util.Tipo.Tipo().

Set<Tipos> plp.expressions1.util.Tipo.tipo [private]

Definition at line 24 of file Tipo.java.

Referenced by plp.expressions1.util.Tipo.eBooleano(), plp.expressions1.util.Tipo.eInteiro(), plp.expressions1.util.Tipo.equals(), plp.expressions1.util.Tipo.eString(), plp.expressions1.util.Tipo.eValido(), plp.expressions1.util.Tipo.eVoid(), plp.expressions1.util.Tipo.get(), and plp.expressions1.util.Tipo.intersecao().

final Tipo plp.expressions1.util.Tipo.TIPO_BOOLEANO = new Tipo(EnumSet.of(Tipos.BOOLEANO)) [static]

Definition at line 20 of file Tipo.java.

Referenced by plp.expressions2.expression.ValorBooleano.getTipo(), plp.expressions1.expression.ValorBooleano.getTipo(), plp.expressions2.expression.ExpOr.getTipo(), plp.expressions1.expression.ExpOr.getTipo(), plp.expressions2.expression.ExpNot.getTipo(), plp.expressions1.expression.ExpNot.getTipo(), plp.expressions2.expression.ExpEquals.getTipo(), plp.expressions1.expression.ExpEquals.getTipo(), plp.expressions2.expression.ExpAnd.getTipo(), plp.expressions1.expression.ExpAnd.getTipo(), and plp.imperative2.parser.Imp2Parser.PTipo().

final Tipo plp.expressions1.util.Tipo.TIPO_INDEFINIDO = new Tipo(EnumSet.noneOf(Tipos.class)) [static]

Definition at line 22 of file Tipo.java.

Referenced by plp.functional1.util.RestrictTypesVisitor._visitExpDeclaracao(), plp.functional2.expression.ExpDeclaracao.getTipo(), and plp.functional1.expression.ExpDeclaracao.getTipo().

final Tipo plp.expressions1.util.Tipo.TIPO_INTEIRO = new Tipo(EnumSet.of(Tipos.INTEIRO)) [static]

Definition at line 19 of file Tipo.java.

Referenced by plp.expressions2.expression.ValorInteiro.getTipo(), plp.expressions1.expression.ValorInteiro.getTipo(), plp.expressions2.expression.ExpSub.getTipo(), plp.expressions1.expression.ExpSub.getTipo(), plp.expressions2.expression.ExpSoma.getTipo(), plp.expressions1.expression.ExpSoma.getTipo(), plp.expressions2.expression.ExpMenos.getTipo(), plp.expressions1.expression.ExpMenos.getTipo(), plp.expressions2.expression.ExpLength.getTipo(), plp.expressions1.expression.ExpLength.getTipo(), and plp.imperative2.parser.Imp2Parser.PTipo().

final Tipo plp.expressions1.util.Tipo.TIPO_STRING = new Tipo(EnumSet.of(Tipos.STRING)) [static]

Definition at line 21 of file Tipo.java.

Referenced by plp.expressions2.expression.ValorString.getTipo(), plp.expressions1.expression.ValorString.getTipo(), plp.expressions2.expression.ExpConcat.getTipo(), plp.expressions1.expression.ExpConcat.getTipo(), and plp.imperative2.parser.Imp2Parser.PTipo().


The documentation for this class was generated from the following file:
Generated on Tue Sep 12 21:55:00 2006 for PLP by  doxygen 1.4.7