init.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * This file is part of Gomu.
  3. *
  4. * Copyright 2016 by Jean Fromentin <jean.fromentin@math.cnrs.fr>
  5. *
  6. * Gomu is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * Gomu is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with Gomu. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #include "init.hpp"
  20. extern "C"{
  21. bool True=true;
  22. bool False=false;
  23. Gomu::Type types[]={
  24. TYPE_SENTINEL
  25. };
  26. //--- Functions ---//
  27. Gomu::Module::Function functions[]={
  28. {"Integer","len",{"String"},(void*)string_len},
  29. {"Integer","len",{"Array"},(void*)array_len},
  30. {"Integer","negate",{"Integer"},(void*)integer_negate},
  31. {"Integer","operator+",{"Integer","Integer"},(void*)integer_add},
  32. {"Integer","operator*",{"Integer","Integer"},(void*)integer_mul},
  33. {"Integer","operator/",{"Integer","Integer"},(void*)integer_quo},
  34. {"Integer","operator%",{"Integer","Integer"},(void*)integer_rem},
  35. {"Integer","operator-",{"Integer","Integer"},(void*)integer_sub},
  36. FUNC_SENTINEL
  37. };
  38. //--- Member functions ---//
  39. Gomu::Module::Function member_functions[]={
  40. {"Integer","len",{"String"},(void*)string_len},
  41. {"Array","types",{"Module"},(void*)module_types},
  42. FUNC_SENTINEL
  43. };
  44. //--- Contextual functions ---//
  45. Gomu::Module::Function contextual_functions[]={
  46. {"Void","check",{"Module"},(void*)module_check},
  47. {"Void","delete",{"Symbol"},(void*)del},
  48. {"Void","execute",{"String"},(void*)execute},
  49. {"Generic","operator=",{"Symbol","Generic"},(void*)assignment},
  50. {"Boolean","operator==",{"Generic","Generic"},(void*)equality},
  51. {"Array","symbols",{"Type"},(void*)member_symbols},
  52. {"Type","type",{"Generic"},(void*)type},
  53. FUNC_SENTINEL
  54. };
  55. Gomu::Module::Symbol symbols[]={
  56. {"true","Boolean",(void*)&True},
  57. {"false","Boolean",(void*)&False},
  58. SYMB_SENTINEL
  59. };
  60. }