private void readUseList(ObjectModule module) throws SyntaxException {
		calLocation();
		int useCount = 0;
		int useCountLineNum = 0;
		int useCountOffset = 0;

		try {
			useCount = scanner.nextInt();
			useCountLineNum = lineNum;
			useCountOffset = offset;
		} catch (Exception e) {
			throw new SyntaxException("Parse Error line " + lineNum 
					+ " offset " + offset + ": " + SyntaxError.NUM_EXPECTED);
		}

		module.setUseCount(useCount);

		for (int i = 0; i < useCount; i++) {
			calLocation();
			String useSymbol = "";
					
			if (!scanner.hasNext()) {
				throw new SyntaxException("Parse Error line " + useCountLineNum 
						+ " offset " + useCountOffset + ": " + SyntaxError.TO_MANY_USE_IN_MODULE);
			}

			if (scanner.hasNext("[a-zA-Z]\\w*")) {
				useSymbol = scanner.next();
				if (useSymbol.length() > 16) {
					throw new SyntaxException("Parse Error line " + lineNum 
							+ " offset " + offset + ": " + SyntaxError.SYS_TOLONG);
				}
				//detect duplicate use symbol 
				if (scanner.hasNext(useSymbol)) {
					throw new SyntaxException("Parse Error line " + useCountLineNum 
							+ " offset " + useCountOffset + ": " + SyntaxError.TO_MANY_USE_IN_MODULE);
				}
			} else {
				throw new SyntaxException("Parse Error line " + lineNum 
						+ " offset " + offset + ": " + SyntaxError.SYM_EXPECTED);
			} 
			module.addToUseList(useSymbol);
		}
	}