Changeset 3905


Ignore:
Timestamp:
Sep 12, 2008, 3:04:40 PM (12 years ago)
Author:
orlov
Message:
  • Small additions.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/trunk/opents/samples/trefal.hh

    r3903 r3905  
    1919class TExpr : public ts::TVar<Expr> {
    2020  public:
    21     TExpr () {};
    22     TExpr (const GExpr& _e);
    23     TExpr (TExpr& _e, size_t _start, size_t len); // subexpression
    24     TExpr (Term& _t);                             // dereference: _t is EXPR or CONST
    25     bool operator== (TExpr& _e);
    26     TExpr operator+ (TExpr& _e);
    27     TExpr operator() ();
     21   inline TExpr () {};
     22   inline TExpr (const GExpr& _e);
     23   inline TExpr (TExpr& _e, size_t _start, size_t len); // subexpression
     24   inline TExpr (Term& _t);                             // dereference: _t is EXPR or CONST
     25   inline bool operator== (TExpr& _e);
     26   inline TExpr operator+ (TExpr& _e);
     27   inline TExpr operator() ();
    2828};
    2929
     
    6666    GExpr () : terms(0), size(0) {}
    6767
    68     GExpr (TExpr& _e);
     68    inline GExpr (TExpr& _e);
    6969
    7070    GExpr (int size) : terms(new Term[size]), size(0) {}
    7171
    7272    void init (int size) {
    73         if (terms != 0) // must be unitialized
     73        if (terms != 0) // must be uninitialized
    7474            throw 0;
    7575        terms = new Term[size];
     
    7777
    7878    GExpr& operator= (const GExpr& e) {
    79         if (terms != 0) // must be unitialized
     79        if (terms != 0) // must be uninitialized
    8080            throw 0;
    8181        terms = e.terms;
     
    104104    }
    105105
    106     void add (const GExpr& e);
     106    inline void add (const GExpr& e);
    107107
    108108    void concat (const GExpr& x) {
    109109        for (size_t i = 0; i < x.size; i++)
    110             terms[size++] = x.terms[i];
     110            add(x.terms[i]);
     111    }
     112
     113    GExpr subexpr (size_t from, size_t len) {
     114        GExpr e;
     115        e.terms = terms + from;
     116        e.size = len;
     117        return e;
    111118    }
    112119
     
    124131    GExpr* exprs;
    125132
    126     GlobalExprs () : size (200), free_idx(0), exprs(new GExpr[200]) {}
     133    GlobalExprs () : size (8), free_idx(0), exprs(new GExpr[8]) {}
    127134
    128135    int add_global_expr (const GExpr& expr) {
     
    131138            exprs = new GExpr[2*size];
    132139            memcpy(exprs, old_exprs, size*sizeof(GExpr));
    133             delete old_exprs;
     140            delete[] old_exprs;
    134141            size *= 2;
    135142        }
Note: See TracChangeset for help on using the changeset viewer.