Baja

Baja is a Synchronet module compiler and BASIC-like language for creating programmable command shells and modules for Synchronet versions 2 and 3.

Most Synchronet command shells are currently written in Baja.

Note:
The Programmable Command and Menu Structure implementation (basically, the compiled .bin file interpreter) in the Synchronet Terminal Server is unlikely to be enhanced in the future. Synchronet's programability and extensibility is primarily through JavaScript modules and services and future script development should be focused there.

Source

Baja source files (*.src, *.inc) are plain ASCII text files (IBM CP437 characters may also be used). The Baja language is documented here.

Baja source files are normally stored in the Synchronet exec directory.

Includes

Baja source files may include other source files (usually named *.inc) using the Baja !include directive. Included files are normally stored in the same directory as the *.src files but you can direct the Baja compiler to look in a different directory for included files by either defining the BAJAINCLUDE environment variable or by using the '-i' command-line option.

By forcing the Baja compiler to look in a different directory (e.g. sbbs/exec) for !included files, you could, for example, compile .src files in your mods directory which still !include files from the exec directory.

Compiling

Synchronet modules written “in baja”, rely on the baja utility to compile their “source” into an “executable” (interpretted) binary format (.bin file).

Note: There is a corresponding unbaja utility, created by Deuce, for decompiling Baja .bin files into somewhat readable (and modifiable) Baja source (.src) files.

Usage

usage: baja [-opts] file[.src]

 opts: -d display debug during compile
       -c case sensitive variables, labels, and macros
       -o set output directory (e.g. -o/sbbs/exec)
       -i set include directory (e.g. -i/sbbs/exec)
       -q quiet mode (no banner)
       -p pause on error

Example

To compile the Baja source file exec/default.src into the executable module exec/default.bin, from the Synchronet exec directory, type:

baja default

Trivia

The marketing name “Baja”, was coined by Dr. Seuss and inspired by vacations at our father's house in Baja California.

See Also

util/baja.txt · Last modified: 2018/06/29 21:41 by digital man
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0