aboutsummaryrefslogtreecommitdiff
path: root/project/src/lib-numeric.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--project/src/lib-numeric.h67
1 files changed, 60 insertions, 7 deletions
diff --git a/project/src/lib-numeric.h b/project/src/lib-numeric.h
index 1af5aa2..e3de535 100644
--- a/project/src/lib-numeric.h
+++ b/project/src/lib-numeric.h
@@ -959,8 +959,8 @@ typedef struct Var_t
double3 d3; // double3 value for references
struct
{
- uint str_len; // used length of 'str' (support of NULL bytes)
- uint str_size; // alloced size of 'str', NULL term is not counting!
+ uint str_len; // used length of 'str' (support of \0 bytes)
+ uint str_size; // alloced size of 'str', \0 term is not counting!
char *str; // NULL or string (alloced)
};
@@ -1279,8 +1279,8 @@ typedef struct ScanInfo_t
struct lex_t * lex; // for LEX scanning
struct mdl_t * mdl; // for MDL scanning
struct le_distrib_t * ld; // for LEDEF scanning
-
-} ScanInfo_t;
+}
+ScanInfo_t;
//-----------------------------------------------------------------------------
@@ -1318,8 +1318,8 @@ typedef enum ScanParamMode
SPM_STRING, // result has type char*
SPM_VAR, // result has type Var_t
-
-} ScanParamMode;
+}
+ScanParamMode;
//-----------------------------------------------------------------------------
// [[ScanParam_t]]
@@ -1335,6 +1335,30 @@ typedef struct ScanParam_t
} ScanParam_t;
+//-----------------------------------------------------------------------------
+
+bool GetScanParam
+(
+ Var_t * dest, // store value here
+ bool init, // true: initialize 'dest'
+ const ScanParam_t * sp // NULL or valid record to find value
+);
+
+void DefineScanParam
+(
+ VarMap_t *vm, // valid var list
+ ccp prefix, // NULL or prefix like "LPAR$"
+ const ScanParam_t *sp // valid record
+);
+
+void DefineScanParamList
+(
+ VarMap_t *vm, // valid var list
+ ccp prefix, // NULL or prefix like "LPAR$"
+ const ScanParam_t *sp // NULL or list of parameters
+ // list ends with sp->name==NULL
+);
+
//
///////////////////////////////////////////////////////////////////////////////
/////////////// conversion helpers ///////////////
@@ -1483,6 +1507,15 @@ Var_t * InsertVarMap
//-----------------------------------------------------------------------------
+bool DefineVar
+(
+ VarMap_t * vm, // valid variable map
+ ccp varname, // name of variable
+ Var_t *val // value to assign
+);
+
+//-----------------------------------------------------------------------------
+
bool DefineIntVar
(
VarMap_t * vm, // valid variable map
@@ -1501,9 +1534,18 @@ bool DefineDoubleVar
//-----------------------------------------------------------------------------
+bool DefineStringVar
+(
+ VarMap_t * vm, // valid variable map
+ ccp varname, // name of variable
+ ccp value // value to assign
+);
+
+//-----------------------------------------------------------------------------
+
const Var_t * FindConst
(
- ccp varname // variable name
+ ccp varname // variable name
);
//-----------------------------------------------------------------------------
@@ -2207,6 +2249,17 @@ enumError ScanAssignDoubleSI
//-----------------------------------------------------------------------------
+enumError ScanParamDefSI
+(
+ ScanInfo_t * si, // valid data
+ const ScanParam_t * sp, // NULL or scan parameter
+ // list ends with sp->name==NULL
+ VarMap_t *vm, // not NULL: define variable
+ ccp prefix // NULL or prefix like "LPAR$"
+);
+
+//-----------------------------------------------------------------------------
+
enumError ScanParamSI
(
ScanInfo_t * si, // valid data