Skip to content
/ yspace Public
forked from thaliaarchi/yspace

Work-in-progress toolchain for the Whitespace programming language

License

Notifications You must be signed in to change notification settings

helvm/yspace

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Work-in-progress toolchain for the Whitespace programming language

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages

  • Rust 82.8%
  • Shell 11.5%
  • Witcher Script 5.7%