if( p2 ) {// process the variable index
const char* p3 = NULL;
// push the getelementofarray method into the stack
add_scriptl(buildin_getelementofarray_ref);
add_scriptc(C_ARG);
add_scriptl(word);
// process the sub-expression for this assignment
p3 = script->parse_subexpr(p2 + 1, 1);
p3 = script->skip_space(p3);
if( *p3 != ']' ) {// closing parenthesis is required for this script
disp_error_message("Missing closing ']' parenthesis for the variable assignment.", p3);
}
// push the closing function stack operator onto the stack
add_scriptc(C_FUNC);
p3 ++;
} else {// simply push the variable or value onto the stack
add_scriptl(word);
}