Emulating A Compiler
Prev | Chapter 2. Using the synopsis tool | Next

## Emulating A Compiler

Whenever the code to be parsed includes system headers, the parser needs to know about their location(s), and likely also about system macro definitions that may be in effect. For example, parsing:

    #include <vector>
    #include <string>

    typedef std::vector<std::string> option_list;

requires the parser to know where to find the `vector` and `string` headers.

Synopsis will attempt to emulate a compiler for the current programming language. By default, `synopsis -p Cxx` will try to locate c++ or similar, to query system flags. However, the compiler can be specified via the `--emulate-compiler` option, e.g. `synopsis -p Cxx -Wp,--emulate-compiler=/usr/local/gcc4/bin/g++`.

All languages that use the Cpp processor to preprocess the input accept the `emulate-compiler` argument, and pass it down to the Cpp parser. See the section called “The Cpp Parser” for a detailed discussion of this process.

Prev | Up | Next
Parsing Source-code | Home | Using Comments For Documentation