diff options
Diffstat (limited to 'project/src/lib-parser.c')
| -rw-r--r-- | project/src/lib-parser.c | 44 |
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 |
