Programatica Tools

Directory base/AST

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

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...