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

Work-in-progress toolchain for the Whitespace programming language

License

Notifications You must be signed in to change notification settings

thaliaarchi/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

Stars

Watchers

Forks