private void parse_options( String line,
				String keyword,
				String[] split,
				int lineNumber,
				boolean strictMode ) 
	throws ParseException {

	// Line has the format:
	// "Options" {+|-}<ModuleName>
	if( split.length != 2 ) {
	    throw new ParseException( "Invalid '"+keyword+"' declaration at line " + lineNumber + ". Expected 1 argument, found " + (split.length-1) + ". Line=" + line,
				      lineNumber );
	}

	Boolean optionMode;
	if( split[1].startsWith("+") ) {

	    optionMode = new Boolean(true);

	} else if( split[1].startsWith("-") ) {

	    optionMode = new Boolean(false);

	} else {

	    throw new ParseException( "Invalid '"+keyword+"' declaration at line " + lineNumber + ". '+' or '-' expected, found: '" + split[1].charAt(0) + "'. Line=" + line,
				      lineNumber );
	}

		
	if( split[1].length() <= 1 ) {
		    
	    throw new ParseException( "Invalid '"+keyword+"' declaration at line " + lineNumber + ". Module name missing. Line=" + line,
				     lineNumber );

	}

	String moduleName = split[1].substring(1);

	// Type mapping already exists?
	if( strictMode && this.optionsMap.get(moduleName) != null ) {

	    throw new ParseException( "Unexpected '"+keyword+"' collision " + lineNumber + ". Duplicate directives. Line=" + line,
				      lineNumber );
	    
	}


	this.optionsMap.put( moduleName,   // The module name
			     optionMode               // + or - (true or false)
			     );

    }