private TreeNode Visit(string lhsName, ILanguageExpression rhsExpr) { var node = new TreeNode("<ASSIGN> " + lhsName) { Tag = lhsName }; node.Nodes.Add(rhsExpr.AcceptVisitor(this)); return(node); }
/// <summary> /// Evaluates the given expression if it's a simple expression else it returns null /// </summary> /// <param name="rootScope"></param> /// <param name="expr"></param> /// <returns></returns> internal static ILanguageValue EvaluateExpressionIfSimple(LanguageScope rootScope, ILanguageExpression expr) { if (!expr.IsSimpleExpression) { return(null); } var evaluator = new GMacExpressionEvaluator(rootScope); return(expr.AcceptVisitor(evaluator)); }
private TreeNode Visit(GMacFrameMultivector mvType, int lhsId, ILanguageExpression rhsExpr) { var lhsName = "#" + mvType.ParentFrame.BasisBladeName(lhsId) + "#"; var node = new TreeNode("<ASSIGN> " + lhsName) { Tag = lhsId }; node.Nodes.Add(rhsExpr.AcceptVisitor(this)); return(node); }
/// <summary> /// Evaluate the given expression inside the given scope /// </summary> /// <param name="rootScope"></param> /// <param name="expr"></param> /// <returns></returns> internal static ILanguageValue EvaluateExpression(LanguageScope rootScope, ILanguageExpression expr) { var evaluator = new GMacExpressionEvaluator(rootScope); return(expr.AcceptVisitor(evaluator)); }