The RALGOL compiler — ralgolitc
2026-06-09
The compiler
ralgolitc checks a RALGOL script’s syntax and semantics
and emits its compiled form. It runs on a normal PC, so you can develop
and validate scripts on your own machine without a device. The checks it
performs are the same ones the device runs before it accepts a script,
so a file that compiles cleanly is a file the device will accept.
The full compile-assemble-run toolchain is Linux-only. On Windows the compiler alone is available — enough to check a script’s syntax and semantics and emit its compiled form.
Download
- Linux:
linux/ralgolitc - Windows:
windows/ralgolitc.exe
It is a single self-contained binary; there is nothing to install. On Linux, make it executable once after downloading:
chmod +x ralgolitc
Put it on your PATH to call it as
ralgolitc, or run it by its full path.
Using it
Pass a script file to compile it:
ralgolitc my_script.ralgol
On success it prints the compiled representation and exits with
status 0. On failure it prints a diagnostic — with a line,
a column, and an error code — and exits non-zero, so it drops straight
into a build or pre-commit check.
The full option list (ralgolitc --help):
Usage: ralgolitc [--help] [--verbose] [--version] file
file RALGOL source file to compile
-h, --help show this help and exit
-v, --verbose print the parse trace alongside the result
--version print the compiler's build timestamp
Run ralgolitc with no file and it prints this usage. The
compiler always works on a file: give it the path to your script and
read the result, or the diagnostics, it prints.
Understanding error messages
When a script does not compile, ralgolitc prints one or
more diagnostics in this shape:
my_script.ralgol 3:32 error[E303] missing ';'
That is the file, the line and column, an error code
(E###), and a short message. The same codes are surfaced by
the VS Code extension when you save,
and the device reports the same codes when it checks a script — so what
you fix here is exactly what the device would otherwise reject.
The codes are grouped by area, which tells you where to look:
| Code | Area | Example |
|---|---|---|
E0xx |
Parsing and syntax | E000 — syntax error (an unexpected token) |
E1xx |
Interface block: field flags and word sizing | E103 — the interface does not fill whole words |
E2xx |
Field types and widths | E208 — a field is wider than 32 bits |
E3xx |
Script block and control flow | E303 — a missing ;; E308 —
else must be last |
E4xx |
Variable, array, and slice references | E401 — a self-referential variable needs context |
A single mistake can produce several diagnostics — for example a
field that is too wide also breaks the word alignment around it. Fix the
first one and re-run; the follow-on messages usually clear with it. The
scripting guide walks through the most
common errors (E208, E303, E308)
on real scripts, and the language
reference describes the grammar and the field rules the checks
enforce.
When an error is not clear
If a message or its code is not clear — or the compiler accepts something the device later rejects — contact neuroConn support rather than working around it. Include:
- the full diagnostic text (the whole
error[E###] ...line, and any that follow it), - the compiler version (
ralgolitc --version), and - the script, or the smallest snippet that still reproduces the message.
A clean compile is meant to mean the device will accept the script; if that ever does not hold, it is something neuroConn wants to see.
Next steps
- Scripting guide — write your own real-time scripts.
- Interface design guide — design the interface block.
- Language reference — the grammar, field flags, and functions.
- VS Code extension — the same checks, in the editor on save.