frontend.dcl 980 Bytes
Newer Older
1
2
definition module frontend

3
from scanner import SearchPaths
4
5
6
7
8
9
from general import Optional, Yes, No
import checksupport, transform, overloading

:: FrontEndSyntaxTree
	=	{	fe_icl :: !IclModule
		,	fe_dcls :: !{#DclModule}
10
		,	fe_components :: !{!Group}
11
		,	fe_varHeap :: !.VarHeap
Martijn Vervoort's avatar
Martijn Vervoort committed
12
13
14
// MdM
		,	fe_typeHeap :: !.TypeVarHeap
// ... MdM
15
16
		,	fe_dclIclConversions ::!Optional {# Index}
		,	fe_iclDclConversions ::!Optional {# Index}
17
		,	fe_globalFunctions :: !IndexRange
18
		,	fe_arrayInstances :: !IndexRange
19
		}
20
21
22
23
24
25
26
:: FrontEndPhase
	=	FrontEndPhaseCheck
	|	FrontEndPhaseTypeCheck
	|	FrontEndPhaseConvertDynamics
	|	FrontEndPhaseTransformGroups
	|	FrontEndPhaseConvertModules
	|	FrontEndPhaseAll
27

28
29
frontEndInterface :: !FrontEndPhase !Ident !SearchPaths !Bool !*PredefinedSymbols !*HashTable !*Files !*File !*File !*File -> (!*PredefinedSymbols, !*HashTable, !*Files, !*File, !*File, !*File, !Optional *FrontEndSyntaxTree) 
// upToPhase name paths list_inferred_types predefs files error io out