"Fossies" - the Fresh Open Source Software Archive

Member "irods-4.2.8/plugins/rule_engines/irods_rule_engine_plugin-irods_rule_language/include/arithmetics.hpp" (14 May 2020, 2803 Bytes) of package /linux/misc/irods-4.2.8.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "arithmetics.hpp" see the Fossies "Dox" file reference documentation.

    1 /* For copyright information please refer to files in the COPYRIGHT directory
    2  */
    3 
    4 #ifndef ARITHMETICS_HPP
    5 #define ARITHMETICS_HPP
    6 #include <math.h>
    7 #include <ctype.h>
    8 #include <stdio.h>
    9 #include <string.h>
   10 #include <time.h>
   11 #include "conversion.hpp"
   12 #include "parser.hpp"
   13 #include "irods_hashtable.h"
   14 #define POSIX_REGEXP
   15 
   16 #ifndef DEBUG
   17 
   18 #include "msParam.h"
   19 #include "rodsDef.h"
   20 
   21 #endif
   22 
   23 #define RETURN {goto ret;}
   24 
   25 /** AST evaluators */
   26 Res* evaluateActions( Node *ruleAction, Node *ruleRecovery,
   27                       int applyAll, ruleExecInfo_t *rei, int reiSaveFlag , Env *env,
   28                       rError_t *errmsg, Region *r );
   29 Res* evaluateExpression3( Node *node, int applyAll, int force, ruleExecInfo_t *rei, int reiSaveFlag, Env *env, rError_t* errmsg, Region *r );
   30 Res* attemptToEvaluateVar3( char* vn, Node *node, ruleExecInfo_t *rei, Env *env, rError_t *errmsg, Region *r );
   31 Res* evaluateVar3( char* vn, Node *node, ruleExecInfo_t *rei, Env *env, rError_t *errmsg, Region *r );
   32 Res *setVariableValue( char *varName, Res *val, Node *node, ruleExecInfo_t *rei, Env *env, rError_t *errmsg, Region *r );
   33 Res *evaluateFunctionApplication( Node *func, Node *arg, int applyAll, Node *node, ruleExecInfo_t* rei, int reiSaveFlag, Env *env, rError_t *errmsg, Region *r );
   34 Res* evaluateFunction3( Node* appNode, int applyAll, Node *astNode, Env *env, ruleExecInfo_t* rei, int reiSaveFlag, rError_t *errmsg, Region *r );
   35 Res* execAction3( char *fn, Res** args, unsigned int nargs, int applyAll, Node *node, Env *env, ruleExecInfo_t* rei, int reiSaveFlag, rError_t *errmsg, Region *r );
   36 Res* execMicroService3( char *inAction, Res** largs, unsigned int nargs, Node *node, Env *env, ruleExecInfo_t *rei, rError_t *errmsg, Region *r );
   37 Res* execRule( char *ruleName, Res** args, unsigned int narg, int applyAll, Env *outEnv, ruleExecInfo_t *rei, int reiSaveFlag, rError_t *errmsg, Region *r );
   38 Res* execRuleNodeRes( Node *rule, Res** args, unsigned int narg, int applyAll, Env *outEnv, ruleExecInfo_t *rei, int reiSaveFlag, rError_t *errmsg, Region *r );
   39 Res* matchPattern( Node *pattern, Node *val, Env *env, ruleExecInfo_t *rei, int reiSaveFlag, rError_t *errmsg, Region *r );
   40 Res* matchPattern( Node *pattern, Node *val, Env *env, ruleExecInfo_t *rei, int reiSaveFlag, rError_t *errmsg, Region *r );
   41 
   42 Res* getSessionVar( char *action,  Node *node, char *varName,  ruleExecInfo_t *rei, rError_t *errmsg, Region *r );
   43 Res* processCoercion( Node *node, Res *res, ExprType *type, Hashtable *tvarEnv, rError_t *errmsg, Region *r );
   44 int definitelyEq( Res *a, Res *b );
   45 /** utilities */
   46 char* getVariableName( Node *node );
   47 void copyFromEnv( Res**params, char **paramNames, int paramsCount, Hashtable *env, Region *r );
   48 int initializeEnv( Node *ruleHead, Res **args, int argc, Hashtable *env );
   49 
   50 
   51 
   52 #endif