public double Evaluate(string source) { TokenStream TS = new TokenStream(); List <Token> TheTokenStream = TS.BuildTokenStream(source); int end = 0; TheTokenStream = CreateUnaryNodes(TheTokenStream); TheTokenStream = CreateOrderBrackets(TheTokenStream); //TokenStream.PrintTokens(TheTokenStream); AstNode Root = BuildAST(TheTokenStream, 0, out end); PrintAST(Root); if (Root == null) { return(0); } return(Root.Run(TheTable)); }