Subversion

2lt

?curdirlinks? - Rev 1

?prevdifflink? - Blame


###############################################################################
#
# Generic rules for creating instances of miscellaneous Haskell classes
#
# This makefile requires three global variables:
#    DRIFT          - program configuration of "DrIFT"
#                     (in makerules.configuration)
#    SYNTAX         - Name of the Haskell module that contains the syntax (ast)
#                     definition file
#                     (defined in the makefile that imports this)
#    HASKELL_MODULE - Definition of the hierarchical namespace of the Haskell
#                     module to be generated in the format "ABC.XYZ." (note for
#                     the trailing dot)
#                     (defined in the makefile that imports this)
#

EqInstances.hs: $(SYNTAX).hs
        @echo 'module $(HASKELL_MODULE)EqInstances where'     > $@
        @echo ''                                             >> $@
        @echo 'import $(HASKELL_MODULE)$(SYNTAX)'            >> $@
        @echo ''                                             >> $@
        ${DRIFT} -r -g Eq $<                                 >> $@

OrdInstances.hs: $(SYNTAX).hs
        @echo 'module $(HASKELL_MODULE)OrdInstances where'    > $@
        @echo ''                                             >> $@
        @echo 'import $(HASKELL_MODULE)$(SYNTAX)'            >> $@
        @echo ''                                             >> $@
        ${DRIFT} -r -g Ord $<                                >> $@

ShowInstances.hs: $(SYNTAX).hs
        @echo 'module $(HASKELL_MODULE)ShowInstances where'   > $@
        @echo ''                                             >> $@
        @echo 'import $(HASKELL_MODULE)$(SYNTAX)'            >> $@
        @echo ''                                             >> $@
        ${DRIFT} -r -g Show $<                               >> $@

TermInstances.hs: $(SYNTAX).hs
        @echo 'module $(HASKELL_MODULE)TermInstances where'   > $@
        @echo ''                                             >> $@
        @echo 'import $(HASKELL_MODULE)$(SYNTAX)'            >> $@
        @echo 'import TermRep'                               >> $@
        @echo ''                                             >> $@
        ${DRIFT} -r -g Term -g Typeable $< | \
           sed s/mkAppTy/mkTyConApp/g                        >> $@

ATermInstances.hs: $(SYNTAX).hs
        @echo 'module $(HASKELL_MODULE)ATermInstances where'  > $@
        @echo ''                                             >> $@
        @echo 'import $(HASKELL_MODULE)$(SYNTAX)'            >> $@
        @echo 'import ATermLib'                              >> $@
        @echo ''                                             >> $@
        ${DRIFT} -r -g ATermConvertible $<                   >> $@

ReadInstances.hs: $(SYNTAX).hs
        @echo 'module $(HASKELL_MODULE)ReadInstances where'  > $@
        @echo ''                                            >> $@
        @echo 'import $(HASKELL_MODULE)$(SYNTAX)'           >> $@
        @echo ''                                            >> $@
        ${DRIFT} -r -g Read $<                              >> $@


Theme by Vikram Singh | Powered by WebSVN v2.3.3