|
|
@ -0,0 +1,96 @@ |
|
|
|
# CCMETA |
|
|
|
|
|
|
|
C compiler with embedded metalanguage. |
|
|
|
|
|
|
|
## <div id="toc">Table of contents<div> |
|
|
|
1. [Architecture](#ar) |
|
|
|
2. [Build the project](#bp) |
|
|
|
- [Requirements](#ar) |
|
|
|
- [Makefile](#makefile) |
|
|
|
- [Build](#makefile_Build) |
|
|
|
- [Clean](#makefile_Clean) |
|
|
|
- [Test](#makefile_Test) |
|
|
|
3. [Usage](#usage) |
|
|
|
4. [Help](#help) |
|
|
|
- [Peg/Leg](#pegleg) |
|
|
|
5. [Authors](#authors) |
|
|
|
|
|
|
|
|
|
|
|
## <div id="ar">Architecture<div> |
|
|
|
 |
|
|
|
### [Go to the table of contents](#toc) |
|
|
|
|
|
|
|
## <div id="bp">Build the project<div> |
|
|
|
### <div id="req">Requirements<div> |
|
|
|
|
|
|
|
Please install [peg/leg](https://www.piumarta.com/software/peg/) manually or with a package manager, for example with Homebrew: |
|
|
|
```bash |
|
|
|
$ brew install peg |
|
|
|
``` |
|
|
|
|
|
|
|
Please install [the Boehm-Demers-Weiser conservative garbage collector](https://www.hboehm.info/gc/) manually or with a package manager, for example with Homebrew: |
|
|
|
```bash |
|
|
|
$ brew install bdw-gc |
|
|
|
``` |
|
|
|
|
|
|
|
### <div id="makefile"> Makefile<div> |
|
|
|
>Compatible with the homebrew installed on the apple silicon ship |
|
|
|
|
|
|
|
#### <div id="makefile_Build">Build<div> |
|
|
|
```bash |
|
|
|
$ make |
|
|
|
``` |
|
|
|
|
|
|
|
#### <div id="makefile_Clean">Clean<div> |
|
|
|
```bash |
|
|
|
$ make clean |
|
|
|
``` |
|
|
|
|
|
|
|
#### <div id="makefile_Test">Test <div> |
|
|
|
```bash |
|
|
|
$ make test |
|
|
|
``` |
|
|
|
### [Go to the table of contents](#toc) |
|
|
|
|
|
|
|
## <div id="usage">Usage<div> |
|
|
|
### How it works |
|
|
|
You can pass your program: |
|
|
|
* via an input file |
|
|
|
```bash |
|
|
|
$ ./ccmeta < file |
|
|
|
``` |
|
|
|
* via a file |
|
|
|
```bash |
|
|
|
$ ./ccmeta file |
|
|
|
``` |
|
|
|
### **Check each test file to get an idea of how parsimony works** |
|
|
|
### [Go to the table of contents](#toc) |
|
|
|
|
|
|
|
## <div id="help">Help<div> |
|
|
|
|
|
|
|
### <div id="pegleg">peg/leg<div> |
|
|
|
|
|
|
|
``` shell |
|
|
|
$ man peg |
|
|
|
``` |
|
|
|
### [Go to the table of contents](#toc) |
|
|
|
|
|
|
|
## <div id="authors">Authors<div> |
|
|
|
#### Ian Piumarta (2016-) |
|
|
|
- infrastructure |
|
|
|
- parsing framework |
|
|
|
- C grammar, C AST |
|
|
|
- object system design and implementation |
|
|
|
- metalanguage design and implementation |
|
|
|
|
|
|
|
#### Mahe Tardy (2020) |
|
|
|
- object system implementation |
|
|
|
- metalanguage implementation |
|
|
|
|
|
|
|
#### Nathan Razafimanantsoa, Kumar Mahadayya (2021) |
|
|
|
- C AST |
|
|
|
|
|
|
|
#### Theo Souchon (2022-2023) |
|
|
|
- metalanguage features, development, tests, examples |
|
|
|
- grammar, object system changes for metalanguage |
|
|
|
- source and repository reorganisation |