0b2b97a0c6
add type database and compile-time reflection
2026-09-15 21:28:41 +03:00
dae19715df
add module testing
...
Also fix module import
2026-09-15 21:28:41 +03:00
28ad33ca38
add sex-error reporting
2026-09-15 21:28:41 +03:00
5f9f90ef37
support || | |= operators, since we now have our own parser
Sex CI / build-linux (pull_request) Failing after 3m1s
Sex CI / build-linux (push) Failing after 3m1s
Sex CI / build-macos (push) Has been cancelled
Sex CI / build-macos (pull_request) Has been cancelled
2026-09-15 20:18:20 +03:00
7e6e32488b
fix stray commas and add comment packing
Sex CI / build-linux (pull_request) Failing after 3m1s
Sex CI / build-macos (pull_request) Has been cancelled
2026-09-15 16:32:55 +03:00
fa4ad5acee
fix comments inside statements shifting their meaning
2026-09-15 16:32:55 +03:00
36932fb480
add codegen and args tests, fix couple of bugs in C generation
2026-09-15 16:32:55 +03:00
d609a0c591
begin -> do
...
Shorter and doesn't imply existence of `end'
2026-09-15 16:32:55 +03:00
0db4a11a2b
add `comments' test program
2026-09-15 16:32:55 +03:00
d83ee32f12
add source line number preservation
...
Sex CI / build-macos (pull_request) Has been cancelled
Sex CI / build-linux (pull_request) Failing after 3m34s
For source-level debug. Add --line-directives option, defaulted to
statement. Disabled when used with -C. Explicit non-none value
overrides disabling when -C is present
2026-09-09 14:16:32 +03:00
528f26b7ef
migrate to Chicken 6
2026-09-09 12:45:12 +03:00
543a333165
fix tests/Makefile not cleaning up .o files
2026-09-09 12:45:12 +03:00
1ca77aaf59
replace Scheme read with our tokenizer and parser
...
Also implement . as field access operator and preserve ;-comments in
generated C
2026-09-09 12:44:52 +03:00
8ae2346e41
add small programs for compile testing
Sex CI / build-macos (push) Has been cancelled
Sex CI / build-linux (push) Has been cancelled
2026-05-27 18:00:18 +03:00
196694f18e
modularize sex
...
Also rename macros to sex-macros, module-system to sex-modules for
clarity, uniformity, and to avoid name clashes with Chicken's
units/modules named "macros" and "modules"
2026-04-29 22:48:55 +03:00
c483b81f1c
replace fold-right append with flatten in type-convert-to-c
...
They are not equivalent, but it'll be allright in this
case. Probably. Passes tests at least.
2025-10-30 18:05:44 +03:00
e9de3409ec
optimize fmt-c-writer type unwrapping
2025-10-30 18:05:44 +03:00
Ekaterina Vaartis
fc332311d3
fix nested types producing wrong C code
2025-10-30 18:05:44 +03:00
0d314388f0
fix arrays of structs, multiple struct fields with same type
2025-10-30 18:05:44 +03:00
851abd1ac2
prettify reader test with a nice macro
2025-10-30 18:05:44 +03:00
48a3d06925
move Sex to better types
...
Types, fns and vars are now written in another, better, more intuitive
and readable way.
Types:
"pointer to const char" is "* const char"
"array of pointers to volatile int" is "[* volatile int]"
Read left to right
Vars (as well as fn args, struct fields):
(var name type)
(struct vec3 ((x float) (y float) (z float))
(fn vec3-add ((v1 vec3) (v2 vec3)) vec3 ...)
Also fns are now have return types after arg list.
* is now must not be attached to any type name (or variable for that
matter)
2025-10-30 18:05:44 +03:00
3d11426165
move basic and semen tests to groups
2025-10-30 18:05:44 +03:00
45d9199c27
add reader syntax for []
...
Now [...] reads to (¤ ...) for easy semantic processing
2025-10-30 18:05:44 +03:00
036f82facf
add couple list utils
...
list-split and list-join
2025-10-30 18:05:44 +03:00
fd61e753dc
fix tests
2025-10-01 16:29:46 +03:00
06892e1afa
re-implement macro-expansion using new semantic walker
2025-09-29 15:56:51 +03:00
b1744bb6af
split semantic processing and fmt-c code generation
...
Introducing Sex SEMantic ENgine: the semen.
Also split reader to other file (it can be replaced in the future).
Macro expansion inside Sex code doesn't work yet, and it must be done
in semen, not during fmt-c generation as before.
2025-09-29 15:50:01 +03:00
6a9885ebb0
add bool true false tests
2025-08-22 15:47:36 +03:00
8bbf44f329
split test in separate test files
2025-08-22 15:47:36 +03:00
78977e988e
add support for begin in Sex
...
begin-wrapped blocks are now creating lexical scopes
2025-08-22 15:47:36 +03:00
41c3f3bd98
make fmt-c a unit
2025-08-03 21:44:43 +03:00
4b6a7d5209
add sex-tests
2025-08-02 10:49:38 +03:00