We build a compiler from Golang to MIPS using Python.
- Constant Folding
- Multi-dimensional Arrays
- Multilevel pointers
- Custom module imports
- Multiple returns
- Multiple assignments
- Floating point ops
- Goto for labelled statements
- Run following command from root directory to run the compiler on a Go source file.
python src/Milestone6/compiler.py PATH_TO_FILE- Run following command from root directory to generate AST for a Go file.
./bin/parser PATH_TO_FILE- To run all the test cases for Milestone 4, run the following command from root of the project :
make - Run following command from root directory to run parser on a Go file.
python src/Milestone3/parser.py PATH_TO_FILE- Run following command from root directory to run lexer on a Go file.
python src/Milestone3/lexer.py PATH_TO_FILE- To run all the test cases for Milestone 3, run the following command from root of the project :
make - To clean generated file run:
make clean- To obtain dot file, run following commnd from
PROJECT_ROOT/src/Milestone3:
python gen_automation.py- To obtain automata, run following command from
PROJECT_ROOT/src/Milestone3:
dot -Tpdf test.dot -o automaton.pdf- To obtain parse tree From project root directory, use
./bin/parser tests/Milestone3/ctest1.go- From project root directory, use
python3 tests/Milestone2/test_regex.py or
make test_Milestone2- Run
python3 src/Milestone2/lexer.py PATH-TO-SOURCE-CODESource Language : GoLang Implementation Language : Python Target Language : MIPS
- Aditi Goyal
- Devanshu Singla
- Sarthak Rout
- Yatharth Goswami