Skip to content

Instantly share code, notes, and snippets.

@mateusmaso
Created February 18, 2013 01:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mateusmaso/4974591 to your computer and use it in GitHub Desktop.
Save mateusmaso/4974591 to your computer and use it in GitHub Desktop.
public class Semantico implements Constants
{
private TabelaHashSimbolos tabelaSimbolos;
private boolean expressaoUnicoOperando;
private Integer nivelAtual;
private Integer deslocamento;
/**Armazena o tipo da expressao que esta sendo analisada */
private Tipos tipoExpressao = null;
/** Armazena a declaracao de constante que esta sendo analisada no momento. */
private IdConstante constanteAtual = null;
/** Armazena o valor da constante sendo analisada */
private String valorConstante = null;
/** Armazena o simbolo generico que esta sendo analisado */
private Simbolo simboloAtual = null;
/**Armazena o tipo dos elementos do vetor que esta sendo analisado */
private Tipos tipoElementosVetor = null;
private Tipos tipoVarIndexada;
/**Armazena o tipo do lado esquerdo que esta sendo analisada */
private Tipos tipoLadoEsquerdo = null;
/** Armazena o tipo da variavel sendo analisada */
private Tipos tipoVariavel = null;
/**Armazena o tipo do fator que esta sendo analisada */
private Tipos tipoFator = null;
/**Armazena o tipo do termo que esta sendo analisada */
private Tipos tipoTermo = null;
/**Armazena o tipo da expressão que esta sendo analisada */
private Tipos tipoExpressaoSimples = null;
/**Armazena se foi encontrado um operadorNegacao */
private Boolean operadorNegacao = false;
/**Armazena se foi encontrado um operadorUnario */
/**Armazena o operador relacional que esta sendo analisada */
private OperadoresRelacionais operadorRelacionalAtual = null;
private Boolean operadorUnario = false;
private OperadoresAdicao operadorAdicaoAtual;
private OperadoresMultiplicacao operadorMultiplicacaoAtual;
private Stack<Tipos> pilhaExpressao;
private Stack<Tipos> pilhaVarIndexada;
private Stack<Tipos> pilhaVetores;
private Stack<IdMetodo> pilhaMetodos;
private ContextoLID contextoLID;
private ContextoEXPR contextoEXPR;
private int posicaoPrimeiroId;
private int posicaoUltimoId;
private Tipos tipoAtual;
private Tipos tipoConstante;
private SubCategorias subCategoria;
private Categorias categoriaAtual;
private boolean passadoPorReferencia;
/** Armazena a funcao que esta sendo declarada no momento */
private IdMetodo metodoAtual = null;
/**Armazena o tamanho da dimensao um sendo analisada no momento */
private Integer tamanhoDimensao = null;
/** Armazena o numero de parametros atuais */
private Integer numeroParametrosAtuais = 0;
/** Armazena o numero de parametros formais */
private Integer numeroParametrosFormais = 0;
/**
* Armazena uma lista de identificadores nao declarados durante sua analise
* para futuramente definir seus tipos.
*/
private List<Simbolo> listaDeNaoDeclarados = null;
private Stack<Tipos> pilhaTiposRetorno;
private boolean clausulaRetorno;
[...]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment