The Fabl Manual
Function Index
Class Index
Globals Index
Libraries
Contents

Title Page
Introduction
Sample Code
Architecture
Syntax
Strong Typing
Polymorphism
Operators
Help
Errors
Configuration
RDF
Namespaces
Owl
Datatypes
Resources
Dot ops
Coercion
Type Casting
nil

Types
string
id
int
double
boolean
Literal
Containers
Functions
void

Home
Regarding
The Path
Classes
Delegation
Functional Values
Read/Write
Load/Store
Libraries
Imports
CGI
Errors

Fabl does not yet have a graphical debugging environment, but does have a few facilities to aid in the interactive debugging of programs.

When the Fabl interpreter encounters an error, it prints an error message, and the prompt changes from:

fabl>

to something like this

7 fabl>

In this example, the "7" means that the call stack is 7 deep. (The call stack is the sequence of function calls that were in force when the error occured). To view the call stack, use the traceback command:

void tb()

An error can be invoked by the Fabl operator:

void function error(<anyType0>,,,<anyTypen>);

The arguments to error will be printed after an error message. Example:

void function f(int n){error('n = ',n);}
void function g(int n){f(2*n)}
g(10);
-->ERROR: n = 20
tb();
-->8 f
-->7 g

The above is an excerpt of the traceback containing the relevant lines; the rest of the traceback mentions Fabl internal functions, such as

5 evaluate

The operator:

void rs()

unwinds the call stack, and returns to the normal prompt.