risc386.cabal 2.16 KB
name:           risc386
version:        0.0.20171213
build-type:     Simple
cabal-version:  >= 1.8
license:        BSD3
license-file:   LICENSE
author:         Andreas Abel with contributions by Robert Grabowski and Ulrich Schoepp
maintainer:     Andreas Abel <andreas.abel@ifi.lmu.de>
category:       Compilers/Interpreters, Education
homepage:       http://www2.tcs.ifi.lmu.de/~abel/
synopsis:       Reduced instruction set i386 simulator
description:
  risc386 is a symbolic Intel(R) 386 assembler interpreter which
  allows infinitely many registers (temporaries).  Its purpose is
  to debug the output of a MiniJava compiler (from Andrew Appel's
  book, Modern Compiler Implementation in JAVA) before register
  allocation has been performed.
  .
  risc386 supports only a small fragment of i386 instructions.
  It expects its input to be a list of procedures in .intel_syntax
  each of which is started by a label and terminated by a return
  statement.
  .
  Control flow is restricted, so, only jumps to procedure-local
  labels are allowed.  Reading from an uninitialized memory location
  will lead to an exception.
tested-with:        GHC == 7.4.1, GHC == 7.6.3
extra-source-files: README.md
                    Makefile

executable risc386
  hs-source-dirs:   .
  build-depends:    array >= 0.5 && < 0.6,
                    base >= 4.8,
                    containers >= 0.3 && < 0.6,
                    mtl >= 2.2 && < 2.3,
                    pretty >= 1.0 && < 1.2
  build-tools:      happy >= 1.15 && < 2,
                    alex >= 2.0 && < 4
  extensions:       MultiParamTypeClasses
                    TypeSynonymInstances
                    FlexibleInstances
                    FlexibleContexts
                    GeneralizedNewtypeDeriving
                    PatternGuards
                    TupleSections
  main-is:          MainIntel.hs
  other-modules:    Frame
                    FrameIntel
                    GenSym
                    Intel
                    LexIntel
                    ParseIntel
                    StateIntel
                    TokenIntel
                    Util
                    Wellformed