tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

txXPathOptimizer.h (924B)


      1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 #ifndef txXPathOptimizer_h__
      7 #define txXPathOptimizer_h__
      8 
      9 #include "txCore.h"
     10 
     11 class Expr;
     12 
     13 class txXPathOptimizer {
     14 public:
     15  /**
     16   * Optimize the given expression.
     17   * @param aInExpr       Expression to optimize.
     18   * @param aOutExpr      Resulting expression, null if optimization didn't
     19   *                      result in a new expression.
     20   */
     21  void optimize(Expr* aInExpr, Expr** aOutExpr);
     22 
     23 private:
     24  // Helper methods for optimizing specific classes
     25  void optimizeStep(Expr* aInExpr, Expr** aOutExpr);
     26  void optimizePath(Expr* aInExpr, Expr** aOutExpr);
     27  void optimizeUnion(Expr* aInExpr, Expr** aOutExpr);
     28 };
     29 
     30 #endif