Language support for XZACT — the general-purpose compiled programming language with formal English syntax that compiles to native code via C transpilation and generates compliance artifacts automatically as a byproduct of compilation.
What's New in v0.4.0
- Logical operators:
and also,or else— highlighted as control flow - For-each loops:
For each item in list— native iteration over lists - Loop control:
stop repeating(break),skip to next repeat(continue) - Decrement:
decrement variable by N - Multi-argument functions:
given param1 of type X and param2 of type Y - List set-at-index:
set list at index to value - Character from code point:
character from 65→ "A" - Windows PowerShell fix: Build/Run commands now use
cmd /cto avoid UTF-16 encoding corruption - Compiler auto-detection: Finds
xzactc.exein siblingxact-compiler/examples/directory - 14 new snippets: for-each, logical operators, break/continue, decrement, multi-arg functions, countdown loop, and more
Features
Syntax Highlighting
Full TextMate grammar for all XZACT sentence forms with distinct colors for:
- Modal verbs:
shall(blue),must(red),should(yellow),may(green) - Logical operators:
and also,or else(purple, bold) - Loop control:
stop repeating,skip to next repeat(red) - Entity declarations, action definitions, relationships, enumerations
- Illegal pronouns (highlighted as errors per LEX-001)
- Type keywords:
text,whole number,decimal number,true/false,date,time
Snippets
35+ snippets covering all sentence forms. Type a prefix and press Tab:
| Prefix | Expands to |
|---|---|
let-int |
Integer variable declaration |
let-text |
Text variable declaration |
if-block |
If statement with block body |
if-else |
If-Otherwise block |
while |
While loop |
to-do |
Void function with parameter |
to-get |
Returning function with parameter |
to-do-multi |
Void function with multiple parameters |
to-get-multi |
Returning function with multiple parameters |
for-each-list |
For-each loop over a list |
and-also |
Logical AND condition |
or-else |
Logical OR condition |
break |
Stop repeating (break) |
continue |
Skip to next repeat (continue) |
decrement |
Decrement a variable |
countdown |
Countdown loop with decrement |
char-from |
Character from ASCII code point |
set-at |
Set list element at index |
cli-program |
CLI program template with argument handling |
xzact-program |
Basic program template |
Commands
| Command | Keybinding | Description |
|---|---|---|
| XZACT: Build | Ctrl+Shift+B | Compile .xzact → .c → native binary |
| XZACT: Run | Ctrl+Shift+R | Build and execute |
| XZACT: Check Quality | — | Emit generated C source |
| XZACT: Show Artifacts | — | Open the artifact dashboard panel |
Artifact Dashboard
Open the XZACT: Show Artifacts panel to see six tabs of compliance output:
- Summary — requirement counts, quality score, safety invariants
- Traceability — Requirements Traceability Matrix (RTM)
- Quality — INCOSE 8-pass quality scores
- Test — Auto-generated test stubs
- Safety — MUST invariant proof records
- IR — Generated C source
Theme
Includes "XZACT Dark" — a theme optimized for XZACT's formal English syntax with distinct modal verb coloring and v0.4.0 scopes for logical operators and loop control.
Setup
Windows (Quick Start)
cd C:\path\to\xact-compiler\examples
# Build the compiler from pre-generated C source (one-time)
gcc -O2 -o xzactc.exe xzactc_bin.c
# Compile and run any .xzact file
cmd /c ".\xzactc.exe hello.xzact > hello.c"
gcc -O2 -o hello.exe hello.c
.\hello.exe
Linux / macOS
cd xact-compiler/examples
# Build the compiler (one-time)
gcc -O2 -o xzactc xzactc_bin.c
# Compile and run
./xzactc hello.xzact > hello.c
gcc -O2 -o hello hello.c
./hello
Extension Installation
Install from .vsix:
code --install-extension Xzact-Lang-0.4.0.vsix
Or use the PowerShell install script:
.\install.ps1
Extension Settings
| Setting | Default | Description |
|---|---|---|
xzact.compilerPath |
(auto) | Path to xzactc binary. Auto-detects sibling xact-compiler/examples/ |
xzact.backend |
c |
Code generation backend (c or llvm) |
xzact.pythonPath |
python3 |
Python interpreter for the language server |
xzact.qualityLevel |
normal |
Quality engine strictness |
File Extensions
The extension activates for .xzact and .xact files.
Compilation Pipeline
.xzact source → xzactc (self-hosted parser) → C source → GCC → native binary
The compiler is itself written in XZACT and achieves a self-hosting fixed point (gen2 = gen3).