Welcome to the lexLeo programming language project! This repository contains the source code for lexLeo's compiler and interpreter, designed to explore and implement the capabilities of this new programming language.
This project is primarily an educational initiative designed to deepen understanding and practical application of fundamental programming language concepts, as well as the principles of compilers and interpreters. It aims to provide an interactive learning platform where participants can explore the intricacies of language construction, understand the stages of compilation, and master the process of interpretation.
The framework of this project allows students and computer enthusiasts to engage in a structured environment that fosters skill development in language design, compiler construction, and the creation of efficient interpreters.
This project includes:
- lexLeo Compiler: Translates lexLeo code into machine code.
- lexLeo Interpreter: Executes lexLeo code directly for rapid testing and development.
To get started with lexLeo, clone this repository to your local machine:
git clone https://github.com/workaholic-v-0-0-0/lexLeo.git
cd lexLeo
Ensure you have the following installed on your system:
- GCC (or any preferred C compiler)
- CMake
- Make (optional, used for certain CMake generators)
To build the compiler and interpreter using CMake, follow these steps:
- Create a build directory and navigate to it:
mkdir build && cd build
- Generate the makefile and build files with CMake:
cmake ..
- Compile the project:
cmake --build .
To generate the project documentation, run:
doxygen Doxyfile
The HTML documentation will be located in the docs/html/ directory. You can open the index.html file in a web browser to view the documentation.
./build/interpreter/lexLeo_interpreter
./build/compiler/lexLeo_compiler
Contributions to the Leo project are welcome! Whether it involves fixing bugs, adding new features, or improving documentation, your help is appreciated. Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests to us.
This project is licensed under the GPLv3 - see the LICENSE.md file for details.