Programatica Tools

Directory base/AST

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

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