Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/forsaken1/simple-compiler

Remembering my university course "Programming Languages and Translation Methods"
https://github.com/forsaken1/simple-compiler

compiler learning

Last synced: about 1 month ago
JSON representation

Remembering my university course "Programming Languages and Translation Methods"

Awesome Lists containing this project

README

        

# Simple Compiler

Rewrite my old compiler https://github.com/forsaken1/compiler

Grammar: C lang (cutted), based on https://www.lysator.liu.se/c/ANSI-C-grammar-y.html

Status: syntax analysis

## Todo

1. [x] lexical analysis

2. [ ] syntax analysis

3. [ ] semantic analysis

4. [ ] code generation

5. [ ] optimization

6. [ ] code-not-shitication

## Installation

```bash
brew install crystal-lang
git clone [email protected]:forsaken1/simple-compiler.git
cd simple-compiler

crystal build simple-compiler.cr # build compiler
./simple-compiler path/to/file.txt # compile file without optimization
./simple-compiler -s path/to/file.txt # returns list of tokens (scanner)
./simple-compiler -p path/to/file.txt # returns syntax tree (parser)
./simple-compiler -g path/to/file.txt # returns assembler code (generator)
./simple-compiler -o path/to/file.txt # compile file with optimization
./simple-compiler -g -o path/to/file.txt # returns assembler code with optimization

crystal tester.cr # run all tests (don't work without simple-compiler)
```