Flavorc Version 2.1 User's Manual

This document describes the features of the Flavor translator and how to use it within your own C++ programs. Its purpose is not to describe Flavor itself, but rather the programming environment in which flavorc-generated code operates. It is best that you are already familiar with the basic syntax and structure of Flavor (see Overview Documents for information on background documentation, or the Flavor Specification itself). Even without any prior knowledge of Flavor, however, you should be able to follow the text without problems.

Several examples will be shown to demonstrate the operation of the software; it is advisable to run and test some or all of these examples in your own platform/environment. Source code for several examples of various complexity is also available on-line.

The contents of this document are as follows.

Section 1: Using Flavor with C++
This is a detailed description of how code generated by the Flavor translator interfaces with C++. We use very simple Flavor representations based on plain text files, so that emphasis is placed on the C++ side rather than the Flavor side. In the process, all of Flavor's syntactic features are gradually introduced. This can also serve as an introduction to Flavor itself, albeit a limited one: issues like scoping rules or maps are not discussed as they do not affect C++ programming in any way.
 
Section 2: Command Line Options
Here we describe the various command line options and their effects.
 
Section 3: Verbatim Code
Verbatim code is a mechanism allowing a programmer to insert C++ code in the Flavor source code. We describe how to fully utilize this feature in order to integrate Flavor and C++ code in the same file.
 
Section 4: Pragma Statements
A description of the syntax and use of pragma statements. Pragma statements is a mechanism to trigger options setting to the translator from the Flavor source code (similar to pragma statements of a C or C++ preprocessor).
 
Section 5: Tracing
Description of tracing and the format of the trace dump.
 
Section 6: Run-Time Library
Description of the various interfaces used by the translator, including bitstream I/O, tracing, and error reporting.

We made every possible effort to ensure that document is complete and without errors. We also tried to make it as brief as possible, to ensure that you get all the necessary information quickly and can be up and running with your own code as soon as possible. Should you find any problems with the software or the documentation, we would appreciate your feedback.

Copyright © 1997 Alexandros Eleftheriadis
All Rights Reserved