private static IAnalysisSet EvaluateLambda(ExpressionEvaluator ee, Node node) { var lambda = (LambdaExpression)node; return(ee.Scope.GetOrMakeNodeValue(node, NodeValueKind.LambdaFunction, n => MakeLambdaFunction(lambda, ee))); }
private static IAnalysisSet EvaluateUnary(ExpressionEvaluator ee, Node node) { var n = (UnaryExpression)node; return(ee.Evaluate(n.Expression).UnaryOperation(node, ee._unit, n.Op));; }
private static IAnalysisSet EvaluateBinary(ExpressionEvaluator ee, Node node) { var n = (BinaryExpression)node; return(ee.Evaluate(n.Left).BinaryOperation(node, ee._unit, n.Operator, ee.Evaluate(n.Right))); }
private static IAnalysisSet EvaluateAwait(ExpressionEvaluator ee, Node node) { var n = (AwaitExpression)node; return(ee.Evaluate(n.Expression).Await(node, ee._unit)); }
private static IAnalysisSet EvaluateBackQuote(ExpressionEvaluator ee, Node node) { return(ee.ProjectState.ClassInfos[BuiltinTypeId.Str].SelfSet); }
private static IAnalysisSet EvaluateIndex(ExpressionEvaluator ee, Node node) { var n = (IndexExpression)node; return(ee.Evaluate(n.Target).GetIndex(n, ee._unit, ee.Evaluate(n.Index))); }
private static IAnalysisSet EvaluateParenthesis(ExpressionEvaluator ee, Node node) { var n = (ParenthesisExpression)node; return(ee.Evaluate(n.Expression)); }
public void SetCurrentUnit(AnalysisUnit unit) { _eval = new ExpressionEvaluator(unit); _unit = unit; }