code: static LiteralType parse(LiteralType result, String input) {
  		result.value=input;
  		Matcher matcher = CLASS_PATTERN.matcher(input);
  
  		while (matcher.find()) {
  			if (matcher.group(GROUP_SIMPLE_INDEX) != null || matcher.group(GROUP_ARRAY_INDEX) != null || matcher.group(GROUP_TYPE_GENERIC_INDEX) != null) {
  				result.value = matcher.group(GROUP_SIMPLE_INDEX);
  				if (result.value == null && matcher.group(GROUP_ARRAY_INDEX) != null) {
  					result.value = matcher.group(GROUP_ARRAY_INDEX);
  					result.array = true;
  				}
  				if (result.value == null && matcher.group(GROUP_TYPE_GENERIC_INDEX) != null) {
  					result.value = matcher.group(GROUP_TYPE_GENERIC_INDEX);
  					result.typeParameter=matcher.group(GROUP_TYPE_PARAMETER_INDEX);
  				}
  
  				if (result.value!=null && result.value.indexOf(".") >= 0) {
  					// assert: JDK lang
  					result.rawType = result.value;
  
  					if (result.rawType.startsWith("java")) {
  						// assert: raw type is type defined in jdk
  						try {
  							result.resolvedRawType = Class.forName(result.rawType);
  						} catch (ClassNotFoundException e) {
  						}
  					}
  				} else {
  					// assert: primitive
  					result.rawType = result.value;
  					result.primitive = true;
  
  					Class<?> resolved[] = { Byte.TYPE, Short.TYPE, Integer.TYPE, Long.TYPE, Float.TYPE, Double.TYPE };
  
  					for (Class<?> i : resolved) {
  						if (result.rawType.equals(i.getSimpleName())) {
  							result.resolvedRawType = i;
  							break;
  						}
  					}
  					
  					if (Void.TYPE.getSimpleName().equals(result.rawType))
  					{
  						result.resolvedRawType=Void.TYPE;
  					}
  				}
  
  			}
  		}
  		return result;
  	}
docs: Parses the.
  
  @param result the result
  @param input the input
  @return the literal type