private Token getTokenConstant(char[] input, int start) {
		TokenConstant token = null;
		Pattern pattern = getPattern("^[0-9]");
		Matcher matcher = pattern.matcher(String.valueOf(input[start]));
		if (matcher.find()) {
			pattern = getPattern("^[0-9]*\\.?[0-9]+");
			String subString = getSubString(input, start, MAX_CONSTANT_LENGTH
					+ 1 + MAX_FRACTION_LENGTH);
			matcher = pattern.matcher(subString);
			if (matcher.find()) {
				String original = matcher.group();
				token = new TokenConstant();
				token.setOriginal(original);
				token.setStart(start);
				token.setEnd(start + original.length() - 1);
				int dot = original.indexOf(".");
				int value = 0;
				int fraction = 0;
				int devide = 1;
				if (dot == -1) {
					value = Integer.parseInt(original);
				} else {
					value = Integer.parseInt(original.substring(0, dot));
					if (dot < original.length() - 1) {
						String sFraction = original.substring(dot + 1);
						fraction = Integer.parseInt(sFraction);
						for (int i = 0; i < sFraction.length(); i++) {
							devide = devide * FLOATING_POINT_DEVICE_OFFSET;
						}
					}
				}
				FloatingPoint floatingPoint = new FloatingPoint();
				floatingPoint.setValue(value);
				floatingPoint.setFraction(fraction);
				floatingPoint.setDevide(devide);
				token.setValue(floatingPoint);
			}
		}
		return token;
	}