Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thaliaarchi/yspace
Work-in-progress toolchain for the Whitespace programming language
https://github.com/thaliaarchi/yspace
compiler toolchain whitespace-language
Last synced: 2 months ago
JSON representation
Work-in-progress toolchain for the Whitespace programming language
- Host: GitHub
- URL: https://github.com/thaliaarchi/yspace
- Owner: thaliaarchi
- License: mpl-2.0
- Created: 2021-06-25T03:18:26.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-07-11T17:50:52.000Z (over 2 years ago)
- Last Synced: 2023-03-21T21:48:51.760Z (almost 2 years ago)
- Topics: compiler, toolchain, whitespace-language
- Language: Rust
- Homepage:
- Size: 126 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://vii5ard.github.io/whitespace/) and
others
- Support constant or address arguments like
[WhitespaceAssembler](https://github.com/littleBugHunter/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
- Stack-based like Factor
- First-class closures (see
[“Closure elimination as constant propagation”](https://web.archive.org/web/20110726044425/http://factorcode.org/littledan/abstract.pdf))## Architecture plans
- Written in Rust
- Parses with parser combinators
- LLVM backend
- Use e-graphs for optimization ordering
([Egg](https://egraphs-good.github.io/) library)## License
This project is made available under the terms of the
[Mozilla Public License, v. 2.0](https://www.mozilla.org/en-US/MPL/2.0/).