Example #1
0
        public AstNode Optimize(AstNode astNode)
        {
            //if (AstNode != null)
            {
                //Console.WriteLine("Optimize.AstNode: {0}", AstNode);
                astNode.TransformNodes(Optimize);

                var astNodeType = astNode.GetType();

                if (_generateMappings.ContainsKey(astNodeType))
                {
                    astNode = (AstNode)_generateMappings[astNodeType].Invoke(this, new object[] { astNode });
                }
                else
                {
                    //throw(new NotImplementedException(String.Format("Don't know how to optimize {0}", AstNodeType)));
                }
            }

            return(astNode);
        }
Example #2
0
        public AstNode Optimize(AstNode AstNode)
        {
            //if (AstNode != null)
            {
                //Console.WriteLine("Optimize.AstNode: {0}", AstNode);
                AstNode.TransformNodes(Optimize);

                var AstNodeType = AstNode.GetType();

                if (GenerateMappings.ContainsKey(AstNodeType))
                {
                    AstNode = (AstNode)GenerateMappings[AstNodeType].Invoke(this, new[] { AstNode });
                }
                else
                {
                    //throw(new NotImplementedException(String.Format("Don't know how to optimize {0}", AstNodeType)));
                }
            }

            return AstNode;
        }