code: protected final void generate(Set<String> literals, Set<String> expressionKeywords,
  			Set<String> modifiers, Set<String> primitiveTypes, Set<String> punctuation,
  			Set<String> ignored, Set<String> specialKeywords, Set<String> typeDeclarationKeywords) {
  		final T appendable = newStyleAppendable();
  		generate(appendable, literals, expressionKeywords, modifiers, primitiveTypes, punctuation, ignored,
  				specialKeywords, typeDeclarationKeywords);
  		final String language = getLanguageSimpleName().toLowerCase();
  		final String basename = getBasename(MessageFormat.format(getBasenameTemplate(), language));
  		writeFile(basename, appendable);
  		generateAdditionalFiles(basename, appendable);
  		generateReadme(basename);
  	}
docs: Generate the external specification.
  
  @param literals the SARL literals.
  @param expressionKeywords the SARL keywords, usually within expressions.
  @param modifiers the modifier keywords.
  @param primitiveTypes the primitive types.
  @param punctuation the SARL punctuation symbols.
  @param ignored the ignored literals (mostly for information).
  @param specialKeywords the keywords that are marked as special. They are also in {@code keywords}.
  @param typeDeclarationKeywords the keywords that are marked as type declaration keywords.
  They are also in {@code keywords}.