1. 02 Mar, 2006 1 commit
    • Thierry Geraud's avatar
      Add meta switch-case; disambiguate typedef_. · 55d35dcf
      Thierry Geraud authored
      	"typedef exists but its value is not_found" and "typedef is
      	not found because it does not exist".
      
      - tests/case.cc: New file.
      - tests/switch.cc (where_): Precise name.
      - tests/ret.cc: New file.
      - mlc/bool.hh (assert): Remove is_true to avoid cryptic error
      message such as "is_true" inaccessible.
      - mlc/flags.hh (found): New class.
      - mlc/typedef.hh (result2): New inner class to disambiguate between
      "typedef is found but its value is not_found" and "typedef is not
      found".
      (mlc_ret, mlc_decl_typedef(ret)): Move to...
      - mlc/ret.hh: ...this new file.
      - mlc/switch.hh: Change that makes this file soon obsolete.
      - mlc/case.hh: New file.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@415 4aad255d-cdde-0310-9447-f3009e2ae8c0
      55d35dcf
  2. 20 Feb, 2006 1 commit
    • Roland Levillain's avatar
      Revamp the virtual types (aka properties) system. · 119255ef
      Roland Levillain authored
      No longer use the C++'s inheritance mechanism to ``pack'' the
      internal vtypes of a class.  Rely on a metacode algorithm to
      recursively look for vtypes in internal and external vtypes
      instead, using both the super link and a ``pseudosuper'' link to
      visit the upper classes.  The set/get classes have been replaced
      by a single class (in fact, by two classes, one for internal
      vtypes, the other for external vtypes).  The pseudosuper link is
      used to inherit (or fetch) the vtypes from a given class, without
      needing to inherit from this class.
      
      - metalic/mlc/properties.hh (mlc_equip_namespace_with_properties):
      Rewrite this macro.
      (set_types, set_ext_types): Rename as...
      (vtypes, ext_vtypes): ...this.
      (get_types, get_ext_type): Remove.
      - metalic/tests/properties.cc: Update the test.
      Check for new cases (external vtype, pseudo inheritance of
      vtypes).
      (rec_get_vtype, rec_get_ext_vtype): New.
      This class holds the algorithm for the recursive retrieval of
      internal/external vtypes.
      (typeof_): Adjust.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@414 4aad255d-cdde-0310-9447-f3009e2ae8c0
      119255ef
  3. 17 Feb, 2006 2 commits
  4. 16 Feb, 2006 3 commits
  5. 15 Feb, 2006 2 commits
  6. 14 Feb, 2006 5 commits
  7. 10 Feb, 2006 1 commit
  8. 09 Feb, 2006 1 commit
  9. 07 Feb, 2006 1 commit
    • Thierry Geraud's avatar
      Add documentation. · 5993f282
      Thierry Geraud authored
      - mlc/is_a.hh (wrap): Move to...
      - mlc/wrap.hh: ...this new file.
      - mlc/bool.hh (ensure_): Take just one parameter; the former variadic
      version is now handled by...
      (ensure_list_): ...this new class.
      - mlc/typedef.hh: Rename some internals.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@388 4aad255d-cdde-0310-9447-f3009e2ae8c0
      5993f282
  10. 26 Jan, 2006 2 commits
    • Roland Levillain's avatar
      Static `if'. · 4495d6c7
      Roland Levillain authored
      - mlc/if.hh: New file.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@387 4aad255d-cdde-0310-9447-f3009e2ae8c0
      4495d6c7
    • Thierry Geraud's avatar
      Add mlc::ensure_ and update. . · 58791344
      Thierry Geraud authored
      - mlc/bool.hh: Update documentation.
      (internal::value_<bool,b>::ret): Rename as...
      (internal::value_<bool,b>::eval): ...this.
      (bool_<true>::ensure_t): Rename as...
      (bool_<true>::internal_ensure_): ...this.
      (internal::ensure_item<i,expr>): New class.
      (internal::none_): Relocate.
      (internal::none_::internal_ensure_): New typedef.
      (ensure_): New class.
      - mlc/value.hh (is_value, is_not_value): Move to...
      - mlc/cmp.hh (is_value, is_not_value): ...here.
      (eq_, neq_): Update static checks.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@386 4aad255d-cdde-0310-9447-f3009e2ae8c0
      58791344
  11. 25 Jan, 2006 2 commits
    • Roland Levillain's avatar
      Move Metalic-related entries in their own ChangeLog. · 34bd6bb2
      Roland Levillain authored
      - metalic/mlc: Move Metalic-related entries...
      - metalic/ChangeLog: ...here (new).
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@385 4aad255d-cdde-0310-9447-f3009e2ae8c0
      34bd6bb2
    • Thierry Geraud's avatar
      Clean up of core mlc classes and add some documentation. · e398d9d6
      Thierry Geraud authored
      A lot of cleanups.  Client concrete classes in mlc are now all
      postfixed by '_'.  For instance, we have and_, int_, and so on.
      
      - metalic: New.
      - metalic/mlc: New.
      - metalic/mlc/type.hh: New.
      - metalic/mlc/bool.hh: New.
      (abstract::boolean): New class.
      (bool_): New class.
      (value, true_type, false_type): Rename as...
      (value_, true_, false_): ...these.
      (ors, ands): Rename as...
      (ors_, ands_): ...these.
      (internal): Cosmetic change.
      (is_true, is_false): Remove.
      (true_, false_): New typedef ensure_t.
      - metalic/mlc/is_a.hh: New.
      (form): Move in the internal namespace cause names are too long
      for a decent client use.
      - metalic/mlc/value.hh: New.
      (value): Rename as...
      (value_): ...this.
      (mlc_internal_decl_unsigned_): New macro.
      (mlc_internal_decl_signed_): New macro.
      (uchar_, ushort_, uint_, ulong_): New classes.
      (schar_, short_, int_, long_): New classes.
      (is_value, is_not_value): New meta-functions.
      - metalic/mlc/flags.hh: New.
      (flag): New abstract class.
      (undefined_type, unknown_type, no_type): Rename as...
      (undefined, unknown, none): ...these.
      (not_ok): Remove cause useless.
      - metalic/mlc/cmp.hh: New.
      (eq, neq): Rename as...
      (eq_, neq_): ...these.
      (is_found, is_not_found, is_ok): Remove cause irrelevant here.
      (mlc_is_found, mlc_is_not_found): Likewise.
      - metalic/mlc/typedef.hh: New.
      
      
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@384 4aad255d-cdde-0310-9447-f3009e2ae8c0
      e398d9d6
  12. 24 Jan, 2006 3 commits