CalcExpression ParsePower() { var x = ParseUnary(); while (_token.Type == Tktype.POWER) { var t = _token; GetToken(); var a = ParseUnary(); x = new CalcBinaryExpression(t, x, a); } return(x); }
CalcExpression ParseAddSub() { var x = ParseMulDiv(); while (_token.Type == Tktype.ADDSUB) { var t = _token; GetToken(); var exprArg = ParseMulDiv(); x = new CalcBinaryExpression(t, x, exprArg); } return(x); }
CalcExpression ParseMulDiv() { var x = ParsePower(); while (_token.Type == Tktype.MULDIV) { var t = _token; GetToken(); var a = ParsePower(); x = new CalcBinaryExpression(t, x, a); } return(x); }
CalcExpression ParseCompare() { var x = ParseAddSub(); while (_token.Type == Tktype.COMPARE) { var t = _token; GetToken(); var exprArg = ParseAddSub(); x = new CalcBinaryExpression(t, x, exprArg); } return(x); }