public AbstractParserTables buildAndStoreParserTables(Class parserType, Syntax parserSyntax, Object syntaxInput, String baseName)
		throws Exception
	{
		if (parserType == null)
			parserType = LALRParserTables.class;

		Syntax syntax = parserSyntax == null ? toSyntax(syntaxInput) : parserSyntax;

		fri.util.TimeStopper ts = new fri.util.TimeStopper();
		AbstractParserTables parserTables = AbstractParserTables.construct(parserType, syntax);
		System.err.println("ParserTables scratch construction took "+ts.getTimeMillis()+" millis");

		if (PRODUCTION)
			write(ensureFileName(syntaxInput, baseName), parserTables);
		
		return parserTables;
	}