basix_doc 0.1
/Users/mourrain/Devel/mmx/basix/glue/glue_routine.cpp
Go to the documentation of this file.
00001 
00002 #include <basix/vector.hpp>
00003 #include <basix/routine.hpp>
00004 #include <basix/tuple.hpp>
00005 #include <basix/alias.hpp>
00006 #include <basix/glue.hpp>
00007 
00008 namespace mmx {
00009   static vector<routine>
00010   GLUE_1 (const tuple<routine> &arg_1) {
00011     return vector<routine > (as_vector (arg_1));
00012   }
00013   
00014   static vector<routine>
00015   GLUE_2 (const tuple<routine> &arg_1) {
00016     return vector<routine > (as_vector (arg_1));
00017   }
00018   
00019   static iterator<generic>
00020   GLUE_3 (const vector<routine> &arg_1) {
00021     return as<iterator<generic> > (iterate (arg_1));
00022   }
00023   
00024   static int
00025   GLUE_4 (const vector<routine> &arg_1) {
00026     return N (arg_1);
00027   }
00028   
00029   static routine
00030   GLUE_5 (const vector<routine> &arg_1, const int &arg_2) {
00031     return arg_1[arg_2];
00032   }
00033   
00034   static alias<routine>
00035   GLUE_6 (const alias<vector<routine> > &arg_1, const int &arg_2) {
00036     return alias_access<routine > (arg_1, arg_2);
00037   }
00038   
00039   static vector<routine>
00040   GLUE_7 (const vector<routine> &arg_1, const int &arg_2, const int &arg_3) {
00041     return range (arg_1, arg_2, arg_3);
00042   }
00043   
00044   static vector<routine>
00045   GLUE_8 (const vector<routine> &arg_1) {
00046     return reverse (arg_1);
00047   }
00048   
00049   static vector<routine>
00050   GLUE_9 (const vector<routine> &arg_1, const vector<routine> &arg_2) {
00051     return append (arg_1, arg_2);
00052   }
00053   
00054   static alias<vector<routine> >
00055   GLUE_10 (const alias<vector<routine> > &arg_1, const vector<routine> &arg_2) {
00056     return alias_write (arg_1, arg_2);
00057   }
00058   
00059   static vector<routine>
00060   GLUE_11 (const routine &arg_1, const vector<routine> &arg_2) {
00061     return cons (arg_1, arg_2);
00062   }
00063   
00064   static routine
00065   GLUE_12 (const vector<routine> &arg_1) {
00066     return car (arg_1);
00067   }
00068   
00069   static vector<routine>
00070   GLUE_13 (const vector<routine> &arg_1) {
00071     return cdr (arg_1);
00072   }
00073   
00074   static bool
00075   GLUE_14 (const vector<routine> &arg_1) {
00076     return is_nil (arg_1);
00077   }
00078   
00079   static bool
00080   GLUE_15 (const vector<routine> &arg_1) {
00081     return is_atom (arg_1);
00082   }
00083   
00084   static vector<routine>
00085   GLUE_16 (const vector<routine> &arg_1, const routine &arg_2) {
00086     return insert (arg_1, arg_2);
00087   }
00088   
00089   static int
00090   GLUE_17 (const vector<routine> &arg_1, const routine &arg_2) {
00091     return find (arg_1, arg_2);
00092   }
00093   
00094   static bool
00095   GLUE_18 (const vector<routine> &arg_1, const routine &arg_2) {
00096     return contains (arg_1, arg_2);
00097   }
00098   
00099   static vector<generic>
00100   GLUE_19 (const vector<routine> &arg_1) {
00101     return as<vector<generic> > (arg_1);
00102   }
00103   
00104   void
00105   glue_routine () {
00106     static bool done = false;
00107     if (done) return;
00108     done = true;
00109     call_glue (string ("glue_vector_generic"));
00110     define_type<vector<routine> > (gen (lit ("Vector"), lit ("Routine")));
00111     define ("vector", GLUE_1);
00112     define ("[]", GLUE_2);
00113     define_converter (":>", GLUE_3, PENALTY_CAST);
00114     define ("#", GLUE_4);
00115     define (".[]", GLUE_5);
00116     define (".[]", GLUE_6);
00117     define (".[]", GLUE_7);
00118     define ("reverse", GLUE_8);
00119     define ("><", GLUE_9);
00120     define ("<<", GLUE_10);
00121     define ("cons", GLUE_11);
00122     define ("car", GLUE_12);
00123     define ("cdr", GLUE_13);
00124     define ("nil?", GLUE_14);
00125     define ("atom?", GLUE_15);
00126     define ("insert", GLUE_16);
00127     define ("find", GLUE_17);
00128     define ("contains?", GLUE_18);
00129     define_converter (":>", GLUE_19, PENALTY_PROMOTE_GENERIC);
00130   }
00131 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines