A simple semi-complete compiler based on
a subset language rules of C++.
- Table of Contents
- About The Project
- Getting Started
- Roadmap
- Contributing ✨
- Authors
- License
- Disclaimer
- Security
- Acknowledgements
This compiler is based on a subset of language C++, created solely for a project assigned to us by Professor G. Dimitriou on the 5th Semester of CS Dept., University of Thessaly. (Subject INFS137-Compilers)
In no means we share this as an actual fully working compiler, but rather as the building blocks of a prototype compiler.
You can read more about the C++600 subset instructions (Greek Version Only!) under the C++600.pdf.
- Flex - Fast Lexical Analyzer
- Bison - Yacc-compatible parser generator
- Plenty of C and pure love
We have separated our workload into 3 stages. Each stage contains execution instructions for the program accordingly, as well as some extra information that we decided to share for these stages.
See:
- Stage 1 - Lexical Analysis
- Stage 2 - Syntax Analysis
- Stage 3 - Semantics Analysis - (45% Complete... But you'll get the idea!)
But before proceeding to these steps, make sure to have installed any dependencies such as Flex and Bison
There are currently no plans for completing or expanding the project by the original authors (see below). Nonetheless, any contribution to the project is always welcome.
See the open issues for a list of proposed features (and known issues).
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Thanks goes to these wonderful people ✨:
TheFamousFurious 💻 🖋 |
WICKEĐ 💻 🖋 |
TheNotoriousCS 💻 🖋 |
- Dimitriadis Vasileios (WckdAwe) -- ( Website | Github )
- Kouskouras Taxiarchis (TheNotoriousCS) -- ( Github )
And special thanks to Papageorgiou Grigorios for providing the Transition Diagram for "Stage 2 - Syntax Analysis" and some other notable contributions in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details.
All the information on this repository is provided in good faith, however we make no representation or warranty of any kind, express or implied, regarding the accuracy, adequacy, validity, reliability, availability or completeness of any information - see the DISCLAIMER.md file for more details.
For security related issues please read SECURITY.md.
Hats off to any person whom contributed to this Project, formally or informally. This couldn't be possible without the assistance of these people.
- Professors G. Dimitriou and G. Floros
- Professor Nikolas Papaspirou for providing a more helpful Scope Library (Used in Stage 3)
- Github project PASC320 by nikolaskostakis
- Github project Llama Compiler by ychatz
We have borrowed a-freaking-lot of ideas & code from the above guys to make our stuff kinda work. Make sure to check their individual projects out! ❤️