|
|
fed6a84bea
|
ci: set LOGLEVEL to trace to increase coverage
/ tests (push) Failing after 12m41s
|
2024-07-26 01:38:35 +02:00 |
|
|
|
7bb0d7b0a4
|
tests: lexer: remaining test cases for 100% lexer coverage
|
2024-07-26 01:38:35 +02:00 |
|
|
|
d7613c8ed2
|
lexer: fix non-stopping list() issue
Convert a SystemExit to a CompilationError
|
2024-07-26 01:33:00 +02:00 |
|
|
|
7655b2a6a8
|
ci: run coverage reports
/ tests (push) Successful in 18s
|
2024-07-26 00:38:53 +02:00 |
|
|
|
8cd5ad51ee
|
tests: parser: add parser tests
/ tests (push) Successful in 10s
|
2024-07-26 00:13:42 +02:00 |
|
|
|
032a6d9109
|
tests: lexer: simplify code, add blocks and whitespaces test-cases
|
2024-07-26 00:12:37 +02:00 |
|
|
|
89a9bb7901
|
nodes: add helper function to retrieve the pretty-printed node as a string
|
2024-07-26 00:11:38 +02:00 |
|
|
|
e28b1ef802
|
lexer: mark Token as pure
|
2024-07-26 00:10:34 +02:00 |
|
|
|
69bfae0773
|
ci: add pytest Forgejo Actions
/ tests (push) Successful in 9s
|
2024-07-25 23:10:51 +02:00 |
|
|
|
0a042d0696
|
tests: add basic lexer tests
|
2024-05-16 23:13:23 +02:00 |
|
|
|
4d13cdfb46
|
errors: use color wrapper
This allows the program to work without termcolor installed
|
2024-05-14 23:05:53 +02:00 |
|
|
|
df65952cfc
|
color: init color util class
|
2024-05-14 23:05:23 +02:00 |
|
|
|
5623bebe34
|
interpreter: make linter happier
|
2024-04-12 16:48:15 +02:00 |
|
|
|
ea4a0c2ff1
|
interpreter+main: add a working interpreter
|
2024-04-12 16:44:32 +02:00 |
|
|
|
4f63fb9dfc
|
main: enable using files as input
|
2024-04-12 16:43:08 +02:00 |
|
|
|
368629caa5
|
tests/mock: move mock to dedicated file, and add several mock entries
|
2024-04-12 16:42:46 +02:00 |
|
|
|
b27faf974f
|
parser: use TrueDivision instead of the broken Division
|
2024-04-12 16:40:31 +02:00 |
|
|
|
8f26b393d1
|
nodes: add a TrueDivision node making use of the explicit IRDiv ir item
|
2024-04-12 16:40:10 +02:00 |
|
|
|
6630fa13a5
|
ir: add dedicated IR item for division
|
2024-04-12 16:38:32 +02:00 |
|
|
|
67c2ed3a26
|
source: wrap input with a caching reader, allowing to reference source even from REPLInput.
Will be especially useful when we support files as input.
|
2024-04-12 16:34:32 +02:00 |
|
|
|
a98f38d43f
|
ir: better register shrinkage pretty printing
|
2024-04-12 16:28:06 +02:00 |
|
|
|
37bfd831f4
|
main+ir: fix errors with REPL input (and wrong output in error messages)
|
2024-04-11 20:45:30 +02:00 |
|
|
|
103339d666
|
parser: fix EOF being incorrectly returned if we already peeked it
|
2024-04-11 20:21:45 +02:00 |
|
|
|
92e02c8973
|
main+errors: move pretty printing errors into a method
|
2024-04-11 20:20:00 +02:00 |
|
|
|
d2823f5abf
|
main: improve REPL use (still broken though).
|
2024-01-11 18:50:02 +01:00 |
|
|
|
6778a5e5c8
|
source: fix crash when len(source) is zero!
|
2024-01-11 18:49:27 +01:00 |
|
|
|
c2751847d8
|
lexer: fix EOF error when feeding partial input to the lexer.
|
2024-01-11 18:48:30 +01:00 |
|
|
|
9921d9fccd
|
main: convert to use new iterator Lexer
|
2024-01-11 00:55:08 +01:00 |
|
|
|
a69788ca52
|
source: avoid printing source file twice if it is the same for beginning and end (which is very likely).
|
2024-01-11 00:54:35 +01:00 |
|
|
|
ff2435171c
|
lexer: convert to an iterator
This avoids requiring to read all the data at once (will be useful for REPL).
|
2024-01-11 00:54:02 +01:00 |
|
|
|
530214b254
|
parser: only require an iterator of tokens instead of a list
|
2024-01-11 00:52:17 +01:00 |
|
|
|
46c7907165
|
nodes: make some obvious dead-code raise a log message (Info)
|
2024-01-11 00:06:06 +01:00 |
|
|
|
7106e400aa
|
errors: add Info and Note loglevels
|
2024-01-11 00:05:50 +01:00 |
|
|
|
ddd3b13d28
|
nodes: add several asserts to make debugging some weird internal issues easier
|
2024-01-11 00:04:39 +01:00 |
|
|
|
d2d519acf4
|
lexer+parser: add BEGIN token + add delimiting pseudo_nodes to anonymous blocks (including root)
|
2024-01-11 00:02:08 +01:00 |
|
|
|
6d4c999be7
|
nodes: Block now accepts a pseudo_node list
|
2024-01-11 00:00:13 +01:00 |
|
|
|
76cdfc0b5f
|
semantic: make unused variables print a warning instead of raising an error
|
2024-01-10 23:58:29 +01:00 |
|
|
|
fcf0b9c12d
|
meta: add FORCE_COLOR to mock run environment variables
|
2024-01-10 23:57:49 +01:00 |
|
|
|
8067d8178e
|
main+ir: refactor ir from being entirely guided from main to a dedicated class in ir module
|
2024-01-09 17:16:11 +01:00 |
|
|
|
692ee511eb
|
main+errors: use stdout instead of stderr
|
2024-01-09 17:14:41 +01:00 |
|
|
|
8b0ec8cbe2
|
errors: use termcolor for terminal output coloring + enable raising non-fatal errors
|
2024-01-06 00:17:47 +01:00 |
|
|
|
cd42fac98e
|
nodes: add missing reader tracking to function calls
|
2024-01-05 23:41:41 +01:00 |
|
|
|
714c9b490e
|
semantic: warn on variable shadowing
|
2024-01-05 23:40:58 +01:00 |
|
|
|
1bf549eda4
|
semantic: better handle builtins
Attach them to a pseudo-node "builtin" for the sake of better diagnostics and assignment tracking
|
2024-01-05 23:40:31 +01:00 |
|
|
|
dfa24f2d67
|
main+ir: do register allocation + show updated register names
|
2024-01-05 23:37:56 +01:00 |
|
|
|
3e59cc84a7
|
main: update IR locations + catch and print warnings
|
2024-01-05 23:34:42 +01:00 |
|
|
|
5ed4c55522
|
main: refactor IR printing
|
2024-01-05 23:31:47 +01:00 |
|
|
|
c29d4cd9ec
|
optimizations/register_allocation: init
|
2024-01-05 23:29:53 +01:00 |
|
|
|
393615b234
|
ir: IRAssignable add helper property to give a sorted list of all uses (read or write) of the value
|
2024-01-05 23:28:07 +01:00 |
|
|
|
4469a94096
|
ir: track value reads and writes in every IRAction manipulating data
|
2024-01-05 23:27:19 +01:00 |
|