private void readDefList(ObjectModule module) throws SyntaxException {
		int defCount = 0;
		int defCountLineNum = 0;
		int defCountOffset = 0;
		calLocation();

		if (scanner.hasNextInt()) {
			// number of symbols defined in deflist
			defCount = scanner.nextInt(); 
			defCountLineNum = lineNum;
			defCountOffset = offset;
		} else {
			throw new SyntaxException("Parse Error line " + lineNum 
					+ " offset " + offset + ": " + SyntaxError.NUM_EXPECTED);
		}

		module.setDefCount(defCount);

		for (int i = 0; i < defCount; i++) {
			calLocation();
			String symbol = "";
			
			if (!scanner.hasNext()) {
				throw new SyntaxException("Parse Error line " + defCountLineNum 
						+ " offset " + defCountOffset + ": " + SyntaxError.TO_MANY_DEF_IN_MODULE);
			}
			
			if (scanner.hasNext("[a-zA-Z]\\w*")) {
				symbol = scanner.next();
				if (symbol.length() > 16) 
					throw new SyntaxException("Parse Error line " + lineNum 
							+ " offset " + offset + ": " + SyntaxError.SYS_TOLONG);
			} else {
				throw new SyntaxException("Parse Error line " + lineNum 
						+ " offset " + offset + ": " + SyntaxError.SYM_EXPECTED);
			} 

			calLocation();
			int relAddress = 0;
			try {
				relAddress = scanner.nextInt();
			} catch (Exception e) {
				throw new SyntaxException("Parse Error line " + lineNum 
						+ " offset " + offset + ": " + SyntaxError.NUM_EXPECTED);
			}

			SymbolPair sp = new SymbolPair(symbol, relAddress);
			module.defList.add(sp);
			storeSymbolTable(symbol, module.baseAddress, module.moduleNo,
					relAddress);
		}
	}