Programatica Tools

Directory base/AST

The README file is displayed below the directory index.
NameLast modifiedSize
Parent Directory  -
SrcLocPretty.hs2004-01-28 03:21 203
SrcLoc.hs2004-01-17 01:42 727
SpecialNames.hs2003-09-30 19:11 784
OldBaseSyntax.hs2003-06-05 23:52 1.7K
HsTypeUtil.hs2004-12-06 23:36 907
HsTypeStruct.hs2004-12-06 23:36 291
HsTypePretty.hs2005-04-15 01:29 1.1K
HsTypeMaps.hs2004-12-06 23:36 2.1K
HsType.hs2002-03-02 04:39 128
HsPatUtil.hs2006-06-13 00:15 1.9K
HsPatStruct.hs2005-06-01 21:58 927
HsPatPretty.hs2005-06-01 21:58 1.2K
HsPatMaps.hs2005-06-01 21:58 2.7K
HsPat.hs2002-03-02 04:39 123
HsName.hs2004-09-29 06:19 3.5K
HsModulePretty.hs2004-11-06 01:08 1.2K
HsModuleMaps.hs2004-04-02 23:34 1.6K
HsModule.hs2004-12-06 23:36 1.9K
HsLiteralPretty.hs2004-12-18 06:24 673
HsLiteral.hs2004-12-18 06:24 444
HsKindUtil.hs2005-05-11 22:52 375
HsKindStruct.hs2004-12-06 23:36 243
HsKindPretty.hs2005-05-11 22:52 356
HsKindMaps.hs2005-05-11 22:52 488
HsKind.hs2002-03-02 04:39 128
HsIdentPretty.hs2005-04-15 01:29 449
HsIdent.hs2002-03-13 02:09 861
HsGuardsUtil.hs2002-05-10 19:57 139
HsGuardsStruct.hs2001-07-25 03:15 284
HsGuardsPretty.hs2002-03-30 00:46 616
HsGuardsMaps.hs2001-10-17 21:59 677
HsGuards.hs2002-03-02 04:39 138
HsFieldsStruct.hs2002-03-02 01:30 203
HsFieldsPretty.hs2002-09-29 23:44 273
HsFieldsMaps.hs2002-03-02 01:30 517
HsFields.hs2002-03-02 01:30 164
HsExpUtil.hs2006-06-13 00:15 3.2K
HsExpStruct.hs2004-12-16 01:36 1.2K
HsExpPretty.hs2005-04-15 01:29 3.8K
HsExpMaps.hs2004-12-16 01:36 5.9K
HsExp.hs2002-03-02 04:39 123
HsDeclUtil.hs2003-06-19 21:47 2.1K
HsDeclStruct.hs2005-03-22 23:08 1.6K
HsDeclPretty.hs2004-12-06 23:36 3.2K
HsDeclMaps.hs2004-01-23 01:49 7.3K
HsDecl.hs2002-03-02 04:39 128
HsConstants.hs2005-04-15 01:29 1.8K
HsAssocUtil.hs2004-01-23 01:49 1.3K
HsAssocStruct.hs2002-03-13 01:58 225
HsAssocPretty.hs2003-02-04 01:38 286
HsAssocInitEnv.hs2001-10-11 01:36 428
HsAssoc.hs2002-03-13 02:09 107
HasBaseStruct.hs2005-06-01 21:58 4.2K
HasBaseName.hs2004-04-02 23:34 467
Flags.ghc2006-04-27 03:14 47
BaseSyntaxUtil.hs2002-03-13 01:58 240
BaseSyntaxStruct.hs2002-03-13 02:09 449
BaseSyntaxPretty.hs2002-03-13 01:58 402
BaseSyntaxMaps.hs2002-03-13 01:58 237
BaseSyntax.hs2003-06-06 00:40 308

Extensible Haskell front-end for the Programatica project

What is in this directory (base/AST)

This directory defines datatypes and associated functions for the nonrecursive part of the structure of the base abstract syntax. These types and functions should be reusable in extended versions of the language.

The modules are factorized according to syntactic category and functionality. This is illustrated in the following table:

For every x, there is a module called Hs<category><functionality>
DeclExpFieldsGuardsKindPatTypecollected
StructxxxxxxxBaseSyntaxStruct
MapsxxxxxxxBaseSyntaxMaps
PrettyxxxxxxxBaseSyntaxPretty
Utilxx-xxxxBaseSyntaxUtil
collectedHsDeclHsExpHsFieldsHsGuardsHsKindHsPatHsTypeBaseSyntax

There is also a small number of auxiliary modules.

The modules in the row and column marked collected just import and reexport the modules in the respective row or column. The module BaseSyntax exports everything defined in this directory.

The modules in the first row (Struct) define the data types and are self-contained: they do not depend on any other modules (except some types from the Haskell 98 Prelude).

The modules in the second row (Maps) define the three operations acc, map and seq. These modules depend on the modules in the first row (mostly the ones directly above) and some auxiliary modules (AccList and MUtils, available in ../lib), which in turn depend on some Haskell 98 Standrad Library Modules (List and Monad).

The modules in the third row (Pretty) define instances in a pretty printing class, and some auxiliary pretty printing functions. They depend on a pretty printing library, which is provided in ../pretty, modules on rows above, and in some cases, modules in the Util row.

The modules in the fourth row (Util) are more ad-hoc...

The modules in the last row are not used anymore...