@hackage uuagc-cabal1.0.0.3

Cabal plugin for the Universiteit Utrecht Attribute Grammar System

This is a plugin for the UUAG system.

To use UUAG in combination with Cabal, add a dependency on the packages: uuagc -- installs the tool: uuagc uuagc-cabal -- installs a cabal plugin that uses uuagc Note that this package does not have a dependency on uuagc. You can use this module without having uuagc installed. (whether this is useful is a different question)

Then write a custom Setup.hs:

-- module Main where

import Distribution.Simple import Distribution.Simple.UUAGC

compiler = "uuagc" main = defaultMainWithHooks (uuagcUserHook' compiler)

Add extra-source-files: uuagc_options The contents of this file are options per AG module, as specified as follows. Write for each AG file:

  • Two lines in a file uuagc_options in the root of the package:

    file: "src-ag/Desugar.ag" options: module, pretty, catas, semfuns, signatures, genlinepragmas

    The options depend on what you actually want to compile.
  • Add an extra source file to the AG file in the cabal file: extra-source-files: src/MyProgram.ag
  • Add the module to the modules list in the cabal file.

Originally written by Juan Cardona (or one of his students).