diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..f0a7e98 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,96 @@ +# 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](doc/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 \ No newline at end of file diff --git a/doc/ccmeta.drawio.png b/doc/ccmeta.drawio.png new file mode 100644 index 0000000..fa535af Binary files /dev/null and b/doc/ccmeta.drawio.png differ