LoopIT

The RALGOL compiler — ralgolitc

neuroConn GmbH

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

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 ;; E308else 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

LoopIT documentation · neuroConn