1
0
forked from alex-eg/sex
Commit Graph

93 Commits

Author SHA1 Message Date
18b9e20fee add support for nested lambdas 2025-10-01 12:37:59 +03:00
e888ed1281 add initial lambda support
No closures for now, but solid groundwork is laid.
2025-09-26 16:53:38 +03:00
21293c421f enable prefix form for keywords
I like writing :keyword more than #:keyword. That hash sign seems
redundant
2025-09-26 16:52:34 +03:00
d5bbe853aa don't force c89 after all 2025-09-26 14:51:44 +03:00
a7cd720057 update Readme.org 2025-09-26 14:51:44 +03:00
b314dfd58e re-implement macro-expansion using new semantic walker 2025-09-26 14:33:47 +03:00
d0005a6622 implement semantic code walking framework 2025-09-26 14:33:23 +03:00
13984ccc78 add binaries to .gitignore 2025-09-26 11:53:10 +03:00
d8d6f4f5a4 add .gitignore 2025-09-24 20:14:21 +03:00
42d58d3359 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-24 20:12:08 +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
103e95fcf7 don't use int as default type for variables, generate error instead 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
8ad5abf055 update Readme.org 2025-08-08 19:52:02 +03:00
Pavel Kulyov
5a0076ad71 readme: fix typo 2025-08-06 21:22:35 +03:00
Pavel Kulyov
d7055814d3 readme: use proper language modes for source code snippets 2025-08-06 21:22:35 +03:00
ea13df186f add structure attributes support to sex 2025-08-06 15:38:04 +03:00
a6800aaeb6 fix nested structures in fmt-c 2025-08-06 15:38:04 +03:00
6c6e00e6dc implement new macro system 2025-08-06 15:38:04 +03:00
Pavel Kulyov
4245463714 Merge pull request #2 from alex-eg/compiler-enhancements
Compiler enhancements
2025-08-05 03:05:32 +03:00
21ddecf406 fix modules.scm not having current-directory 2025-08-05 02:03:21 +03:00
bf9b408c11 import srfi-13 to fmt-c unit 2025-08-05 02:03:01 +03:00
2780ae0cb1 nicer comment format in modules.scm 2025-08-05 02:03:01 +03:00
31d0aa574b saner getting of c compiler args from the cmdline 2025-08-05 02:03:01 +03:00
9b50d26c82 numerous typos in Readme.org 2025-08-05 01:42:40 +03:00
8dbdf4b381 add actual chicken deps to the list of deps 2025-08-05 01:42:11 +03:00
466be8ef6e remove all garbage when make clean 2025-08-05 01:41:56 +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
a0f1f5cc17 fix sex-tests
;-P
2025-08-03 13:49:35 +03:00
401857e04b remove hello-world.sex from the root directory 2025-08-02 10:49:38 +03:00
d4e1471f44 remove unused function 2025-08-02 10:49:38 +03:00
4b6a7d5209 add sex-tests 2025-08-02 10:49:38 +03:00
3e535c9517 update example and Readme.org 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
d2998f79ff update Readme.org
Add info about compilation and modules.
2025-08-02 10:49:38 +03:00
44a352849a implement modules 2025-08-02 10:49:38 +03:00
93a4d181d0 add hello-world example 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
5c714d8c36 fix hello-world.sex 2025-07-30 12:48:29 +03:00
0cc324e11d fix pub wrong indent 2025-07-17 11:50:04 +03:00