aboutsummaryrefslogtreecommitdiff
path: root/project/src/lib-parser.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--project/src/lib-parser.c44
1 files changed, 42 insertions, 2 deletions
diff --git a/project/src/lib-parser.c b/project/src/lib-parser.c
index df0cc21..f375395 100644
--- a/project/src/lib-parser.c
+++ b/project/src/lib-parser.c
@@ -17,7 +17,7 @@
* This file is part of the SZS project. *
* Visit https://szs.wiimm.de/ for project details and sources. *
* *
- * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> *
+ * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> *
* *
***************************************************************************
* *
@@ -5972,7 +5972,7 @@ void CalcExpr
FreeV(dest);
dest->mode = VAR_INT;
dest->i = op_id == OPI_NEQNEQ;
- return;
+ return;
case OPI_EQ: // S
case OPI_NEQ: // S
@@ -7355,6 +7355,46 @@ enumError ScanUValueSI
///////////////////////////////////////////////////////////////////////////////
+enumError ScanIntValueSI
+(
+ ScanInfo_t * si, // valid data
+ int * num // return value
+)
+{
+ DASSERT(si);
+ DASSERT(num);
+
+ DEFINE_VAR(var);
+ enumError err = ScanValueSI(si,&var);
+ SkipCharSI(si,',');
+
+ switch(var.mode)
+ {
+ case VAR_UNSET:
+ *num = 0;
+ return err;
+
+ case VAR_INT:
+ *num = var.i;
+ return err;
+
+ case VAR_DOUBLE:
+ case VAR_VECTOR:
+ *num = double2int(var.d);
+ return err;
+
+ case VAR_STRING:
+ *num = var.str_len ? str2l(var.str,0,10) : 0;
+ break;
+ }
+
+ // only needed to avoid compiler warnings
+ *num = 0;
+ return err;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
enumError ScanDValueSI
(
ScanInfo_t * si, // valid data