Compare commits

...

42 commits

Author SHA1 Message Date
42061db034 Split 'xo-tokenizer2/' into commit '48a082cb6b'
Some checks failed
CI / smoke-test (push) Failing after 1s
git-subtree-dir: xo-tokenizer2
git-subtree-mainline: d684e7408a
git-subtree-split: 48a082cb6b
2026-05-30 12:58:57 -04:00
d684e7408a build: + xo-tokenizer2 [CI]
xo-cmake subsystem list + nix setup
2026-05-30 12:56:34 -04:00
48a082cb6b Split 'xo-alloc/' into commit 'a2b678410d'
git-subtree-dir: xo-alloc
git-subtree-mainline: 5a5f43b56e
git-subtree-split: a2b678410d
2026-05-30 12:44:07 -04:00
5f54142135 Split 'xo-alloc/' into commit 'a2b678410d'
git-subtree-dir: xo-alloc
git-subtree-mainline: 5a5f43b56e
git-subtree-split: a2b678410d
2026-05-30 12:44:07 -04:00
5a5f43b56e build: xo-alloc dep order [RITUAL] 2026-05-30 12:42:40 -04:00
2aa50b22bb Split 'xo-numeric/' into commit '7750c868b6'
git-subtree-dir: xo-numeric
git-subtree-mainline: 365f5a055f
git-subtree-split: 7750c868b6
2026-05-30 12:11:31 -04:00
a2b678410d Split 'xo-numeric/' into commit '7750c868b6'
git-subtree-dir: xo-numeric
git-subtree-mainline: 365f5a055f
git-subtree-split: 7750c868b6
2026-05-30 12:11:31 -04:00
f3205bdc4b Split 'xo-numeric/' into commit '5f2de0ad5a'
git-subtree-dir: xo-numeric
git-subtree-mainline: 8888986784
git-subtree-split: 5f2de0ad5a
2026-05-30 12:07:21 -04:00
a30f52375b Split 'xo-numeric/' into commit '5f2de0ad5a'
git-subtree-dir: xo-numeric
git-subtree-mainline: 8888986784
git-subtree-split: 5f2de0ad5a
2026-05-30 12:07:21 -04:00
ff471bbc72 xo-interpreter2 stack: wrap TokenizerError as DRuntimeError
Also fix _read_eval_print() to report them!
2026-03-27 11:16:28 -04:00
1d3af64a7a xo-tokenizer2: + op!= utest 2026-03-24 23:32:09 -04:00
4e7b58e3c9 xo-reader2: + op>= support 2026-03-12 23:41:21 -05:00
41f704f7ab xo-reader2 stack: support op<= 2026-03-12 21:08:58 -05:00
6f95f38373 xo-interpreter2: + nil + cons 2026-03-11 16:19:40 -05:00
caa8e31d02 xo-reader2: parse list types + utest 2026-03-11 14:13:48 -05:00
458fd04ca2 xo-reader2 stack: expand symbol table to store typedefs
+ typedef utest
+ misc qol policy choices
2026-03-11 07:49:14 -05:00
74642dfcfa xo-interpreter2 stack: + literal array parsing 2026-03-03 12:12:09 +11:00
650a9fa95f xo-interpreter2 stack: handle operator expressions w/ qliterals 2026-03-02 11:05:12 +11:00
9920812d42 xo-reader2 stack: + #q token + QuoteSsm [WIP - not functional] 2026-03-01 13:06:57 +11:00
6d039c03e6 xo-cmake: setup to make share target available via cmake install 2026-02-27 19:38:53 +11:00
0baa458c5b xo-reader2 stack: handle comparison expression (x == y) 2026-02-13 17:24:23 -05:00
3f5bd39ed8 xo-interpreter2 .. xo-arena. memory pool introspection 2026-02-03 01:05:36 -05:00
415a382442 xo-interpreter2: scaffold repl + alloc measurement frameowkr 2026-02-02 21:55:34 -05:00
75b9e62c84 xo-reader2: DLambdaSsm work towards producing DLambdaExpr [WIP] 2026-01-31 21:33:39 -05:00
e3006f3266 xo-reader2: + assemble lambda function type in DLambdaSsm 2026-01-30 12:41:09 -05:00
900d675caa xo-expression2 xo-reader2: local symtab stack in PSM 2026-01-30 10:26:35 -05:00
83d210b968 xo-reader2: DExpectFormalArglistSsm parses multiple formals 2026-01-29 13:48:24 -05:00
0f4e270707 xo-reader2: + DExpectFormalArgSsm [WIP] 2026-01-28 17:40:57 -05:00
a28b45e4f2 xo-reader2 xo-expression2: + DLambdaSsm [WIP] 2026-01-28 10:57:55 -05:00
f0cd32c05f xo-reader2: support if-then-else expressions. + detailed utest 2026-01-27 15:50:10 -05:00
7432a0bd1d xo-reader2: readerreplxx works + streamline debugging 2026-01-23 14:57:43 -05:00
9044e1d196 xo-reader2: + example app 'readerreplxx' 2026-01-23 11:54:32 -05:00
5d8f4b4b92 xo-reader2: working on example parser repl 2026-01-22 21:03:40 -05:00
81dcd2eb71 xo-reader2: + on_parsed_expression_with_semicolon + DefineSsm works 2026-01-22 17:15:05 -05:00
b738afac9d xo-reader2: scaffold on_singleassign_token() in PSM 2026-01-21 12:59:06 -05:00
7fadf9662e xo-reader2: DefineSsm handles colon token after lhs var
example:  def foo : f64 = 3.14;
2026-01-20 22:22:45 -05:00
9d4b50ede4 xo-tokenizer2: cosmetic / minor 2026-01-19 11:33:14 -05:00
e3be7ed2de xo-reader: + DDefineSsm + utest 2026-01-19 00:39:16 -05:00
f25d1fb738 xo-reader2 scaffold (fomo+arena version of xo-reader/) [WIP] 2026-01-18 17:59:46 -05:00
a7ed10c16a xo-tokenizer: example tokenrepl restored to wokring order
Now with CBufferedInput in Tokenizer
2026-01-11 19:10:42 -05:00
1575f8a147 xo-tokenizer2: use xo-arena DCircularBuffer to buffer input line 2026-01-11 18:42:08 -05:00
b9921d4108 + xo-tokenizer2 xo-reader2 xo-expression2 xo-interpreter2
2nd gen schematika interpreter using fomo
2026-01-10 12:39:09 -05:00
5 changed files with 15 additions and 11 deletions

