Nife version Beta
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

144 lines
4.3 KiB

  1. /* Copyright (C) 2011-2022 Patrick H. E. Foubet - S.E.R.I.A.N.E.
  2. This program is free software: you can redistribute it and/or modify
  3. it under the terms of the GNU General Public License as published by
  4. the Free Software Foundation, either version 3 of the License, or any
  5. later version.
  6. This program is distributed in the hope that it will be useful,
  7. but WITHOUT ANY WARRANTY; without even the implied warranty of
  8. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  9. GNU General Public License for more details.
  10. You should have received a copy of the GNU General Public License
  11. along with this program. If not, see <http://www.gnu.org/licenses/>
  12. *******************************************************************/
  13. /* stackN.h */
  14. #ifndef __NIFE_STACKN_H__
  15. #define __NIFE_STACKN_H__
  16. #include <stdint.h>
  17. #define _VERIF_STACK_ if (StackN == VIDE) { messErr(2); return; }
  18. extern int lAdrNum(void);
  19. extern int putVal(char *V);
  20. extern void putLong(long long V);
  21. extern void putDouble(double d);
  22. extern int getParLong(long *V);
  23. extern void insertVal(void *A);
  24. extern void putVar(void *A);
  25. extern void * getVar(void);
  26. extern void IF_vers(void);
  27. extern void IF_drop(void);
  28. extern void IF_stack_clear(void);
  29. extern void printNumber(void * N);
  30. extern void numVarOff(void * N);
  31. extern void * duplicateNum(void * S, int vSoff);
  32. extern void IF_show_stack(void);
  33. extern void IFD_show_stack(void);
  34. extern void IF_ramp(void);
  35. extern void IF_dramp(void);
  36. extern void IF_DEC(void);
  37. extern void IF_HEX(void);
  38. extern void IF_OCT(void);
  39. extern void IF_BIN(void);
  40. extern void IF_REAL(void);
  41. extern void IF_INTEGER(void);
  42. extern void IF_ECHOFF(void);
  43. extern void IF_ECHOON(void);
  44. extern void IF_NBTAB(void);
  45. extern void IF_NBLIG(void);
  46. extern void IF_VAROFF(void);
  47. extern void IF_VARUP(void);
  48. extern void IF_VARDOWN(void);
  49. extern void IF_vars(void);
  50. extern void IFD_vars(void);
  51. extern void IF_point(void);
  52. extern void IF_swap(void);
  53. extern void IF_dup(void);
  54. extern void IF_over(void);
  55. extern void IF_pick(void);
  56. extern void IF_rot(void);
  57. extern void IF_unrot(void);
  58. extern void IF_roll(void);
  59. extern void IF_unroll(void);
  60. extern void IF_Ndrop(void);
  61. extern void IF_Ndup(void);
  62. extern void IF_depth(void);
  63. extern int nbOnStack(void *A);
  64. extern void IF_toArray(void);
  65. extern void IF_toScalar(void);
  66. extern void IF_toScalarR(void);
  67. extern void IF_fctD_1(double(*f)(double));
  68. extern void IF_fctD_1L(long long(*f)(double));
  69. extern void IF_fctD_1LB(long long(*f)(double));
  70. extern void IF_fctB_1(long long (*f1)(long long), double(*f2)(double));
  71. extern void IF_plus(void);
  72. extern void IF_moins(void);
  73. extern void IF_mult(void);
  74. extern void IF_div(void);
  75. extern void IF_neg(void);
  76. extern void IF_min(void);
  77. extern void IF_max(void);
  78. extern void IF_modulo(void);
  79. extern void IF_puiss(void);
  80. extern void IF_Legal(void);
  81. extern void IF_Ldiff(void);
  82. extern void IF_Lsup(void);
  83. extern void IF_Linf(void);
  84. extern void IF_Lsupeg(void);
  85. extern void IF_Linfeg(void);
  86. extern void IF_inFile_1(FILE * fd);
  87. extern void IF_inFile_1d(FILE * fd, char delim, int virg);
  88. extern void IF_inFile_2(FILE * fd);
  89. extern void IF_TShiftR(void);
  90. extern void IF_TShiftL(void);
  91. extern void IF_NTShiftR(void);
  92. extern void IF_NTShiftL(void);
  93. extern void IF_TNShiftR(void);
  94. extern void IF_TNShiftL(void);
  95. extern void IF_NTNShiftR(void);
  96. extern void IF_NTNShiftL(void);
  97. extern void IF_subTab(void);
  98. extern void IF_subTabR(void);
  99. extern void IF_NsubTab(void);
  100. extern void IF_NsubTabR(void);
  101. extern void IF_TabRev(void);
  102. extern void IF_NTabRev(void);
  103. extern void IF_TabTransp(void);
  104. extern void IF_TabTranspN(void);
  105. extern void IF_TabTranspT(void);
  106. extern int is1Tab(void);
  107. extern int is2Tab(void);
  108. extern int isNTabSameDim(int n);
  109. extern void IF_TABMin(void);
  110. extern void IF_TABMax(void);
  111. extern void IF_TABProd(void);
  112. extern void IF_TABSum(void);
  113. extern void IF_TABMinMax(void);
  114. extern void dump_eltN(int fd, void *A, uint32_t M);
  115. extern void * restore_eltN(int fd);
  116. extern void dump_stackN(int fd);
  117. extern void restore_stackN(int fd);
  118. extern void restore_links_stackN(void);
  119. /* net functions */
  120. extern void IF_NetKey(void);
  121. extern void IF_NetErrVal(void);
  122. extern void StackToNet(long n);
  123. extern void NetToStack(int s, uint32_t k);
  124. extern int NetDepth(uint32_t k);
  125. extern void IF_show_netStack(uint32_t k);
  126. extern void IF_netDrop(uint32_t k);
  127. /* meta-stacks */
  128. extern void IF_new_stackN(void);
  129. extern void IF_old_stackN(void);
  130. extern void IF_show_TStacks(void);
  131. #endif