home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / mar94 / os20 / util / mcalc.lha / MCalc / Source / MCalc.h < prev    next >
C/C++ Source or Header  |  1993-12-31  |  10KB  |  259 lines

  1. /*
  2. Auto:        smake MCalc
  3. */
  4.  
  5.  
  6. /* $Revision Header built automatically *************** (do not edit) ************
  7. **
  8. ** © Copyright by GuntherSoft
  9. **
  10. ** File             : SnakeSYS:CPrgs/MUICalc/MCalc.h
  11. ** Created on       : Saturday, 02.10.93 02:16:34
  12. ** Created by       : Kai Iske
  13. ** Current revision : V1.2
  14. **
  15. **
  16. ** Purpose
  17. ** -------
  18. **   - Header-File for MCalc
  19. **
  20. ** Revision V1.2
  21. ** --------------
  22. ** created on Tuesday, 19.10.93 23:41:00  by  Kai Iske.   LogMessage :
  23. **  -*-  changed on Wednesday, 08.12.93 23:48:31  by  Kai Iske.   LogMessage :
  24. **   - Default number of history lines increased
  25. **     (Requested by : Stefan Stuntz)
  26. **  -*-  changed on Sunday, 05.12.93 22:30:41  by  Kai Iske.   LogMessage :
  27. **   - No checks were made on the ENTRY argument to an ARexx
  28. **     function
  29. **  -*-  changed on Sunday, 05.12.93 18:13:56  by  Kai Iske.   LogMessage :
  30. **   - For calculations via ARexx one can set the type, size, sign
  31. **     and angle flags seperately, now
  32. **  -*-  changed on Sunday, 05.12.93 17:50:09  by  Kai Iske.   LogMessage :
  33. **   - Improved error handling from within ARexx commands a bit
  34. **  -*-  changed on Sunday, 05.12.93 17:46:35  by  Kai Iske.   LogMessage :
  35. **   - MUIProCalc may output TeX style mathematical expressions
  36. **     when using the ARexx commands. Additionally there is another
  37. **     option to convert expressions to TeX format.
  38. **     (Requested by : Volker Güth)
  39. **  -*-  changed on Sunday, 05.12.93 16:47:59  by  Kai Iske.   LogMessage :
  40. **   - Added more ARexx functions to the default ones
  41. **     (CALC, GETINPUT, GETOUTPUT)
  42. **     (Requested by : Volker Güth)
  43. **  -*-  changed on Sunday, 05.12.93 01:47:36  by  Kai Iske.   LogMessage :
  44. **   - MUIProCalc didn`t handle extremly small values
  45. **     (Reported by : Volker Güth)
  46. **  -*-  changed on Sunday, 05.12.93 01:38:18  by  Kai Iske.   LogMessage :
  47. **   - Default values weren`t set up
  48. **   - ACLR and CLR gadget have got menu entries too, now
  49. **     (Requested by : Volker Güth)
  50. **   - History entries may be copied to clipboard now
  51. **     (Requested by : Volker Güth)
  52. **  -*-  changed on Saturday, 27.11.93 01:01:25  by  Kai Iske.   LogMessage :
  53. **   - Recompiled using SAS 6.50
  54. **  -*-  changed on Wednesday, 20.10.93 00:24:41  by  Kai Iske.   LogMessage :
  55. **   - Bug in ListView display fixed
  56. **  -*-  created on Tuesday, 19.10.93 23:41:00  by  Kai Iske.   LogMessage :
  57. **   - You may now tell MCalc to clear the input string after
  58. **     hitting RETURN or EXEC.
  59. **
  60. ** Revision V1.1
  61. ** --------------
  62. ** created on Tuesday, 12.10.93 01:50:26  by  Kai Iske.   LogMessage :
  63. **  -*-  changed on Sunday, 17.10.93 15:03:10  by  Kai Iske.   LogMessage :
  64. **   - Save and Use gadgets weren`t arranged as proposed
  65. **     by the AUISG. (Reported by: Stefan Stuntz)
  66. **   - Changed layout of Prefs window a bit
  67. **     (Suggested by: Stefan Stuntz)
  68. **  -*-  changed on Friday, 15.10.93 18:39:50  by  Kai Iske.   LogMessage :
  69. **   - NOT operator didn`t behave as expected ;) It was a simple
  70. **     negate... (Reported by : Top on IRC)
  71. **  -*-  changed on Thursday, 14.10.93 18:01:32  by  Kai Iske.   LogMessage :
  72. **   - Hex-Values may be entered using 'C'-Style now (e.g. 0xff)
  73. **  -*-  changed on Thursday, 14.10.93 00:34:55  by  Kai Iske.   LogMessage :
  74. **   - One can use the faktorian '!' behind numbers now, too.
  75. **     (Suggested by : Top on IRC)
  76. **  -*-  changed on Thursday, 14.10.93 00:28:52  by  Kai Iske.   LogMessage :
  77. **   - One could accidentially change the ordering of the
  78. **     functions and input-gadgets groups by using
  79. **     'No Functions' and 'No Input' (reported by: Top on IRC)
  80. **  -*-  created on Tuesday, 12.10.93 01:50:26  by  Kai Iske.   LogMessage :
  81. **   - Order of Input and Ouput gadgets (String + ListView) may be
  82. **     set now, ie. the input string may show up underneith the
  83. **     ListView and vice versa (Requested by Dirk Federlein)
  84. **
  85. ** Revision V1.0
  86. ** --------------
  87. ** created on Saturday, 02.10.93 02:16:34  by  Kai Iske.   LogMessage :
  88. **     --- Initial release ---
  89. **
  90. *********************************************************************************/
  91. #define REVISION "1.2"
  92. #define REVDATE  "08.12.93"
  93. #define REVTIME  "23:48:31"
  94. #define AUTHOR   "Kai Iske"
  95. #define VERNUM   1
  96. #define REVNUM   2
  97.  
  98.  
  99. #ifndef        MCALC_H
  100. #define        MCALC_H
  101.  
  102.  
  103.  
  104. /**********************************************************************/
  105. /*                         Parser-Prototypes                          */
  106. /**********************************************************************/
  107. int        yyparse(void);
  108. int        yyerror(char *s);
  109. ULONG        make_ulong(double OldVal);
  110. double        calc_fak(double Fak);
  111. double        calc_angle(double Value);
  112. BOOL        check_angle(double Value, int Mode);
  113.  
  114.  
  115.  
  116. /**********************************************************************/
  117. /*                         Scanner-Prototypes                         */
  118. /**********************************************************************/
  119. int    yylex(void);
  120. void    count(void);
  121. int    calc_int_value(char *s);
  122. int    calc_hex_value(char *s, int leng);
  123. int    calc_bin_value(char *s);
  124. int    calc_oct_value(char *s);
  125. int    calc_dbl_value(char *s);
  126.  
  127.  
  128.  
  129. /**********************************************************************/
  130. /*                   Error-Codes for Scanner/Parser                   */
  131. /**********************************************************************/
  132. #define    ERR_PARSE    1
  133. #define    ERR_UNKNOWN_CHR    2
  134. #define    ERR_DIVBY0    3
  135. #define    ERR_OVERFLOW    4
  136.  
  137.  
  138.  
  139. /**********************************************************************/
  140. /*                        Assembler-Prototypes                        */
  141. /**********************************************************************/
  142. ULONG    __asm MyASL(register __d0 ULONG In, register __d1 ULONG Out);
  143. ULONG    __asm MyASR(register __d0 ULONG In, register __d1 ULONG Out);
  144. ULONG    __asm MyLSL(register __d0 ULONG In, register __d1 ULONG Out);
  145. ULONG    __asm MyLSR(register __d0 ULONG In, register __d1 ULONG Out);
  146. ULONG    __asm MyROL(register __d0 ULONG In, register __d1 ULONG Out);
  147. ULONG    __asm MyROR(register __d0 ULONG In, register __d1 ULONG Out);
  148. ULONG    __asm MyXOR(register __d0 ULONG In, register __d1 ULONG Out);
  149. ULONG    __asm MyNAND(register __d0 ULONG In, register __d1 ULONG Out);
  150. ULONG    __asm MyNOR(register __d0 ULONG In, register __d1 ULONG Out);
  151. ULONG    __asm MyNXOR(register __d0 ULONG In, register __d1 ULONG Out);
  152. APTR    __asm DoCreatePool(register __d0 ULONG, register __d1 ULONG, register __d2 ULONG);
  153. void    __asm DoDeletePool(register __a0 APTR);
  154. APTR    __asm AllocVecPool(register __a0 APTR, register __d0 ULONG);
  155. void    __asm FreeVecPool(register __a0 APTR, register __a1 APTR);
  156.  
  157.  
  158.  
  159. /**********************************************************************/
  160. /*                   Structure for ListView display                   */
  161. /**********************************************************************/
  162. struct    ListStruct
  163. {
  164.     char    Input[258];
  165.     char    Output[258];
  166. };
  167.  
  168.  
  169.  
  170.  
  171.  
  172. /**********************************************************************/
  173. /*                         Some nice defines                          */
  174. /**********************************************************************/
  175.  
  176.     // This is our Version string
  177.  
  178. #define    MUIVERS        "$VER:MCalc "REVISION" ("REVDATE")"
  179.  
  180.  
  181.     // These are for Button/Menu IDs
  182.  
  183. #define    ID_QUIT        1            // Quit program
  184. #define    ID_ABOUT    2            // Display About
  185. #define    ID_PREFS    3            // Open Prefs
  186.  
  187. #define    ID_PICKLEFT    4            // Pick left entry from History
  188. #define    ID_PICKRIGHT    5            // Pick right entry from History
  189. #define    ID_CLIPCUTLEFT    6            // Clip left entry to clipboard
  190. #define    ID_CLIPCUTRIGHT    7            // Clip right entry to clipboard
  191.  
  192. #define    ID_DECIMAL    8            // Switch to dec display
  193. #define    ID_HEXDECIMAL    9            // Switch to hex display
  194. #define    ID_OCTAL    10            // Switch to oct display
  195. #define    ID_BINARY    11            // Switch to bin display
  196.  
  197. #define    ID_8BIT        12            // Set 8-Bit Base
  198. #define    ID_16BIT    13            // Set 16-Bit Base
  199. #define    ID_32BIT    14            // Set 32-Bit Base
  200.  
  201. #define    ID_SIGNED    15            // Switch to signed dec ouput
  202. #define    ID_UNSIGNED    16            // Switch to unsigned dec output
  203.  
  204. #define    ID_RAD        17            // Radiant angles
  205. #define    ID_DEG        18            // Degree angles
  206.  
  207. #define    ID_INPUT    19            // Received input from String gadget
  208. #define    ID_LISTVIEW    20            // Double clicked on ListView
  209. #define    ID_EXEC        21            //