Go to MIPS compiler, written in Go.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
ref
scripts
src
test
.errcheck-ignore
.gitignore
.travis.yml
LICENSE
Makefile
README.md
TODO
gopher.svg

README.md

gogo

Build Status

Go to MIPS compiler, written in Go.

Logo

Gopher vector imported from egonelbre/gophers .


Components

Component Demo
Token generation / Lexer test1.out
Parser struct.go ➡️ struct.html
IR generation scope.go ➡️ scope.ir
Code generation pascalTriangle.ir ➡️ pascalTriangle.asm

Setting up

Run ./scripts/setup.sh from the root directory of the project to set up the pre-commit git hooks.

Dependencies

Build

The following should generate relevant binaries inside the directory bin -

make

The generated binary bin/gogo can be used as follows -

Usage: gogo (-r | -r2s | -s) <filename>
  -p	Generates rightmost derivations used in bottom-up parsing
  -r	Generates IR instructions from go program
  -r2s  Generates the MIPS assembly from IR
  -s	Generates MIPS assembly from go program

NOTE: The generated MIPS assembly has been tested to work on SPIM MIPS32 simulator.

Testing

The tests can be built via -

make test