Parser takes care about nested arrays.
Todas las comprobaciones han sido exitosas
The build was successful.
Todas las comprobaciones han sido exitosas
The build was successful.
Este commit está contenido en:
padre
c1e30d4c68
commit
77ebce7acf
@ -795,7 +795,6 @@ PH7_PRIVATE sxi32 PH7_CompileArray(ph7_gen_state *pGen, sxi32 iCompileFlag) {
|
|||||||
sxi32(*xValidator)(ph7_gen_state *, ph7_expr_node *); /* Expression tree validator callback */
|
sxi32(*xValidator)(ph7_gen_state *, ph7_expr_node *); /* Expression tree validator callback */
|
||||||
SyToken *pKey, *pCur;
|
SyToken *pKey, *pCur;
|
||||||
sxi32 nPair = 0;
|
sxi32 nPair = 0;
|
||||||
sxi32 iNest;
|
|
||||||
sxi32 rc;
|
sxi32 rc;
|
||||||
/* Jump the opening and the trailing parenthesis. */
|
/* Jump the opening and the trailing parenthesis. */
|
||||||
pGen->pIn++;
|
pGen->pIn++;
|
||||||
@ -817,19 +816,10 @@ PH7_PRIVATE sxi32 PH7_CompileArray(ph7_gen_state *pGen, sxi32 iCompileFlag) {
|
|||||||
}
|
}
|
||||||
/* Compile the key if available */
|
/* Compile the key if available */
|
||||||
pKey = pCur;
|
pKey = pCur;
|
||||||
iNest = 0;
|
|
||||||
while(pCur < pGen->pIn) {
|
while(pCur < pGen->pIn) {
|
||||||
if((pCur->nType & PH7_TK_ARRAY_OP) && iNest <= 0) {
|
if(pCur->nType & PH7_TK_ARRAY_OP) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(pCur->nType & PH7_TK_LPAREN /*'('*/) {
|
|
||||||
iNest++;
|
|
||||||
} else if(pCur->nType & PH7_TK_RPAREN /*')'*/) {
|
|
||||||
/* Don't worry about mismatched parenthesis here,the expression
|
|
||||||
* parser will shortly detect any syntax error.
|
|
||||||
*/
|
|
||||||
iNest--;
|
|
||||||
}
|
|
||||||
pCur++;
|
pCur++;
|
||||||
}
|
}
|
||||||
rc = SXERR_EMPTY;
|
rc = SXERR_EMPTY;
|
||||||
|
Cargando…
x
Referencia en una nueva incidencia
Block a user