The synopsis tool combines three optional types of processors: parsers (specified with the
-p option), linker processors (specified with the
and formatters (specified with the
-f option). If a parser is selected,
any input is interpreted as source files of the respective language. Otherwise it will
be read in as a stored IR. Similarly, if a formatter is selected, output is generated
according to the formatter. Otherwise it will contain a stored IR.
For all of the three main processors, arguments can be passed down using the
-W. For example, to find out what parameters are available with the
Cxx parser, use the
$ synopsis -p Cxx -h Parameters for processor 'Synopsis.Parsers.Cxx.Parser': profile output profile data cppflags list of preprocessor flags such as -I or -D preprocess whether or not to preprocess the input ...
Then, to pass a
preprocess option, either of:
synopsis -p Cxx -Wp,--preprocess ...
synopsis -p Cxx -Wp,preprocess=True ...
The first form expects an optional string argument, while the second form expects a python expression, thus allowing to pass python objects such as lists. (But be careful to properly escape characters to get the expression through the shell !)
But passing options via the command line has its limits, both, in terms of usability, as well as for the robustness of the interface (all data have to be passed as strings !). Therefor, for any tasks demanding more flexibility a scripting interface is provided, which will be discussed in the next chapter.