#!/bin/bash -e
# Called from Setup.hs.

function make_parser {
    SRCDIR=$1
    SRCNAME=$2

    # Preprocess the GHC parser we're using to CPP subs.
    cpphs --linepragma --text ${SRCNAME}.y.pp -OParser.y

    # Compile the parser and remove intermediate file.
    happy Parser.y
    rm Parser.y

    # Move output Haskell to source directory.
    mkdir -p $SRCDIR/Language/Haskell/GHC
    mv Parser.hs $SRCDIR/Language/Haskell/GHC/HappyParser.hs
}

make_parser src-7.6 HaskellParser76
make_parser src-7.8.2 HaskellParser782
make_parser src-7.8.3 HaskellParser783