Commit Graph
55 Commits
Author SHA1 Message Date
samsonium dc80de66e4 fix: review problems 2026-10-27 15:40:25 +03:00
samsonium c61322718d fix: some analysis stage problems 2026-10-27 14:12:09 +03:00
samsonium aa7a06bd22 feat: finish implementing analyzer 2026-10-27 12:50:58 +03:00
samsonium a263b6206f wip: working on analyzer
- Feat: add assigns analysis
- Fix: change node check condition in binary math analysis
- Feat: add unary and binary conditions analysis
- Fix: add type passtrough in declaration analysis
- Feat: add unary math analysis
2026-10-27 12:21:49 +03:00
samsonium 25991c6f15 wip: working on analyzer
- Feat: add binary math analysis
- Fix: check for function context in block analysis
- Feat: add 'break' analysis
- Fix: few fixes in call analysis
- Feat: add class analysis
- Feat: add construct analysis
- Feat: add declaration analysis
- Feat: add field analysis
- Feat: add function analysis
- Feat: add loop analysis
- Ref: updated utilities and context functions
2026-10-27 05:18:36 +03:00
samsonium d7630dbb6a wip: working on analyzer
- Feat: implement return analyzer
- Fix: add block return check if inside function
2026-10-26 22:20:09 +03:00
samsonium a70ad011f3 wip: working on analyzer
- Feat: add `nest_ctx` and `fin_ctx` fns for working with context and
environment
- Feat: add block analyzer
- Feat: add conditional statement analyzer
2026-10-26 21:34:54 +03:00
samsonium 62ae05b4cd wip: working on analyzer
- Feat: now symbols table store node on PUT
- Feat: call analyzer with callee resolving and arguments validate
- Feat: identifier analyzer
- Feat: analyzer utils (types compat, tok-to-type, type-to-string)
2026-10-26 20:47:24 +03:00
samsonium 4904f40037 wip: working on analyzer 2026-10-25 19:24:02 +03:00
samsonium 6d1f1ce66e fix: memory leak in postfix parsing function 2026-10-25 04:57:01 +03:00
samsonium c03fddf47f fix: fixes in compiler 2026-10-25 04:52:18 +03:00
samsonium c4eb148d17 ref: temporary comment out infinite loop check 2026-10-25 01:54:49 +03:00
samsonium 7cfb8efef4 feat: implement break 2026-10-22 21:30:32 +03:00
samsonium a20743a835 feat: implement simple infinite loop checker 2026-10-22 20:24:48 +03:00
samsonium 5dde75523d wip: working on loop infinity checker 2026-10-22 18:25:07 +03:00
samsonium cc5bbd61f2 feat: implement loops 2026-10-22 18:24:28 +03:00
samsonium 73a2a50a0b feat: add error message for variable redefenition attempt 2026-10-21 04:42:58 +03:00
samsonium c7cce94119 fix: add AST freeing on errors; add checks for parser, walker and writer are not NULL 2026-10-21 04:31:57 +03:00
samsonium 673a28fbc7 fix: check for EOF on block parsing (closing brace) 2026-10-21 04:31:02 +03:00
samsonium 5e58ea1796 Merge branch 'master' into docs 2026-10-19 20:11:53 +03:00
samsonium 1e518c4c82 fix: sanitizer checks fix (iteration 3 - final) 2026-10-19 20:11:48 +03:00
samsonium 3f2f03f931 fix: sanitizer checks fix (iteration 2) 2026-10-19 19:54:11 +03:00
samsonium 1289f6c150 fix: sanitizer checks fix (iteration 1) 2026-10-19 19:41:39 +03:00
samsonium 04b367e7a0 fix: warnings fix (after -Wall -Wextra) 2026-10-19 18:39:40 +03:00
samsonium d09468cc6b fix: critical fixes for newer compiler versions
- Add token check before parsing statement or program
- Fix program freeing
2026-10-19 17:50:31 +03:00
samsonium c2532ae11f upd: update usage hint in vm and compiler 2026-10-19 04:04:32 +03:00
samsonium 801b28e27d feat: implement address deferencing 2026-10-18 18:42:02 +03:00
samsonium c0df5fc9d4 feat: add exit builtin function 2026-10-18 18:41:49 +03:00
samsonium c0c90f4f1a fix: clear fn return type value 2026-10-17 21:24:21 +03:00
samsonium 8c33464656 feat: add null as value token 2026-10-17 21:23:50 +03:00
samsonium f1e97b94a4 fix: fix toke->value assign on name-not-found error 2026-10-17 20:20:10 +03:00
samsonium 645120eda6 feat: implement objects moving and borrowing 2026-10-17 19:24:03 +03:00
samsonium bc5d887ec4 feat: implement objects and classes 2026-10-16 18:11:28 +03:00
samsonium 683dd08181 wip: working on classes 2026-10-15 21:41:45 +03:00
samsonium 69b2253c34 feat: enhance compiler
- Add comments and test for it
- Add semicolon as required end of some expressions
- Add new arguments parser
- Add multi-file compilation
- Add colors in output
2026-10-15 17:20:43 +03:00
samsonium 1035b9193c feat: add comments 2026-10-15 15:52:47 +03:00
samsonium 2c206822ca feat: implement functions 2026-10-15 02:23:43 +03:00
samsonium cc3087296f ref: remove backpatch table in walker 2026-10-14 20:10:37 +03:00
samsonium 83ff0b5774 feat: implement conditions 2026-10-14 19:56:27 +03:00
samsonium c0dc14a0c7 feat: finished variables declaration / assign 2026-10-14 01:00:01 +03:00
samsonium 8043c30d9d fix: add separate assign to identifier statement 2026-10-12 17:29:52 +03:00
samsonium b8769ac81c fix: reader lines counter fix 2026-10-12 17:21:34 +03:00
samsonium d86d95f4fa fix: add missing breaks in walker switch-block 2026-10-12 17:20:59 +03:00
samsonium 2c76277a68 wip: working on variables 2026-10-11 19:11:49 +03:00
samsonium 83e20d78f3 feat+ref: refactor + new types 2026-10-11 08:51:54 +03:00
samsonium 028c8270f7 ref: merge stack and arg_stack into single stack 2026-10-11 06:00:26 +03:00
samsonium 96cd855c5d upd: change binary file default output extension 2026-10-11 03:59:15 +03:00
samsonium 8696d5bfe7 feat: implement math in vm 2026-10-11 03:12:35 +03:00
samsonium b9c43c6ad2 feat: implement math in compiler 2026-10-11 02:10:54 +03:00
samsonium 1db985ecb5 feat+fix: make compiler STRONGAAA
- FEAT: add source code length field in `fzl_reader_t` struct
- FIX: check name, lpair (lparen) and rpair (rparen) when lexing call
- FIX: check string literal termination
- FIX: increment position even on empty string to prevent infinite
lexing loop
- FIX: add string terminator in `fzl_mktoken` when allocating space for
string value
- FIX: add check for errors in recursevly called `walk`
- FIX: change source code holder from stack-stored `char[8192]` to
dynamically allocated with actual file size holder
- FIX: correct constant hasing util to hash actual string value instead
of link
2026-10-10 21:03:23 +03:00