public int readArrayBegin() {
Value v = getTop();
if(!v.isArray()) {
throw new MessageTypeException("Expected array but got not array value");
}
ArrayValue a = v.asArrayValue();
stack.reduceCount();
stack.pushArray(a.size());
values[stack.getDepth()] = a.getElementArray();
return a.size();
}