Skip to content
This repository has been archived by the owner on Apr 2, 2023. It is now read-only.

Latest commit

 

History

History
53 lines (44 loc) · 1.61 KB

README.md

File metadata and controls

53 lines (44 loc) · 1.61 KB

yspace

yspace is a work-in-progress toolchain for the Whitespace programming language written in Rust.

Planned features

  • wspls language server
    • Inline values for instruction names that are preserved while editing
    • Debugging
  • wsvsc VS Code extension
    • Syntax highlighting
    • Render whitespace characters
    • Disassembly panel
  • wsasm assembler
    • Support all dialects
    • Macros like Whitelips and others
    • Support constant or address arguments like WhitespaceAssembler
    • Linting
      • Warn on usage of multiple mnemonic for same instruction
      • Warn on inconsistent mnemonics between corresponding IO instructions
      • Warn on inconsistent mnemonic capitalization
  • wsdisasm disassembler
    • Format according to dialect definition
    • Automatically collapse constant or address arguments
    • Format constants in ASCII range as chars
  • wspack compresser
    • wsx-format compression and decompression
  • wspace interpreter
    • File execution
    • Whitespace Assembly REPL

Languages

Architecture plans

  • Written in Rust
  • Parses with parser combinators
  • LLVM backend
  • Use e-graphs for optimization ordering (Egg library)

License

This project is made available under the terms of the Mozilla Public License, v. 2.0.