/ECE553-compiler

A Tiger compiler to MIPS assembly, written in SML

Primary LanguageStandard ML

ECE553Project

Team Members

  • Bowen Jiang (bj92)
  • Andy Zhang (az107)
  • Maverick Chung (mc608)

Links to Compiler Parts

Testing Instructions

Prerequisites

Running tests

  • Run npm install then npm test.
  • The first test should spawn a mlton process to compile the SML into a standalone executable, which is used in the tests that follow.

Test details

  • In general, snapshots (in test/*/__snapshots__) of the executables' output are created to reveal any changes in output between different builds of the code.
Lexer
  • Tests perform a simple check that the lexer can run on a .tig file without crashing (i.e. process does not error and no output to stderr).
  • Error messages in stdout are determined by pattern matching /:[0-9]+\.[0-9]+:/ (which is faulty but good enough for our purposes). positive tests should not have errors, while negative tests should.