Source map
import { FileTree } from ‘@astrojs/starlight/components’;
A flat inventory of the compiler source. Use this as a jumping-off point when you’re tracking down a feature or chasing a bug.
Reference by feature
Section titled “Reference by feature”| Feature | Primary file(s) |
|---|---|
| Indentation-sensitive lexing | SyslLexer.scala |
Literate .lsysl tangling | SyslLexer.scala |
| Expression precedence | SyslParser.scala |
| Pattern matching (parse) | SyslParser.scala |
| Pattern matching (analyse) | SyslAnalyzer.scala |
match exhaustiveness | SyslAnalyzer.scala |
| Generics (monomorphisation) | SyslAnalyzer.scala |
Traits, impl, operator overload | SyslAnalyzer.scala |
require, ensure, old() | SyslAnalyzer.scala |
Loop variant / invariant | SyslAnalyzer.scala |
Struct invariant | SyslAnalyzer.scala + backends |
within / where types | SyslAnalyzer.scala + backends |
not null pointers | SyslAnalyzer.scala + backends |
| Closures and capture analysis | SyslAnalyzer.scala + both codegens |
| String layout and concatenation | both codegens |
Ref counting and deinit | both codegens |
volatile loads and stores | SyslLLVMCodegen.scala |
#test discovery | SyslDriver.scala + syslCli |
sysl doc renderer | sysl-cli |
Companion projects in the repo
Section titled “Companion projects in the repo”| Subproject | Purpose |
|---|---|
asm/ | TRISC assembler (reads .asm, writes .tof) |
tof/ | TRISC Object File format and linker |
cpu/ | TRISC CPU emulator (the interpreter for .tof images) |
mem/ | Composable memory model used by the emulator |
trisc-cli/ | Command-line front-end for assembler / linker / emulator |
oskit/ | SLIX kernel, drivers, and userspace programs — all in Sysl |
std/ | Standard library (literate Sysl) |
docs/ | This documentation site (Astro + Starlight) |