55a0235a37
add initial prelude
2025-10-30 18:05:44 +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
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
53e9614584
don't create temp files when compiling
2025-08-22 15:47:36 +03:00
d5e443a72c
force c89 pedantic compilation mode
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
ea13df186f
add structure attributes support to sex
2025-08-06 15:38:04 +03:00
6c6e00e6dc
implement new macro system
2025-08-06 15:38:04 +03:00
31d0aa574b
saner getting of c compiler args from the cmdline
2025-08-05 02:03:01 +03:00
41c3f3bd98
make fmt-c a unit
2025-08-03 21:44:43 +03:00
3ad25b3788
make return explicit
...
Required pulling in fmt-c.scm file though :(
2025-08-03 19:01:19 +03:00
d4e1471f44
remove unused function
2025-08-02 10:49:38 +03:00
bc54ae6a05
modularize Sex compiler
2025-08-02 10:49:38 +03:00
4be0d3f5ac
prettify --help output and add it to Readme.org
2025-08-02 10:49:38 +03:00
44a352849a
implement modules
2025-08-02 10:49:38 +03:00
6fc1688e41
call C compiler from Sex directly
...
Also rework options printing, add some cmdline options, rework others,
all in all, the logic is now looking like this:
* -E to emit C code
* -m to emit macro-expanded Sex code
* -c to emit object file instead of executable
* --c-compiler to set C compiler. If not provided, check SEX_CC
enviroment variable, if it's empty, default to `cc'
* options after -- are passed to C compiler
* default mode is to compile Sex module to executable
2025-08-02 10:49:38 +03:00
7967a75313
remove some stray variable
2025-08-02 10:49:38 +03:00
76ca609ea6
Make Sex templates more pleasant syntactically
...
No more unquotes to instantiate templates.
Also no need to pass quoted substitution lists, just use them as
regular lisp macros.
2025-07-11 18:27:50 +03:00
12ff37c515
support unkebabification in #()-forms
...
which are vectors in Chicken, {}-initializers in C
2025-06-14 19:02:45 +03:00
075116dfd2
support cpp define
2025-06-14 18:10:20 +03:00
e932afab0a
prefix define and define-syntax with chicken-
...
as we have define in cpp
2025-06-14 18:09:50 +03:00
97205ed8ef
don't unkebabify -> in symbols (it's -> from C)
2025-06-14 17:48:41 +03:00
650bff6d0e
fix pub function prototypes
2025-06-14 17:10:09 +03:00
5f919c387d
change load to chicken-load in sex sources
...
to explicitly denote that it is chiken
2025-06-14 14:09:39 +03:00
bd71dcc8a7
add chicken-import support to sex
...
also fix unquoting to single atom processing wrongly in walk-sex-tree
2025-06-14 14:07:00 +03:00
6e59e523d4
hanlde pub for global vars correctly
2025-06-14 12:39:13 +03:00
16dec0728f
add extern support
2025-06-13 18:20:51 +03:00
3cce26dc5c
add field access support (also unfuck tree walker a bit)
2025-06-12 23:40:35 +03:00
19cc3ad43a
unshittify templates
2025-06-11 20:23:54 +03:00
241d605db4
implement templates (kinda)
...
uh oh
2025-06-09 00:30:14 +03:00
408c0c1441
make some exceptions for unkebabification
2025-06-09 00:29:31 +03:00
5220e0eafd
[] isn't gonna work with Sheme reader
2025-06-09 00:27:36 +03:00
839a6cb350
don't need map here, for-each is enough
2025-06-09 00:27:21 +03:00
0d72b1950d
fix reading from files not in current dir
2025-06-09 00:27:03 +03:00
469db7b92e
add auto typedefs for structs
2025-06-09 00:21:42 +03:00
39e1e4a664
rewrite tree walk with tree module
...
also add pub support
2025-06-05 17:11:30 +03:00
dd9765bd62
filter out '()s from the tree
2025-06-05 12:15:06 +03:00
46877241d9
add cmdline options
...
-h help
-o write to file
-m expand macros in Sex code and print result
2025-06-05 07:32:05 +03:00
5dece2275a
maybe rewrite map-filter-tree with tree.scm's tree inversions?
...
They don't seem intuitive, need to mess around a bit to understand
them.
2025-05-30 12:37:28 +03:00
b8d0efafcb
implement comma in Sex sources
2025-05-29 22:08:14 +03:00
db124d68c5
initial
2025-05-26 22:42:01 +03:00