Hash :
5a9fccc1
Author :
Thomas de Grivel
Date :
2022-11-17T21:21:54
C3 is a programming language, inspired by C89, Elixir and Common Lisp. It could be described as C89 with Elixir macros and pattern matching, and an embedded graph database for a fully indexed object system.
The idea is to plug macros and pattern matching into C89. The garbage collector is optional, like in C.
defmodule C3 do
def compile (c3, opts) when is_string(c3) do
|> C3.parse(c3, opts)
|> C3.to_assembly(opts)
|> Assembly.compile(opts)
end
end
test_file_compare
Copyright 2022 kmx.io contact@kmx.io
Permission is hereby granted to use this software granted the above copyright notice and this permission paragraph are included in all copies and substantial portions of this software.
THIS SOFTWARE IS PROVIDED “AS-IS” WITHOUT ANY GUARANTEE OF PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF THIS SOFTWARE.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
# C3 v0.1
C3 is a programming language, inspired by C89, Elixir and Common Lisp.
It could be described as C89 with Elixir macros and pattern matching,
and an embedded graph database for a fully indexed object system.
The idea is to plug macros and pattern matching into C89.
The garbage collector is optional, like in C.
```
defmodule C3 do
def compile (c3, opts) when is_string(c3) do
|> C3.parse(c3, opts)
|> C3.to_assembly(opts)
|> Assembly.compile(opts)
end
end
```
## TODO
- libc3
- errors (setjmp, longjmp) -> jc
- stacktrace
- load
- pattern matching (xor xor) -> baptiste
- `test_file_compare`
- ffi
- types
- funcall
- defmodule
- funcall
## Copying
Copyright 2022 kmx.io <contact@kmx.io>
Permission is hereby granted to use this software granted
the above copyright notice and this permission paragraph
are included in all copies and substantial portions of this
software.
THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
THIS SOFTWARE.