source-highlight 

Highlight the syntax of a source file (e.g. Java) into a specific format (e.g.
HTML)

Usage:  [OPTIONS]... < INPUT_FILE > OUTPUT_FILE
       source-highlight [OPTIONS]... -i INPUT_FILE -o OUTPUT_FILE
       source-highlight [OPTIONS]... [FILES]...

  -h, --help                    Print help and exit
      --detailed-help           Print help, including all details and hidden
                                  options, and exit
  -V, --version                 Print version and exit
  -i, --input=FILENAME          Input file (default=stdin)
  -o, --output=FILENAME         Output file (default=stdout, when the third
                                  invocation form is used). If 'STDOUT' is
                                  specified, the output is directed to standard
                                  output

You can simply specify some files at the command line and also use regular
expressions (for instance *.java).  In this case the name for the output files
will be formed using the name of the source file with a .EXT appended, where
EXT is the extension chosen according to the output format specified (for
instance .html).

  -s, --src-lang=STRING         source language (use --lang-list to get the
                                  complete list).  If not specified, the source
                                  language will be guessed from the file
                                  extension.
      --lang-list               list all the supported language and associated
                                  language definition file
      --outlang-list            list all the supported output language and
                                  associated language definition file
  -f, --out-format=STRING       output format (use --outlang-list to get the
                                  complete list)  (default=`html')
  -d, --doc                     create an output file that can be used as a
                                  stand alone document (e.g., not to be
                                  included in another one)
      --no-doc                  cancel the --doc option even if it is implied
                                  (e.g., when css is given)
  -c, --css=FILENAME            the external style sheet filename.  Implies
                                  --doc
  -T, --title=STRING            give a title to the output document.  Implies
                                  --doc
  -t, --tab=INT                 specify tab length.  (default=`8')
  -H, --header=FILENAME         file to insert as header
  -F, --footer=FILENAME         file to insert as footer
      --style-file=FILENAME     specify the file containing format options
                                  (default=`default.style')
      --style-css-file=FILENAME specify the file containing format options (in
                                  css syntax)
      --style-defaults=FILENAME specify the file containing defaults for format
                                  options  (default=`style.defaults')
      --outlang-def=FILENAME    output language definition file
      --outlang-map=FILENAME    output language map file
                                  (default=`outlang.map')
      --data-dir=PATH           directory where language definition files and
                                  language maps are searched for.  If not
                                  specified these files are searched for in the
                                  current directory and in the data dir
                                  installation directory
      --output-dir=PATH         output directory
      --lang-def=FILENAME       language definition file
      --lang-map=FILENAME       language map file  (default=`lang.map')
      --show-lang-elements=FILENAME
                                prints the language elements that are defined
                                  in the language definition file
      --infer-lang              force to infer source script language
                                  (overriding given language specification)

Lines:
  -n, --line-number[=PADDING]   number all output lines, using the specified
                                  padding character  (default=`0')
      --line-number-ref[=PREFIX]
                                number all output lines and generate an anchor,
                                  made of the specified prefix + the line
                                  number  (default=`line')

Filtering output:

 Mode: linerange
  specifying line ranges
      --line-range=STRING       generate only the lines in the specified
                                  range(s)
  each range can be of the shape: 
  	single line (e.g., --line-range=50)
  	full range (e.g., --line-range=2-10)
  	partial range (e.g., --line-range=-30, first 30 lines, 
  	--line-range=40- from line 40 to the end

      --range-separator=STRING  the optional separator to be printed among
                                  ranges (e.g., "...")
      --range-context=INT       number of (context) lines generated even if not
                                  in range
  The optional --range-context specifies the number of lines that are not in
  	range that will be printed anyway (before and after the lines in range);
  	These lines will be formatted according to the "context" style.


 Mode: regexrange
  specifying regular expression delimited ranges
      --regex-range=STRING      generate only the lines within the specified
                                  regular expressions
  when a line containing the specified regular expression is found, then
  the lines after this one are actually generated, until another line, 
  containing the same regular expression is found (this last line is not
  generated).
  More than one regular expression can be specified.

reference generation:
      --gen-references=STRING   generate references  (possible
                                  values="inline", "postline", "postdoc"
                                  default=`inline')
      --ctags-file=FILENAME     specify the file generated by ctags that will
                                  be used to generate references
                                  (default=`tags')
      --ctags=CMD               how to run the ctags command.  If this option
                                  is not specified, ctags will be executed with
                                  the default value.  If it is specified with
                                  an empty string, ctags will not be executed
                                  at all  (default=`ctags --excmd=n
                                  --tag-relative=yes')

testing:
  -v, --verbose                 verbose mode on
  -q, --quiet                   print no progress information
      --binary-output           write output files in binary mode
  This is useful for testing purposes, since you may want to make
  sure that output files are always generated with a final newline character
  only
      --statistics              print some statistics (i.e., elapsed time)
      --gen-version             put source-highlight version in the generated
                                  file  (default=on)
      --check-lang=FILENAME     only check the correctness of a language
                                  definition file
      --check-outlang=FILENAME  only check the correctness of an output
                                  language definition file
      --failsafe                if no language definition is found for the
                                  input, it is simply copied to the output
  -g, --debug-langdef[=TYPE]    debug a language definition.  In dump mode just
                                  dumps all the steps; in interactive, at each
                                  step, waits for some input (press ENTER to
                                  step)  (possible values="interactive",
                                  "dump" default=`dump')
      --show-regex=FILENAME     show the regular expression automaton
                                  corresponding to a language definition file
