code: private File [] getSourceDirectories ()
    {
      final Set <File> directories = new LinkedHashSet <> ();
      if (this.sourceDirectories != null && this.sourceDirectories.length > 0)
      {
        directories.addAll (Arrays.asList (this.sourceDirectories));
      }
      else
      {
        if (this.defaultGrammarDirectoryJavaCC != null)
        {
          directories.add (this.defaultGrammarDirectoryJavaCC);
        }
        if (this.defaultGrammarDirectoryJJTree != null)
        {
          directories.add (this.defaultGrammarDirectoryJJTree);
        }
        if (this.defaultGrammarDirectoryJTB != null)
        {
          directories.add (this.defaultGrammarDirectoryJTB);
        }
      }
      return directories.toArray (new File [directories.size ()]);
    }
docs: Get the source directories that should be scanned for grammar files.
  
  @return The source directories that should be scanned for grammar files,
  never <code>null</code>.