View file

@ -86,30 +86,31 @@ add_subdirectory(xo-randomgen) # xoshiro256ss
add_subdirectory(xo-reflectutil) # header-only reflect support add_subdirectory(xo-reflectutil) # header-only reflect support
add_subdirectory(xo-arena) # arena allocator (DArena) add_subdirectory(xo-arena) # arena allocator (DArena)
add_subdirectory(xo-facet) # sep iface,data add_subdirectory(xo-facet) # sep iface,data
add_subdirectory(xo-printable2) # experiment w/ facet object model add_subdirectory(xo-printable2) # experiment w/ facet object model (fomo)
add_subdirectory(xo-testutil) # unit test aux functions add_subdirectory(xo-testutil) # unit test aux functions
add_subdirectory(xo-alloc2) # experiment w/ facet object model add_subdirectory(xo-alloc2) # arena api (fomo)
add_subdirectory(xo-refcnt) add_subdirectory(xo-refcnt)
add_subdirectory(xo-pyutil) add_subdirectory(xo-pyutil)
add_subdirectory(xo-reflect) # reflection library (pre-fomo) add_subdirectory(xo-reflect) # reflection library (pre-fomo)
add_subdirectory(xo-pyreflect) add_subdirectory(xo-pyreflect)
add_subdirectory(xo-stringtable2) # experiment w/ facet object model add_subdirectory(xo-stringtable2) # experiment w/ facet object model
add_subdirectory(xo-object2) # experiment w/ facet object model add_subdirectory(xo-object2) # experiment w/ facet object model
add_subdirectory(xo-gc) # experiment w/ facet object model add_subdirectory(xo-gc) # incremental gc + facet object model
add_subdirectory(xo-type) # experiment w/ facet object model add_subdirectory(xo-type) # experiment w/ facet object model
add_subdirectory(xo-procedure2) # schematika procedure abstraction + runtime context (fomo) add_subdirectory(xo-procedure2) # schematika procedure abstraction + runtime context (fomo)
add_subdirectory(xo-numeric) # schematika poly arithmetic w/ facet object model add_subdirectory(xo-numeric) # schematika poly arithmetic w/ facet object model
add_subdirectory(xo-tokenizer2) # schematika tokenizer (w/ fomo)
add_subdirectory(xo-allocutil) # xo-alloc api add_subdirectory(xo-allocutil) # xo-alloc api
add_subdirectory(xo-alloc) # arena allocator + incremental gc
add_subdirectory(xo-ratio) add_subdirectory(xo-ratio)
add_subdirectory(xo-unit) add_subdirectory(xo-unit)
add_subdirectory(xo-pyunit) add_subdirectory(xo-pyunit)
add_subdirectory(xo-callback) add_subdirectory(xo-callback)
add_subdirectory(xo-alloc)
#add_subdirectory(xo-reflect2) # experiment w/ facet object model #add_subdirectory(xo-reflect2) # experiment w/ facet object model
add_subdirectory(xo-object) add_subdirectory(xo-object)
add_subdirectory(xo-ordinaltree) add_subdirectory(xo-ordinaltree)
# #
add_subdirectory(xo-tokenizer2) # schematika tokenizer (fomo)
add_subdirectory(xo-expression2) # schematika expressions (fomo) add_subdirectory(xo-expression2) # schematika expressions (fomo)
add_subdirectory(xo-reader2) # schematika expression parser (fomo) add_subdirectory(xo-reader2) # schematika expression parser (fomo)
add_subdirectory(xo-interpreter2) # schematika interpreter (fomo) add_subdirectory(xo-interpreter2) # schematika interpreter (fomo)

