69d4bb51f4
Add copyright and license comments
2024-10-24 23:06:25 +01:00
a8d8bd216b
Add AGPL 3.0 license
2024-10-24 23:02:52 +01:00
4a5ada1008
Add a little more to the README
2024-10-24 23:02:31 +01:00
b41c58ed7b
Enable address and undefined behavior sanitizers
2024-10-24 22:54:15 +01:00
4c24611172
Remove \n from puts() call
...
The newline is added by puts() so this led to double newlines.
2024-10-24 22:54:11 +01:00
f591809d1f
Remove read_expression and use parse_expression directly
2024-10-24 22:29:18 +01:00
b44bd100ca
Move REPL logic into application
2024-10-24 22:17:19 +01:00
acb4cd38d7
Extract line reading logic to reader and remove REPL tests
...
Reading a line into the buffer was the only logic complex enough to be
worth testing really, and exposing the necessary parts of it to test
it effectively was a pain. Makes more sense to move read_line out and
throw away most of the tests.
2024-10-24 22:09:33 +01:00
ecd50c76c5
Reinitialize memory pool on each loop of the REPL
2024-10-24 21:39:47 +01:00
e5cd69c26b
Allow whitespace in expressions
2024-10-24 21:39:47 +01:00
9f54c3552b
Handle NULL result from read_expression() in REPL
2024-10-24 21:39:47 +01:00
10803109db
Yield NULL from read_expression() on invalid input
2024-10-24 21:39:47 +01:00
e0070bfb1e
Add paren support to reader
2024-10-24 21:39:47 +01:00
7b62b58c4f
Disable optimisations (-Og isn't cutting it)
2024-10-24 21:39:47 +01:00
9988f6dcb8
Support * and / in reader
2024-10-24 21:39:47 +01:00
06bf0a1930
Return 0xdead instead of -1 on error
2024-10-24 21:39:47 +01:00
7b0f94ce98
Add * and / support to evaluator
2024-10-24 21:39:47 +01:00
9932aa7ef1
Make + and - left-associative
2024-10-24 21:39:47 +01:00
b491a1a782
Add basic EOF handling to REPL
2024-10-24 21:39:47 +01:00
5ea066b75e
Refactor parsing routines
2024-10-24 21:39:47 +01:00
bb622a0766
Implement subtraction in evaluator
2024-10-24 21:39:47 +01:00
d4855813a2
Handle nesting and subtraction in reader
2024-10-24 21:39:47 +01:00
79494cd0ba
Add support for sum expressions in evaluate()
2024-10-24 21:39:47 +01:00
8ba4035afc
Add basic sum parsing
2024-10-24 21:39:47 +01:00
2e43bad1a1
Write main application code
2024-10-24 21:39:47 +01:00
8d5f5e4ede
Create basic REPL module
2024-10-24 21:39:45 +01:00
810feee55e
Simplify test framework and improve test script
2024-10-24 16:47:18 +01:00
29deffdce9
Implement number evaluation
2024-10-24 16:47:18 +01:00
3bc640b656
Skip .git directory in format and entr scripts
2024-10-24 16:47:18 +01:00
d1b350f6ec
Create test script and run from entr.sh
2024-10-24 16:24:49 +01:00
f251fd04cc
Implement decimal integer reading
2024-10-24 16:24:49 +01:00
077245b3c7
Create expression struct and memory pool
2024-10-24 16:24:49 +01:00
3d0008b496
Write test framework
2024-10-24 16:24:49 +01:00
64c3aaf077
Create project skeleton
2024-10-24 12:28:40 +01:00