Added LineParser::gettoken_intx with basic arithmetic expression handling for LoadAndSetImage, SectionSetFlags and SectionSetInstTypes.

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@7180 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
anders_k 2020-05-02 21:53:41 +00:00
parent e73d05f1f5
commit 887d9f8723
8 changed files with 156 additions and 86 deletions

View file

@ -33,6 +33,7 @@ class LineParser {
int getnumtokens();
void eattoken();
int gettoken_int(int token, int *success=0) const;
int gettoken_intx(int token, int *success=0) const; // basic operator expressions parser
double gettoken_float(int token, int *success=0) const;
double gettoken_number(int token, int *success=0) const;
int gettoken_binstrdata(int token, char*buffer, int bufcap) const;
@ -40,6 +41,7 @@ class LineParser {
int gettoken_enum(int token, const TCHAR *strlist); // null separated list
static int parse_int(const TCHAR *str, int *success=0);
static int parse_intx(const TCHAR *str, int *success=0);
static double parse_float(const TCHAR *str, int *success=0);
static double parse_number(const TCHAR *str, int *success=0);
@ -47,6 +49,7 @@ class LineParser {
void freetokens();
int doline(TCHAR *line, int ignore_escaping=0);
inline int validate_token_index(int token, int *success=0) const;
int m_eat;
int m_nt;