# CCMETA C compiler with embedded metalanguage. ##
Table of contents
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) ##
Architecture
![alt text](ccmeta.drawio.png) ### [Go to the table of contents](#toc) ##
Build the project
###
Requirements
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 ``` ###
Makefile
>Compatible with the homebrew installed on the apple silicon ship ####
Build
```bash $ make ``` ####
Clean
```bash $ make clean ``` ####
Test
```bash $ make test ``` ### [Go to the table of contents](#toc) ##
Usage
### 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) ##
Help
###
peg/leg
``` shell $ man peg ``` ### [Go to the table of contents](#toc) ##
Authors
#### 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