public static FilaSimbolos Tokenizer(int ini, int fim, ElemFormula form, FilaSimbolos simb) { string coisa; if (ini >= form.Formula.Length) { return(simb); } if ((fim + 1) < form.Formula.Length) { if ((Validador.EhOperador(form.Formula[fim].ToString()) == false)) { if (Validador.EhOperador(form.Formula[fim + 1].ToString()) == false) { return(Tokenizer(ini, (fim + 1), form, simb)); } else { coisa = ""; for (int i = ini; i <= fim; i++) { coisa = coisa + form.Formula[i]; } simb.Enfileirar(new ElemSimbolo(coisa)); fim++; ini = fim; return(Tokenizer(ini, fim, form, simb)); } } else { simb.Enfileirar(new ElemSimbolo(form.Formula[fim].ToString())); fim++; ini = fim; return(Tokenizer(ini, fim, form, simb)); } } else { if (Validador.EhOperador(form.Formula[fim].ToString()) == false) { coisa = ""; for (int i = ini; i <= fim; i++) { coisa = coisa + form.Formula[i]; } simb.Enfileirar(new ElemSimbolo(coisa)); fim++; ini = fim; return(Tokenizer(ini, fim, form, simb)); } else { simb.Enfileirar(new ElemSimbolo(form.Formula[fim].ToString())); fim++; ini = fim; return(Tokenizer(ini, fim, form, simb)); } } }
public ElemFormula Desenfileirar() { ElemFormula aux = this.Primeiro.Proximo; this.Primeiro.Proximo = aux.Proximo; aux.Proximo = null; return(aux); }
public void ImprimeFila() { ElemFormula aux = this.Primeiro.Proximo; while (aux != null) { Console.Write("\n {0}", aux.Formula); aux = aux.Proximo; } }
public void lerArquivo(string nomeArquivo) { //Encoding.UTF8 para formatação correta dos caracteres no console StreamReader file = new StreamReader(nomeArquivo, Encoding.UTF8); while (!file.EndOfStream) { string line = file.ReadLine(); ElemFormula novo = new ElemFormula(line); Enfileirar(novo); } file.Close(); }
public ElemFormula Enfileirar(ElemFormula novo) { this.Ultimo.Proximo = novo; this.Ultimo = novo; return(Ultimo); }
// public ElemFormula Primeiro { get => primeiro; set => primeiro = value; } // public ElemFormula Ultimo { get => ultimo; set => ultimo = value; } public FilaFormulas() { this.Primeiro = new ElemFormula(); this.Ultimo = this.Primeiro; }