Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
util:baja [2010/03/01 14:08] digitalmanutil:baja [2018/06/29 21:41] (current) – Details about the include path env var/option and deprecation of Baja digital man
Line 1: Line 1:
 ====== Baja ====== ====== 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 [[custom:command shell]]s are currently written in Baja.
 +
 +**Note**:\\
 +The //Programmable Command and Menu Structure// implementation (basically, the compiled ''.bin'' file interpreter) in the Synchronet [[server:Terminal]] Server is unlikely to be enhanced in the future. Synchronet's programability and extensibility is primarily through [[custom: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 [[http://synchro.net/docs/baja.html|here]].
 +
 +Baja source files are normally stored in the Synchronet ''[[dir: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'' [[config:env|environment variable]] or by using the '-i' command-line option.
 +
 +By forcing the Baja compiler to look in a different directory (e.g. ''sbbs/[[dir:exec]]'') for ''!include''d files, you could, for example, compile ''.src'' files in your ''[[dir:mods]]'' directory which still ''!include'' files from the ''[[dir: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 [[util:unbaja]] utility, created by [[person:Deuce]], for decompiling Baja ''.bin'' files into somewhat readable (and modifiable) Baja source (''.src'') files.
 +
 +===== Usage =====
 +<file>
 +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
 +</file>
 +
 +==== Example ====
 +
 +To compile the Baja source file ''[[dir:exec]]/default.src'' into the executable module ''[[dir:exec]]/default.bin'', from the Synchronet ''[[dir:exec]]'' directory, type:
 +  baja default
 +
 +
 +==== Trivia ====
 +The marketing name "Baja", was coined by [[person:Dr. Seuss]] and inspired by vacations at our father's house in [[wp>Baja California]].
 +
  
 ===== See Also ===== ===== See Also =====
 +  * [[custom:Baja|Customization with Baja]]
 +  * [[http://synchro.net/docs/baja.html|Baja Language Reference]]
   * [[.:|Utilities]]   * [[.:|Utilities]]