This is a LL(1) Parser which includes an integrated graphical user interface. Being still a work in progress, in the future it would be a full LL(1) Compiler. This application is intended for computer science students and autodidacts studying compilers or parsers.
- Create custom LL(1) grammar rules
- Import and export of grammar rules
- Generate of first sets, follow sets and the parsing table
- Each step is accompanied by visual feedback and explanatory text
- Seamlessly checks if a string is recognized with error reporting
- You will need any OS able to run Java like Windows or Linux
- You must have Java JDK 8 installed, which already includes JavaFX
- You will also need an editor or an IDE like Eclipse IDE
- You can use e(fx)clipse 3.0 or newer for eclipse
- Fork this repository on your Github account
- Open your favorite IDE/Editor create a new javafx project
- Change location to that folder with git bash
- Clone your forked repository to that folder using
git clone https://github.com/YOURUSERNAME/LL1_Compiler.git
- A refresh may be required from your IDE/Editor
- Build and run the application
In order to deploy a runnable .jar file follow these steps:
- Go to file -> Export
- From the Java menu select Runnable JAR file
- Select launch configuration
- Select Export destination
- Double click to run the generated file
- Launch the application
- Click on the Import Rules tab
- From here you can add your own rules
- Or select some of the pre-loaded ones
- Click the Save rules button
- Run the first, follow and parsing table algorithms by pressing the corresponding tabs. You are also able to analytically see how each step is generated
- Now you can analyze an input string whether it matches your grammar rules
Sotirios Tzamaras · Development Lead
As an open source software, we would be grateful if you wish to contribute bugfixes and improvements. Read our CONTRIBUTING to learn about how to report issues and how to propose bugfixes and improvements.
A special thanks to all of our contributors and testers so far:
- Vasileios Angelis (Follow algorithm and Unit testing)
The idea of this application was founded within the framework of the course named "Principles of Languages and Translators", taught by assistant professor Stavros Adam at the university of Ioannina (Former Technological Educational Institute of Epirus).
This project is licensed under the GNU General Public Version 3 License - see the LICENSE file for details