@algosail/typecheck
v0.1.2
Published
Typechecker for Sail language.
Readme
@algosail/typecheck
Typechecker for Sail. Validates words and tags against signatures.
API
typecheck(table)
import { typecheck } from '@algosail/typecheck'
const errors = typecheck(symbolTable)
// errors: Array<{ message, startPosition?, endPosition? }>Returns an array of type errors. Empty array means success.
Structure
| Dir/File | Role |
|----------|------|
| lib/word/ | checkWord, checkWordBody, step checkers |
| lib/tag/ | checkTag, checkTagRefStep |
| lib/pattern/ | MATCH validation, pattern sessions |
| lib/builtin/ | applyBuiltinWordStep, applySignature |
| lib/quotation/ | inferQuotationType |
| lib/slots/ | slot_write, slot_read |
| lib/sig/ | matchSigParamType, instantiateSigParamType |
| lib/types/ | substituteBindings, typeEquals, containsVar |
| lib/utils/ | makeError, limits, semanticState |
Step Types
builtin_word— DUP, SWAP, DIP, MATCH, etc. (from builtins)word/module_word_ref— user/FFI wordsquotation—( ... )tag— tag constructor (#Just, ~Module#Tag)pattern_tag/pattern_default— MATCH branchesslot_write/slot_read— slotslist_literal,raw— literals
Dependencies
@algosail/builtins— builtin word signatures
Tests
npm testUses brittle. See lang/docs/TESTING.md.
