This repository contains the FrameLab compiler source code. Contributions should stay focused on compiler behavior, runtime support, parsing, emitting, and tests.
Requirements:
- Node.js 18+ recommended
- npm
Install dependencies:
npm installBuild the project:
npm run buildRun the current test entrypoint:
npm testsrc/tokenizer.ts: lexical analysissrc/parser.ts: parsing logicsrc/ast.ts: AST definitionssrc/emitter-react.ts: React-oriented code generationsrc/runtime/: runtime support codesrc/test.ts: test entrypoint
- Keep changes scoped to the problem being solved.
- Preserve existing project style and naming unless there is a clear reason to refactor.
- Add or update tests when changing compiler behavior.
- Do not commit generated artifacts or dependency directories.
- Update documentation when changing developer workflow or language behavior.
Before opening a pull request:
- Run
npm run build. - Run
npm test. - Summarize the behavioral change clearly in the PR description.
- Call out parser, emitter, or runtime compatibility implications if relevant.
When reporting a bug, include:
- The input
.flsource - The expected output or behavior
- The actual output or error
- Steps to reproduce