Ondřej Hruška
daff23dd98
Add loop syntactic sugar; errors now use print instead of debug; add check for duplicate labels.
4 years ago
Ondřej Hruška
735f871ea0
Implement critical sections and timeslice setting cmd
4 years ago
Ondřej Hruška
8659240d01
wip coroutines and scheduler
4 years ago
Ondřej Hruška
02f73a21f4
fixes, safeguards and docs for "compile-time arithmetics"
4 years ago
Nat Lasseter
ab5fed3cfa
Fixed conditional parsing bug, npos and nneg options wrong way round
4 years ago
Ondřej Hruška
8d10fa406d
Minor "else" improvements
...
- Do not generate s.never to skip Else branch
- Add Display impl to SourcePosition
- Correct SourcePositions pointing to the end of a parsed expr instead of the beginning
- Remove 'true', 'always', 'false' and 'never' from README.md
4 years ago
Nat Lasseter
0006cd06ec
Reduce true/false conditionals down to just 'else' and warn if else is used in non-final branch
4 years ago
Nat Lasseter
12e37d4335
Introduce the 'true' and 'false' conditions
4 years ago
Ondřej Hruška
3999c51eb7
implement a more readable bit mask syntax, add (ldXX Wr Rd Rd) with separate dest and both sources
4 years ago
Ondřej Hruška
ace92a6411
rewrite the stdio module to be less broken. also add sehbang support
4 years ago
Ondřej Hruška
d5821e3552
add "swap" instr, document buffer ops
4 years ago
Ondřej Hruška
ee59096821
buffer module, replacing stacks. TODO: docs, fix parsing of "numbers tuple" in mkbfv (consumed by the conditional branch parser)
4 years ago
Ondřej Hruška
33ec1461e4
remove unnecessary cloning of SourcePosition, reduce SourcePosition size. clean, format
4 years ago
Ondřej Hruška
91573140a4
all errors now contain source location
4 years ago
Ondřej Hruška
583ac7bcbf
mouse and key input, handle close btn, mouse demo
4 years ago
Ondřej Hruška
6eef2b7ae3
cleaning
4 years ago
Ondřej Hruška
fe8bf87e6d
add round-trip tests for built-in instructions
4 years ago
Ondřej Hruška
34e339b1ca
add pretty-printer for assembled instructions
4 years ago
Ondřej Hruška
986f3be6a2
cleanup. remove conditional jumps, replaced by condition embedded in the enum
4 years ago
Ondřej Hruška
810ed2dddc
optimize labels, jumps
4 years ago
Ondřej Hruška
b06ef50acd
surround routines by far jump across
4 years ago
Ondřej Hruška
e580a2b679
Add "sym" and "def" instructions, add argument naming
4 years ago
Ondřej Hruška
4be5b4e05b
generalize parsing to allow extensions to add arbitrary syntax; add 'proc' keyword to introduce a routine.
4 years ago
Ondřej Hruška
b7345144e0
refactors
4 years ago
Ondřej Hruška
3599cb46c4
cleanup, optimize. use Arc for reference sharing
4 years ago
Ondřej Hruška
d5de189af6
add more sensible API for object handles, add drop instruction
4 years ago
Ondřej Hruška
79d5aa3cd5
renaming, cleanup, fmt, move "extension module" traits and structs into a separate mod
4 years ago
Ondřej Hruška
8222efe6da
remove "immediate ptr" data type, move read, write funcs to RunState, add %objectPtr syntax
4 years ago
Ondřej Hruška
0cd800653f
Example extension: Stacks; fixes to allow module data storage in thread context
4 years ago
Ondřej Hruška
3e0aaa71e9
Convert builtin ops into a pseudo-extension
4 years ago
Ondřej Hruška
1d444fd516
cleaning
4 years ago
Ondřej Hruška
ba0e3d0fd2
preparations for module data storage, remove broken tests (dyn trait can't implement PartialEq because ???)
4 years ago
Ondřej Hruška
44e7cd3a8f
renames, improve module API (avoid cloning)
4 years ago
Ondřej Hruška
f015104b95
re-arrange modules, add "plug-in" system so instructions can be defined in multiple crates
4 years ago