Go to the previous, next section.
The builder system was created to make life easier for compiler writers.
Proving good debugging support was an integral part of this philosophy.
Debugging support was provided at two levels: compile-time support
obtained from the C++ compiler and the run-time support programmed in to
the builder system.
When compiling the compiler-pass, a limited amount of error checking of
the builder structures will be provided by the C++ compiler. If operator
overloading is used, C++ compiler will check for any syntax errors.
Since all the builder structures are of the same block class, no
semantic checking will be provided at compile time.
When running the compiler pass, the builder library is invoked. All
semantic and syntax checks are done at this level. When an error is
found, the builder will print an error message and will try to continue
executing. This was done to help debugging since the first instance of
finding an error may not be the exact location of the error.
The current error messages do not print the location information of the
user program that called the builder routine. Implementing this
involves converting all the user interface calls to macros.
A nearly complete semantic and syntax check is implemented in the
builder system. If a semnatically or syntactically incorrect builder
structure is found a descriptive (hopefully) error message will be
printed with the line information of the builder library where the error
was located; not the line information of the user code.
The builder will check the code that is generated for possible errors
and will warn the user.
Go to the previous, next section.