hpparser.h

Go to the documentation of this file.
00001 #ifndef HPPARSER_H
00002 #define HPPARSER_H
00003 
00004 #include <util.h>
00005 
00038 // @{
00039  
00044 #define PRS_OK                                                          0
00045 
00049 #define PRS_ERROR_PAR                                   1
00050 
00054 #define PRS_ERROR_MEMORY                                2
00055 
00059 #define PRS_ERROR_VARIABLE                              3
00060 
00064 #define PRS_ERROR_ARG                                   4
00065 
00069 #define PRS_ERROR_STACK                                 5
00070 
00074 #define PRS_ERROR_SLOT_VAR                              6
00075 
00079 #define PRS_ERROR_SLOT_FUNC                     7
00080 
00084 #define PRS_ERROR_INFINITE_SUM                  8
00085 
00089 #define PRS_ERROR_NOT_IMPLEMENTED       99
00090 // @}
00091 
00096 // @{
00097 
00102 #define xNEG            0x39976
00103 
00108 #define xNEGNEG 0x39CD5
00109 
00114 #define xABS            0x39a07
00115 
00120 #define xPLUS           0x39b58
00121 
00126 #define xMINUS          0x39cfc
00127 
00132 #define xMULTIPLY       0x39de8
00133 
00138 #define xDIVIDE 0x39f49
00139 
00144 #define xPOW            0x3a097
00145 
00150 #define xROOT           0x3a200
00151 
00156 #define xSIGN           0x3a3ee
00157 
00162 #define xSQRT           0x3a442
00163 
00168 #define xSQ                     0x3a4ef
00169 
00174 #define xSIN            0x3a57c
00175 
00180 #define xCOS            0x3a5d0
00181 
00186 #define xTAN            0x3a624
00187 
00192 #define xSINH           0x3a678         // Not yet implemented
00193 
00198 #define xCOSH           0x3a6c2         // Not yet implemented
00199 
00204 #define xTANH           0x3a70c         // Not yet implemented
00205 
00210 #define xASIN           0x3a756
00211 
00216 #define xACOS           0x3a7dc
00217 
00222 #define xATAN           0x3a844
00223 
00228 #define xASINH          0x3a88e         // Not yet implemented
00229 
00234 #define xACOSH          0x3a8d8         // Not yet implemented
00235 
00240 #define xATANH          0x3a94f         // Not yet implemented
00241 
00246 #define xEXP            0x3a9b7
00247 
00252 #define xLN                     0x3aa01
00253 
00258 #define xLOG            0x3aa73
00259 
00264 #define xALOG           0x3aae5
00265 
00270 #define xFACT           0x3abaf
00271 
00276 #define xIP                     0x3ac3d
00277 
00282 #define xFP                     0x3ac87
00283 
00288 #define xFLOOR          0x3acd1         // Not yet implemented
00289 
00294 #define xCEIL           0x3ad1b         // Not yet implemented
00295 
00300 #define xMOD      0x3afcb               // Not yet implemented
00301 
00306 #define xRAND           0x3b3e6         // Not yet implemented
00307 
00312 #define xAND            0x3ca07         // Not yet implemented
00313 
00318 #define xOR                     0x3ca8d         // Not yet implemented
00319 
00324 #define xNOT            0x3cb13         // Not yet implemented
00325 
00330 #define xXOR            0x3cb7a         // Not yet implemented
00331 
00336 #define xEQ                     0x3cbf6
00337 
00342 #define xDIFF           0x3cd21
00343 
00348 #define xLT                     0x3ce42
00349 
00354 #define xGT                     0x3cee1
00355 
00360 #define xLE                     0x3cf80
00361 
00366 #define xGE                     0x3d01f
00367 
00372 #define xDER            0x3d258         // Not yet implemented
00373 
00378 #define xINTEGRAL       0x3d47e         // Not yet implemented
00379 
00384 #define xSUM      0x3d503
00385 // @}
00386 
00391 // @{
00392 
00393 #define C_TypeVal                       1
00394 #define C_TypeFunc                      2
00395 #define C_TypeIdent                     3
00396 #define C_TypeSymb                      4
00397 
00398 // @}
00399 
00404 typedef struct entry entry_t;
00405 
00410 typedef struct function function_t;
00411 
00416 typedef struct stackeval stackeval_t;
00417 
00422 typedef struct
00423 {
00424         int Type;
00425         union
00426         {
00427            double Val;
00428            char *Ident;
00429            int Func;
00430            entry_t *Symb;
00431         } data;
00432 } element_t;
00433 
00434 extern int prs_get_error ();
00435 
00443 extern char *prs_error (int error);
00444 
00453 void prs_alg_set_angle (int angmode);
00454 
00464 extern int prs_alg_create (entry_t **stack, int size);
00465 
00475 extern int prs_alg_add_val (entry_t *stack, int level, double value);
00476 
00486 extern int prs_alg_add_ident (entry_t *stack, int level, char *ident);
00487 
00497 extern int prs_alg_add_func (entry_t *stack, int level, int code);
00498 
00508 extern int prs_alg_add_symb (entry_t *stack, int level, entry_t *expr);
00509 
00519 extern int prs_alg_eval (entry_t *stack, double *value);
00520 
00529 extern int prs_alg_set_var (char *var, double value);
00530 
00539 extern int prs_alg_get_size (entry_t *stack, int *size);
00540 
00549 extern int prs_alg_set_size (entry_t *stack, int size);
00550 
00560 extern int prs_alg_first_var (entry_t *stack, char **name);
00561 
00571 extern int prs_alg_next_var (entry_t *stack, char **name);
00572 
00582 extern int prs_alg_get_element (entry_t *stack, int level, element_t *element);
00583 
00594 extern function_t *prs_alg_func_create (int code, int nbarg, void *newfunc);
00595 
00607 extern int prs_alg_func_reg (function_t *newfunc, function_t **oldfunc);
00608 
00609 extern double prs_val (stackeval_t *x);
00610 
00611 #endif

Generated on Tue Mar 4 17:43:01 2014 for HPParser by  doxygen 1.5.0