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)); } } }