mirror of https://git.sr.ht/~rabbits/uxnlin
f50f4cfee5 | ||
---|---|---|
etc | ||
src | ||
.build.yml | ||
.gitignore | ||
LICENSE | ||
README.md | ||
build.sh |
README.md
Uxnlin
A linter for the Uxntal programming language, written in Uxntal.
Build
You must have the Uxn assembler and emulator.
uxnasm src/uxnlin.tal bin/uxnlin.rom
Usage
The following command will read a tal
file and raise warnings if optimizations can be found.
uxncli bin/uxnlin.rom path/to/source.tal
If do not wish to assemble it yourself, you can download uxnlin.rom.
Manual
- Skip sections of code by wrapping them inside square brakets.
#01 #02 ADD ( will throw a warning )
[ #0001 #0002 ADD2 ] ( will not throw a warning )
Includes
When Uxnlin encounters an include rune, such as ~src/include.tal
, the parser will move on to evaluating the file without coming back.
This is designed to follow Drifblim's include chain pattern.
Warnings
Redundance
: Opcode effects cancel each other.Static-Arithmetic
: Arithmetic opcode on two static literals.Static-Duplicate
: Two identical static literals.Unkept
: Opcode should use non-destructive keep mode.Unsafe
: Bitwise opcode used in relative jump.Unstashed
: literal was created on the wrong stack.
Extras
- Need a hand?
- Linted with uxnlin
- Assembled with drifblim