code: static List<Object> parseList(AbstractContext context, JsonParser parser, List<Object> list, boolean skipRead) {
  		try {
  			if (!skipRead) {
  				parser.nextToken();
  			}
  
  			if (parser.currentToken() != JsonToken.START_ARRAY) {
  				throw (new KriptonRuntimeException("Invalid input format"));
  			}
  
  			skipRead = false;
  
  			JsonToken token;
  			do {
  				if (skipRead) {
  					token = parser.getCurrentToken();
  				} else {
  					token = parser.nextToken();
  					skipRead = true;
  				}
  				switch (token) {
  				case VALUE_FALSE:
  				case VALUE_TRUE:
  				case VALUE_NUMBER_FLOAT:
  				case VALUE_NUMBER_INT:
  				case VALUE_STRING:
  					list.add(parser.getText());
  					break;
  				case VALUE_NULL:
  					list.add(null);
  					break;
  				case VALUE_EMBEDDED_OBJECT:
  					// parse submap
  					list.add(parseMap(context, parser, new LinkedHashMap<String, Object>(), true));
  					break;
  				case START_ARRAY:
  					list.add(parseList(context, parser, list, true));
  					break;
  				default:
  					break;
  				}
  			} while (parser.nextToken() != JsonToken.END_ARRAY);
  			return list;
  		} catch (IOException e) {
  			e.printStackTrace();
  			throw (new KriptonRuntimeException(e));
  		}
  	}
docs: Parse a list.
  
  @param context the context
  @param parser the parser
  @param list the list
  @param skipRead the skip read
  @return the list