Skip to content

Compiler (parsing, code gen, type cast/checking) for MeggyJava (including variable/function/class)

Notifications You must be signed in to change notification settings

channum/MeggyJava-Compiler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

192 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MeggyJava Compiler

This is the course work for UVa CS6620, Compiler.

MeggyJava is a programming language based on MiniJava. It can be used to program Meggy Jr RGB, which is a handheld platform for developing your own pixel-scale video games.

This complier will translate MeggyJava code into AVR Assembly, which can be run on the simulator and Meggy Jr RGB device. Also, it will generate a dot file to visualize its AST and Symbol Table.

Usage

// using only lexer
java -jar MJPA2.jar example.java
// using compiler
java -jar MJ.jar example.java
// using simulator
java -jar MJSIM.jar -b -f example.java.s
// visualize AST
dot example.ast.dot -Tpng -o example.ast.png
// visualize Symbol Table
dot example.ST.dot -Tpng -o example.ST.png

For example, Test.java has the following AST and Symbol Table:

AST Symbol Table

About

Compiler (parsing, code gen, type cast/checking) for MeggyJava (including variable/function/class)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 67.7%
  • Assembly 28.1%
  • Lex 1.7%
  • C++ 1.1%
  • Makefile 0.7%
  • Shell 0.5%
  • C 0.2%