public static void analiseSemantica() { MeuCompiladorDAL.deletaDelimitadores(); MeuCompiladorDAL.populaDR(); MeuCompiladorDAL.leUmTokenValido(); while (Erro.getErro() == false) { int aux = MeuCompiladorDAL.leQtdArgumentos(); for (int i = 0; i < aux; ++i) { ArgLim.setCodigo(Token.getCodigo()); ArgLim.setposicao("" + i); MeuCompiladorDAL.leUmLimite(); MeuCompiladorDAL.leUmTokenValido(); if (int.Parse(Token.getToken()) < int.Parse(ArgLim.getminimo()) || int.Parse(Token.getToken()) > int.Parse(ArgLim.getmaximo())) { Erro.setErro("Linha " + Token.getLinha() + ": valor fora da faixa (" + Token.getToken() + ")"); return; } } MeuCompiladorDAL.leUmTokenValido(); } Erro.setErro(false); }
public static void validaSequencia() { Erro.setErro(false); MeuCompiladorDAL.populaGabarito(int.Parse(Token.getCodigo())); MeuCompiladorDAL.leGabarito(); if (Erro.getErro()) { Erro.setErro("Linha " + Token.getLinha() + "- token inesperado: " + Token.getToken()); return; } while (!Erro.getErro()) { if (Token.getCodigo() != Gabarito.getInfo()) { Erro.setErro("Linha " + Token.getLinha() + "- token inesperado: " + Token.getToken()); return; } if (Gabarito.getNext() != "eof") { MeuCompiladorDAL.leUmTokenValido(); } MeuCompiladorDAL.leGabarito(); } Erro.setErro(false); }
public static void conecta() { Erro.setErro(false); try { conn.Open(); } catch { Erro.setErro("A conexão falhou!"); return; } }
public static void consultaIndiceLib() { OleDbDataReader resultInd; String aux = "select * from TIndLib where codigo =" + Token.getCodigo(); strSQL = new OleDbCommand(aux, conn); resultInd = strSQL.ExecuteReader(); Erro.setErro(false); if (resultInd.Read()) { IndiceLib.setInicio("" + resultInd.GetInt32(1)); IndiceLib.setTamanho("" + resultInd.GetInt32(2)); } }
public static void leUmTokenValido() { Erro.setErro(false); if (resultAS.Read()) { Token.setCodigo("" + resultAS.GetInt32(0)); Token.setToken(resultAS.GetString(1)); Token.setTipo(resultAS.GetString(2)); Token.setLinha("" + resultAS.GetInt32(3)); } else { Erro.setErro(true); } }
public static void leGabarito() { Erro.setErro(false); if (resultgab.Read()) { Gabarito.setCode("" + resultgab.GetInt32(0)); Gabarito.setPrior(resultgab.GetString(1)); Gabarito.setInfo("" + resultgab.GetInt32(2)); Gabarito.setNext(resultgab.GetString(3)); } else { Erro.setErro(true); } }
public static void geraExecutavel() { MeuCompiladorDAL.populaDR(); MeuCompiladorDAL.leUmTokenValido(); while (Erro.getErro() == false) { if (int.Parse(Token.getCodigo()) < 100) { gravaArquivo(); } MeuCompiladorDAL.leUmTokenValido(); } Erro.setErro(false); }
public static void analiseSintatica() { MeuCompiladorDAL.populaDR(); MeuCompiladorDAL.leUmTokenValido(); while (Erro.getErro() == false) { validaSequencia(); if (Erro.getErro()) { return; } MeuCompiladorDAL.leUmTokenValido(); } Erro.setErro(false); }
public static void consultaUmToken() { OleDbDataReader result; String aux = "select * from TTokens where Token ='" + Token.getToken() + "'"; strSQL = new OleDbCommand(aux, conn); result = strSQL.ExecuteReader(); Erro.setErro(false); if (result.Read()) { Token.setCodigo("" + result.GetInt32(0)); } else { Erro.setErro("Linha " + Token.getLinha() + ": " + Token.getToken() + " (Token não identificado)"); } }
public static void validaSequencia() { Erro.setErro(false); int tokenValue = int.Parse(Token.getCodigo()); int tokenzinho; switch (tokenValue) { case 1: { MeuCompiladorDAL.leUmTokenValido(); tokenzinho = int.Parse(Token.getToken()); if (tokenzinho > 0 && tokenzinho < 81) { MeuCompiladorDAL.leUmTokenValido(); tokenzinho = int.Parse(Token.getToken()); if (tokenzinho < 1 && tokenzinho > 25) { Erro.setErro(true); } } else { Erro.setErro(true); } } break; case 2: { MeuCompiladorDAL.leUmTokenValido(); tokenzinho = int.Parse(Token.getToken()); if (tokenzinho < 0 && tokenzinho > 9) { Erro.setErro(true); } } break; default: break; } }