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 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); }
private void MeuCompiladorIHM_Load(object sender, EventArgs e) { MeuCompiladorDAL.conecta(); if (Erro.getErro()) { MessageBox.Show(Erro.getMsg()); } }
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 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; } }
public static void gravaArquivo() { FileStream infile, outfile; int tam; char x; infile = new System.IO.FileStream("pontocom.lib", System.IO.FileMode.Open, System.IO.FileAccess.Read); outfile = new System.IO.FileStream("programa.com", System.IO.FileMode.Append, System.IO.FileAccess.Write); MeuCompiladorDAL.leIndice(); tam = int.Parse(IndLib.getTamanho()); infile.Position = int.Parse(IndLib.getInicio()); for (int i = 0; i < tam; ++i) { x = (char)infile.ReadByte(); outfile.WriteByte((byte)x); } infile.Close(); outfile.Close(); }
private void MeuCompiladorIHM_FormClosing(object sender, FormClosingEventArgs e) { MeuCompiladorDAL.desconecta(); }
public static void scanner() { FileStream infile; int tam; int kl = 1; char x; String aux = ""; infile = new System.IO.FileStream("pftmp.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read); MeuCompiladorDAL.deletaTTokensValidos(); tam = (int)infile.Length; for (int i = 0; i < tam; ++i) { x = (char)infile.ReadByte(); if (char.IsDigit(x)) { while (char.IsDigit(x)) { aux = aux + x; x = (char)infile.ReadByte(); ++i; } Token.setCodigo("200"); Token.setToken(aux); Token.setTipo("Inteiro"); Token.setLinha(kl.ToString()); MeuCompiladorDAL.inseriUmTokenValido(); aux = ""; } if (char.IsLetter(x)) { aux = ""; while (char.IsLetter(x)) { aux = aux + x; x = (char)infile.ReadByte(); ++i; } Token.setToken(aux); Token.setTipo("String"); Token.setLinha(kl.ToString()); MeuCompiladorDAL.consultaUmToken(); if (Erro.getErro()) { return; } else { MeuCompiladorDAL.inseriUmTokenValido(); } aux = ""; } if (char.IsPunctuation(x) || char.IsSymbol(x)) { Token.setToken(x.ToString()); Token.setTipo("Delimitador"); Token.setLinha(kl.ToString()); MeuCompiladorDAL.consultaUmToken(); if (Erro.getErro()) { return; } else { MeuCompiladorDAL.inseriUmTokenValido(); } } if (x == 13) { ++kl; } } infile.Close(); }