a2ea1cc292
rewrite Todo -> TODO
...
for better searchig I guess?
2025-10-30 12:22:38 +03:00
3a9300ba72
optimize fmt-c-writer type unwrapping
2025-10-30 12:22:18 +03:00
03684bb687
fix Readme typos
2025-10-30 12:21:31 +03:00
Ekaterina Vaartis
c48ebc7585
fix nested types producing wrong C code
2025-10-26 20:56:09 +03:00
1ca7e2ee15
enable semen-walk-form to embed results (for macro processing)
2025-10-26 11:39:00 +03:00
5379631471
move recons to utils
2025-10-26 11:37:52 +03:00
316ead4b37
add define support
2025-10-22 22:33:18 +03:00
c7d91eed2c
add enum support
2025-10-22 22:33:18 +03:00
b379aae8b6
add c-or/c-bit-or/c-bit-or= support
2025-10-22 22:28:37 +03:00
7a21316c10
fix designated initializer assignment producing extra parens
2025-10-22 22:27:50 +03:00
9e44e3d0e8
fix structure attributes
2025-10-22 18:20:29 +03:00
39eb1c58a8
fix fmt-c while without body
2025-10-22 18:20:12 +03:00
bca857de3a
add initial prelude
2025-10-22 17:29:53 +03:00
98a1d9f2e8
add typedef support
2025-10-22 17:29:42 +03:00
e7122bdbd5
fix arrays of structs, multiple struct fields with same type
2025-10-22 16:59:15 +03:00
d71bb97126
update Readme
2025-10-22 12:49:21 +03:00
4273d7bfd4
overhaul fmt-c-writer completely
...
It now looks very nice.
2025-10-21 22:24:57 +03:00
9e79ac5f9f
prettify reader test with a nice macro
2025-10-21 22:24:57 +03:00
d11de327be
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-21 22:24:57 +03:00
0824091469
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-21 22:24:57 +03:00
6d2f7179c1
move basic and semen tests to groups
2025-10-21 22:24:56 +03:00
4165fbe299
add reader syntax for []
...
Now [...] reads to (¤ ...) for easy semantic processing
2025-10-21 22:24:26 +03:00
cca63fb4df
add couple list utils
...
list-split and list-join
2025-10-21 21:21:10 +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
6a9885ebb0
add bool true false tests
2025-08-22 15:47:36 +03:00
53e9614584
don't create temp files when compiling
2025-08-22 15:47:36 +03:00
8bbf44f329
split test in separate test files
2025-08-22 15:47:36 +03:00
97d44a0050
add union to emacs.el keyword list
2025-08-22 15:47:36 +03:00
d5e443a72c
force c89 pedantic compilation mode
2025-08-22 15:47:36 +03:00
63918d23c0
fix newline and whitespace after braces in generated C blocks
2025-08-22 15:47:36 +03:00
c9848151d0
generate void in empty argument lists
2025-08-22 15:47:36 +03:00