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

https://github.com/kiarashvosough1999/jcompiler

Simple Interpreter With Java
https://github.com/kiarashvosough1999/jcompiler

compiler compiler-design interpreter java

Last synced: about 2 months ago
JSON representation

Simple Interpreter With Java

Awesome Lists containing this project

README

          

# JCompiler

[![Twitter](https://img.shields.io/badge/Twitter-@Vosough_k-blue.svg?style=flat-square)](https://twitter.com/vosough_k)
[![Linkedin](https://img.shields.io/badge/Linkedin-KiarashVosough-blue.svg?style=flat-square)](https://www.linkedin.com/in/kiarashvosough/)

This is the project assigned to me on Compiler Design course in Ferdowsi University Of Mashhad.

- [Features](#features)
- [Requirements](#requirements)
- [Usage](#Usage)
- [Contributors](#Contributors)
- [License](#license)

## Features

The project splited into 3 phase. Each phase has its own tag on the repository, sofar I implemented below phases:

- [x] Phase 1 - Formated Program Printer
- [x] Phase 2 - Semantic Analysis
- [x] Phase 3 - Errors Detection

## Requirements

| Platform | Minimum Java Version | Installation | Status |
| --- | --- | --- | --- |
| Any | 17.0 | [OpenJDK](https://openjdk.java.net) | Tested |

## Usage

### Phase 1

for using phase one, switch to latest tag v1.0.0 to see the implementation.
You just need to implement your own **Jython** code in `test1.cl` file and run the main function.
As a result you see the terminal/console output of the code you implemented in a specific and general format, representing the jython code on `test1.cl`
which can be observed inside [Templates Phase 1](https://github.com/kiarashvosough1999/JCompiler/tree/master/Samples/outputTemplate/phase1).

### Phase 2

for using phase two, switch to latest tag of v2.0.0 to see the implementation.
You just need to implement your own **Jython** code in `test1.cl` file and run the main function.
As a result you see the terminal/console output of the code you implemented in a spicific and general format for each scope defined in code and specific representation for each statement and its child statements
which can be observed inside [Templates Phase 2](https://github.com/kiarashvosough1999/JCompiler/tree/master/Samples/outputTemplate/phase2).

### Phase 3

for using phase three, switch to latest tag of v3.0.0 or higher to see the implementation.
You just need to implement your own **Jython** code in `test1.cl` file and run the main function.
As a result you see the terminal/console output of error detected from your code including redundancy, undefined code, etc
which can be observed inside [Templates Phase 3](https://github.com/kiarashvosough1999/JCompiler/tree/master/Samples/outputTemplate/phase%203).

## Contributors

Feel free to share your ideas or any other problems. Pull requests are welcomed.

## License

JCompiler is released under an MIT license. See [LICENSE](https://github.com/kiarashvosough1999/JCompiler/blob/master/LICENSE) for more information.