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]]
  
util/baja.1267481330.txt · Last modified: 2010/03/01 14:08 by digitalman
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0