Skip to content

💻 Compiler for cancer-research DSL written in Haskell (Parsec combinator).

Notifications You must be signed in to change notification settings

ShivanKaul/OncoTime

Repository files navigation

OncoTime

OncoTime is an experimental Domain Specific Language which allows for easy analysis and visualization of patient treament paths in radiation oncology.

This implementation was undertaken as the project for COMP 520: Compiler Design taught by Laurie Hendren at McGill University. Our compiler is written in Haskell using the Parsec parser combinator library and compiles OncoTime programs down to JavaScript.

Our compiler's name is Doc.

We have set up a number of scripts to help with building and running. We have

build.sh - run this to build the project, and get a copy of the executable in the top-level folder
tests.sh - runs the tests (it runs the compiler on programs in programs/valid/ and programs/invalid/)
everything.sh - runs both of the above two scripts

To Build

We can use either the build.sh script, or:

cabal sandbox init
cabal install --only-dependencies
cabal build

# To install node dependencies
npm install

The flags are supported and can be used thusly:

./doc <filename> --pptype --dumpsymtab

We also support -h / --help and -v / --version flags.

Note that we have a config.conf file. This file must be at the top-level directory i.e. must be in the same directory as the doc executable.

To Run

  • The compiled compiler is compiled into the dist/build/doc directory
  • We've kept a copy of an executable at the top-level. Simply run ./doc <filename>

About

💻 Compiler for cancer-research DSL written in Haskell (Parsec combinator).

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages