Reusable BlitzMax NG modules for parsing, analysing, compiling, and providing editor tooling for the BlitzMax language.
Provides the shared source model, lexer, parser, immutable syntax tree, semantic model, analysis passes, symbol catalogue, completion services, interface readers, and compilation snapshots.
Import BlitzMax.LanguageBuilds on BlitzMax.Language with compiler options and diagnostics, typed
intermediate representation, lowering, generic specialization planning,
interface and build-artifact emission, and the native C backend.
Import BlitzMax.CompilerFormats BlitzMax source with parser-aware rules. It accepts source text and a
TBlitzMaxFormatOptions object, and returns either formatted text or edits
using source offsets. It does not require an LSP document or editor.
Import BlitzMax.Format
Local options:TBlitzMaxFormatOptions = New TBlitzMaxFormatOptions
options.thenStyle = "add"
Local formatted:String = TBlitzMaxFormatter.FormatText(source, "example.bmx", options)Builds on BlitzMax.Language and BlitzMax.Format with reusable Language Server Protocol support,
including diagnostics, completion, hover, navigation, rename, references,
semantic tokens, inlay hints, workspace symbols, and installed-module
discovery.
Import BlitzMax.LSPThe dependency direction is intentionally one-way:
BlitzMax.Compiler -> BlitzMax.Language
BlitzMax.Format -> BlitzMax.Language
BlitzMax.LSP -> BlitzMax.Format
BlitzMax.LSP -> BlitzMax.Language
Compiler-only planning and code generation do not enter the LSP module.
Clone this repository as blitzmax.mod beneath the mod directory of a
matching BlitzMax NG SDK:
BlitzMax/
mod/
blitzmax.mod/
language.mod/
compiler.mod/
format.mod/
lsp.mod/
Build the modules with bmk2, for example:
bmk makemods -a -r BlitzMax.Language
bmk makemods -a -r BlitzMax.Compiler
bmk makemods -a -r BlitzMax.Format
bmk makemods -a -r BlitzMax.LSPThese modules are developed together with bmk2 and bcc2 and should be updated
as a matched toolchain. The runnable bcc compiler and bls language-server
applications are maintained in the separate bcc2 repository.
Each module's doc directory contains source material used by the BlitzMax
documentation generator. Public APIs also carry bbdoc comments alongside their
declarations.