4
ci.nix
View file

@ -33,14 +33,14 @@ in
xo-type xo-type
xo-procedure2 xo-procedure2
xo-numeric xo-numeric
xo-tokenizer2
xo-allocutil xo-allocutil
xo-alloc
xo-ratio xo-ratio
xo-unit xo-unit
xo-callback xo-callback
xo-alloc
xo-object xo-object
xo-ordinaltree xo-ordinaltree
xo-tokenizer2
xo-expression xo-expression
xo-tokenizer xo-tokenizer
xo-reader xo-reader

View file

@ -336,15 +336,16 @@ in
type = pkgs.xo-type; type = pkgs.xo-type;
procedure2 = pkgs.xo-procedure2; procedure2 = pkgs.xo-procedure2;
numeric = pkgs.xo-numeric; numeric = pkgs.xo-numeric;
tokenizer2 = pkgs.xo-tokenizer2;
allocutil = pkgs.xo-allocutil; allocutil = pkgs.xo-allocutil;
alloc = pkgs.xo-alloc;
ratio = pkgs.xo-ratio; ratio = pkgs.xo-ratio;
unit = pkgs.xo-unit; unit = pkgs.xo-unit;
pyunit = pkgs.xo-pyunit; pyunit = pkgs.xo-pyunit;
callback = pkgs.xo-callback; callback = pkgs.xo-callback;
alloc = pkgs.xo-alloc;
object = pkgs.xo-object; object = pkgs.xo-object;
ordinaltree = pkgs.xo-ordinaltree; ordinaltree = pkgs.xo-ordinaltree;
tokenizer2 = pkgs.xo-tokenizer2;
webutil = pkgs.xo-webutil; webutil = pkgs.xo-webutil;
pywebutil = pkgs.xo-pywebutil; pywebutil = pkgs.xo-pywebutil;

View file

@ -19,6 +19,7 @@ xo-gc
xo-type xo-type
xo-procedure2 xo-procedure2
xo-numeric xo-numeric
xo-tokenizer2
xo-allocutil xo-allocutil
xo-alloc xo-alloc
xo-object xo-object

5
xo.nix
View file

@ -46,15 +46,16 @@ let
xo-type = callPackage pkgs/xo-type.nix { stdenv = jitStdenv; }; xo-type = callPackage pkgs/xo-type.nix { stdenv = jitStdenv; };
xo-procedure2 = callPackage pkgs/xo-procedure2.nix { stdenv = jitStdenv; }; xo-procedure2 = callPackage pkgs/xo-procedure2.nix { stdenv = jitStdenv; };
xo-numeric = callPackage pkgs/xo-numeric.nix { stdenv = jitStdenv; }; xo-numeric = callPackage pkgs/xo-numeric.nix { stdenv = jitStdenv; };
xo-tokenizer2 = callPackage pkgs/xo-tokenizer2.nix { stdenv = jitStdenv; buildExamples = true; };
xo-allocutil = callPackage pkgs/xo-allocutil.nix { stdenv = jitStdenv; }; xo-allocutil = callPackage pkgs/xo-allocutil.nix { stdenv = jitStdenv; };
xo-alloc = callPackage pkgs/xo-alloc.nix { stdenv = jitStdenv; buildDocs = true; };
xo-ratio = callPackage pkgs/xo-ratio.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; }; xo-ratio = callPackage pkgs/xo-ratio.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; };
xo-unit = callPackage pkgs/xo-unit.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; }; xo-unit = callPackage pkgs/xo-unit.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; };
xo-pyunit = callPackage pkgs/xo-pyunit.nix { stdenv = jitStdenv; }; xo-pyunit = callPackage pkgs/xo-pyunit.nix { stdenv = jitStdenv; };
xo-callback = callPackage pkgs/xo-callback.nix { stdenv = jitStdenv; }; xo-callback = callPackage pkgs/xo-callback.nix { stdenv = jitStdenv; };
xo-alloc = callPackage pkgs/xo-alloc.nix { stdenv = jitStdenv; buildDocs = true; };
xo-object = callPackage pkgs/xo-object.nix { stdenv = jitStdenv; }; xo-object = callPackage pkgs/xo-object.nix { stdenv = jitStdenv; };
xo-ordinaltree = callPackage pkgs/xo-ordinaltree.nix { stdenv = jitStdenv; }; xo-ordinaltree = callPackage pkgs/xo-ordinaltree.nix { stdenv = jitStdenv; };
xo-tokenizer2 = callPackage pkgs/xo-tokenizer2.nix { stdenv = jitStdenv; buildExamples = true; }; = true; };
xo-webutil = callPackage pkgs/xo-webutil.nix { stdenv = jitStdenv; }; xo-webutil = callPackage pkgs/xo-webutil.nix { stdenv = jitStdenv; };
xo-pywebutil = callPackage pkgs/xo-pywebutil.nix {}; xo-pywebutil = callPackage pkgs/xo-pywebutil.nix {};
xo-printjson = callPackage pkgs/xo-printjson.nix {}; xo-printjson = callPackage pkgs/xo-printjson.nix {};