private Expresion AnalizarPotencias(Token tipoDeDato) { var izquierda = AnalizarExpresionAritmeticaPrimaria(tipoDeDato); while (TokenActual.Tipo == TipoSintaxis.TokenPotencia) { var operatorToken = SiguienteToken(); var derecha = AnalizarExpresionAritmeticaPrimaria(tipoDeDato); izquierda = new ExpresionBinaria(izquierda, operatorToken, derecha); } return(izquierda); }
private Expresion AnalizarExpresionString() { var izquierda = AnalizarExpresionStringPrimaria(); while (TokenActual.Tipo == TipoSintaxis.TokenMas) { var operador = SiguienteToken(); var derecha = AnalizarExpresionStringPrimaria(); izquierda = new ExpresionBinaria(izquierda, operador, derecha); } return(izquierda); }
private Expresion AnalizarTerminos(Token tipoDeDato) { var izquierda = AnalizarFactores(tipoDeDato); while (TokenActual.Tipo == TipoSintaxis.TokenMas || TokenActual.Tipo == TipoSintaxis.TokenMenos) { var operador = SiguienteToken(); var derecha = AnalizarFactores(tipoDeDato); izquierda = new ExpresionBinaria(izquierda, operador, derecha); } return(izquierda); }
private Expresion AnalizarFactores(Token tipoDeDato) { var izquierda = AnalizarPotencias(tipoDeDato); while (TokenActual.Tipo == TipoSintaxis.TokenMultiplicacion || TokenActual.Tipo == TipoSintaxis.TokenDivision || TokenActual.Tipo == TipoSintaxis.TokenModulo) { var operador = SiguienteToken(); var right = AnalizarPotencias(tipoDeDato); izquierda = new ExpresionBinaria(izquierda, operador, right); } return(izquierda); }