1. Unary-Pre operators detection fixed.
2. Unary Minus operator added (now legal, worked before?). 3. GetReference operator (&). For example (a=&b; *a=3;) will set b=3. 4. Operators precedence added (C-like), much more intellectual expressions parsing. 5. Functions redefenition added, use "#name", like "func()(1); #func()(2);". git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2950 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
f82158960d
commit
b2574f6b3b
7 changed files with 221 additions and 189 deletions
|
@ -92,7 +92,7 @@ ExpressionItem *AllocArray(int s)
|
|||
|
||||
ExpressionItem *ai = (ExpressionItem*)dbgGlobalAlloc(GPTR,sizeof(ExpressionItem));
|
||||
ai->type = IT_CONST | ITC_ARRAY;
|
||||
ai->param1 = (int) dbgGlobalAlloc(GPTR, sizeof(ArrayDesc));
|
||||
ai->param1 = (EIPARAM) dbgGlobalAlloc(GPTR, sizeof(ArrayDesc));
|
||||
|
||||
ArrayDesc *ad = *((ArrayDesc**)&(ai->param1));
|
||||
// initialize and clear the array memory
|
||||
|
@ -118,7 +118,7 @@ ExpressionItem *CopyItem(ExpressionItem *citem, int NeedConst)
|
|||
item->type = citem->type;
|
||||
if ((item->type & (ITEMTYPE | ITEMSUBTYPE)) == (IT_CONST | ITC_STRING))
|
||||
{
|
||||
item->param1 = (int) AllocString();
|
||||
item->param1 = (EIPARAM) AllocString();
|
||||
lstrcpy((LPSTR) item->param1, (LPSTR) citem->param1);
|
||||
} else if (((item->type & (ITEMTYPE | ITEMSUBTYPE)) == (IT_CONST | ITC_ARRAY))
|
||||
||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue