basix_doc 0.1
|
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 }