d039fa0cb9
remove utils.macros.scm as it is no longer needed
Sex CI / build-linux (pull_request) Has been cancelled
Sex CI / build-macos (pull_request) Has been cancelled
2026-03-12 12:41:14 +03:00
559ed9c7fa
modularize sex
2026-03-12 12:41:14 +03:00
f5b3fcb399
add #line directive to generated C code to support source debugging
2025-12-01 15:42:06 +03:00
b2df79520e
fix stray atavistic } in Readme
2025-10-30 18:05:44 +03:00
f7bc65ddc3
fix extra closing paren in Readme example
2025-10-30 18:05:44 +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
9e50df5c44
add malformed fn form match case in fmt-c-writer
...
Spent like 10 minutes trying to understand why my fn pointer is being
fucked up in test case. Turned out I was missing return type, and
whole fn pointer type fall through down to defaut case.
2025-10-30 18:05:44 +03:00
e4c79bda75
rewrite Todo -> TODO
...
for better searchig I guess?
2025-10-30 18:05:44 +03:00
e9de3409ec
optimize fmt-c-writer type unwrapping
2025-10-30 18:05:44 +03:00
904a6fe3c9
fix Readme typos
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
0ad1d01fec
enable semen-walk-form to embed results (for macro processing)
2025-10-30 18:05:44 +03:00
b4145255bd
move recons to utils
2025-10-30 18:05:44 +03:00
951f96f340
add define support
2025-10-30 18:05:44 +03:00
a6348b7b5a
add enum support
2025-10-30 18:05:44 +03:00
2f75e80bc9
add c-or/c-bit-or/c-bit-or= support
2025-10-30 18:05:44 +03:00
3af850b111
fix designated initializer assignment producing extra parens
2025-10-30 18:05:44 +03:00
c517b522ad
fix structure attributes
2025-10-30 18:05:44 +03:00
1b721b34a0
fix fmt-c while without body
2025-10-30 18:05:44 +03:00
55a0235a37
add initial prelude
2025-10-30 18:05:44 +03:00
47affc449f
add typedef support
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
9c3d2f61c2
update Readme
2025-10-30 18:05:44 +03:00
f9c58b21b4
overhaul fmt-c-writer completely
...
It now looks very nice.
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
2228ab3b50
fix variuos struct-related issues in fmt-c
...
There were bugs, when struct in arg list and pointers to structs among
struct fields produces such code as:
(fn puk ((arg (* struct foo))) ...) -> void puk(struct foo { *; } arg)
(struct l ((next (* struct l)))) -> struct l { struct l { *; } next };
And so on.
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
ca7202924e
fix missing logo itself
2025-10-16 15:38:51 +03:00
9d21443f01
fix logo markdown rendering
2025-10-16 15:38:00 +03:00
d9b1b9aae8
add logo
2025-10-16 15:32:09 +03:00
dc35584331
fix passing CSC_FLAGS from command line
2025-10-02 00:16:34 +03:00
fd61e753dc
fix tests
2025-10-01 16:29:46 +03:00
Pavel Kulyov
77845d24c7
Update readme
2025-10-01 15:54:17 +03:00
Pavel Kulyov
fb38e5b509
readme: remove extra closing bracket
2025-10-01 15:54:17 +03:00
Pavel Kulyov
07f0039a21
ci: add initial GHA with building sexc and running tests
2025-10-01 15:54:17 +03:00
Pavel Kulyov
d48bef364a
Add dependencies file
2025-10-01 15:54:17 +03:00
775e321597
add support for nested lambdas
2025-10-01 14:10:42 +03:00
442f663635
add initial lambda support
...
No closures for now, but solid groundwork is laid.
2025-09-30 09:35:16 +03:00
d87f0ba161
enable prefix form for keywords
...
I like writing :keyword more than #:keyword. That hash sign seems
redundant
2025-09-30 09:35:16 +03:00
462916b7a9
don't force c89 after all
2025-09-30 09:35:16 +03:00
072d3a64aa
update Readme.org
2025-09-30 09:35:16 +03:00
06892e1afa
re-implement macro-expansion using new semantic walker
2025-09-29 15:56:51 +03:00
532487d713
implement semantic code walking framework
2025-09-29 15:56:51 +03:00
ea5a2c0843
add binaries to .gitignore
2025-09-29 15:56:51 +03:00
3c5ea13678
add .gitignore
2025-09-29 15:50:01 +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
8e4cc98522
fix sexc using non-existent unit
2025-09-01 11:24:08 +03:00