private TreeNode Visit(string lhsName, ILanguageExpression rhsExpr)
        {
            var node = new TreeNode("<ASSIGN> " + lhsName)
            {
                Tag = lhsName
            };

            node.Nodes.Add(rhsExpr.AcceptVisitor(this));

            return(node);
        }
示例#2
0
        /// <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);
        }
示例#4
0
        /// <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));
        }