Changeset 3925 for to-imperative


Ignore:
Timestamp:
Sep 18, 2008, 3:15:10 PM (12 years ago)
Author:
yura
Message:
Location:
to-imperative/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/trunk/c++/compiler/rfpc.cc

    r3894 r3925  
    41434143static void init_ () {
    41444144  RFP_Root = rftype::Char::create_expr (L"/usr");
    4145   RFP_Default_Boot_Path = (Char::create_expr ("/home/user/refal-bin//lib/refal-plus")) ();
     4145  RFP_Default_Boot_Path = (Char::create_expr ("/usr/local/lib/refal-plus")) ();
    41464146  RFP_Boot_Path = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"RFP_Boot_Path");
    41474147  RFP_Include_Path = Expr::create_sym< rftype::NamedObject<rftype::BoxContents> >(L"RFP_Include_Path");
  • to-imperative/trunk/compiler/refal/org/refal/plus/compiler/rfp_asail_tpp.rf

    r3921 r3925  
    114114        <Get &Const_Exprs> : v.c_exprs =
    115115          <Namespace_Control <Get &Module_Name>> :: e.nc,
    116           (/*e.init_consts*/) (/*e.decl_consts*/) (/*e.clear_consts*/) v.c_exprs $iter {
     116          (/*e.init_consts*/) (/*e.decl_consts*/) v.c_exprs $iter {
    117117            e.c_exprs : (t.name (e.value) e.decl) e.rest =
    118118              {
     
    126126                  )
    127127                  (e.decl_consts e.decl)
    128                   (e.clear_consts (e.name'.clear();'))
    129128                  e.rest;
    130                 (e.init_consts) (e.decl_consts) (e.clear_consts) e.rest;
     129                (e.init_consts) (e.decl_consts) e.rest;
    131130              };
    132           } :: (e.init_consts) (e.decl_consts) (e.clear_consts) e.c_exprs,
     131          } :: (e.init_consts) (e.decl_consts) e.c_exprs,
    133132          e.c_exprs : /*empty*/ =
    134133          e.nc
    135134          ('tfun int init_ () {' (e.init_consts ('return 0;')) '}')
    136           ('tfun int cleanup_ () {' (e.clear_consts ('global_exprs.clear();') ('return 0;')) '}')
     135          ('tfun int cleanup_ () {' (('global_exprs.clear();') ('return 0;')) '}')
    137136//T/         ('static AtStart init_registrator_ (&init_);')
    138137          <Map &Close_Namespace (<Get &Current_Namespace>)>
     
    507506Const_Expr_To_CPP {
    508507  /*empty*/ = 'empty';
    509   (SUBEXPR t.name s.pos s.len) = <Rfp2Cpp t.name> '.subexpr(' s.pos ', ' s.len ').get_ref()';
     508  (SUBEXPR t.name s.pos s.len) = <Rfp2Cpp t.name> '.subexpr(' s.pos ', ' s.len ')';
    510509                  //FIXME: It is needed to check that s.pos and s.len
    511510                  //       are in allowable bounds.
  • to-imperative/trunk/opents/samples/trefal.hh

    r3923 r3925  
    77#include <iostream>
    88#include <sstream>
     9#include <vector>
    910
    1011#define DBG fprintf(stderr,"%d: %d\n",ts::myRank,__LINE__)
     
    7172    inline GExpr (int size);
    7273
    73     GExpr& operator= (const GExpr& e) {
    74         if (terms != 0) // must be uninitialized
    75             throw 0;
    76         terms = e.terms;
    77         size = e.size;
    78         return *this;
    79     }
    80 
    8174    Term& operator[] (int i) const {
    8275        return terms[i];
     
    122115};
    123116
    124 template <class T> class ResizableArray {
    125     size_t max_size;
    126     T* array;
    127     size_t size;
    128    
     117class GlobalExprs {
     118    std::vector<GExpr> exprs;
     119    std::vector<Term*> memory;
     120
    129121  public:
    130122
    131     ResizableArray (int init_max_size = 16) : max_size(init_max_size), array(new T[init_max_size]), size(0) {}
    132 
    133     size_t add (T& elem) {
    134         if (size == max_size) {
    135             T* old_array = array;
    136             array = new T[2*max_size];
    137             memcpy(array, old_array, max_size*sizeof(T));
    138             delete[] old_array;
    139             max_size *= 2;
    140         }
    141         array[size] = elem;
    142         return size++;
    143     }
    144 
    145     size_t get_size () {
    146         return size;
    147     }
    148 
    149     T& operator[] (size_t i) {
    150         return array[i];
    151     }
    152 
    153     ~ResizableArray () {
    154         delete[] array;
    155     }
    156 };
    157 
    158 class GlobalExprs {
    159     ResizableArray<GExpr> exprs;
    160     ResizableArray<Term*> memory;
    161 
    162   public:
    163 
    164123    GlobalExprs () : exprs(), memory() {}
    165124
    166125    int add_global_expr (GExpr& expr) {
    167         return exprs.add(expr);
     126        exprs.push_back(expr);
     127        return exprs.size() - 1;
    168128    }
    169129
    170130    Term* create_new_array (size_t size) {
    171131        Term* array = new Term[size];
    172         memory.add(array);
     132        memory.push_back(array);
    173133        return array;
    174134    }
     
    179139
    180140    void clear () {
    181         for (size_t i = 0, size = exprs.get_size(); i < size; i++)
     141        for (size_t i = 0, size = exprs.size(); i < size; i++)
    182142            delete[] memory[i];
    183143    }
Note: See TracChangeset for help on using the changeset viewer.