helium-1.8: src/Helium/CodeGeneration/CodeGeneration.ag
ATTR Module
[ dictionaryEnv : DictionaryEnvironment
extraDecls : { [Core.CoreDecl] }
importEnv : ImportEnvironment
toplevelTypes : TypeEnvironment
|
| core : { Core.CoreModule }
]
-- UHA
INCLUDE "UHA_Syntax.ag"
-- Transformation into Core
INCLUDE "ToCoreModule.ag"
INCLUDE "ToCoreDecl.ag"
INCLUDE "ToCoreExpr.ag"
INCLUDE "ToCorePat.ag"
INCLUDE "ToCoreName.ag"
imports{
import Helium.Syntax.UHA_Syntax
import Helium.Syntax.UHA_Utils
import Helium.Syntax.UHA_Range
import Helium.ModuleSystem.ImportEnvironment
import Helium.ModuleSystem.DictionaryEnvironment
import qualified Data.Map as M
import Helium.StaticAnalysis.Miscellaneous.TypeConversion
import Data.Char (ord)
import Lvm.Common.Id
import Lvm.Common.IdSet
import Helium.Utils.Utils(internalError)
import Top.Types
import Helium.CodeGeneration.PatternMatch
import qualified Helium.CodeGeneration.DerivingShow as DerivingShow
import qualified Helium.CodeGeneration.DerivingEq as DerivingEq
-- Semi-Daan
import Helium.CodeGeneration.CoreUtils
-- Daan
import qualified Lvm.Core.Expr as Core
import qualified Lvm.Core.Module as Core
import qualified Lvm.Core.Module as Module
import qualified Lvm.Common.Byte as Byte
}
{
type CoreDecl = Core.Decl Core.Expr
}
--Collect.ag
ATTR Body Declarations Declaration Expressions Expression Statements Statement
Qualifiers Qualifier GuardedExpressions GuardedExpression
Alternatives Alternative FunctionBindings FunctionBinding
RightHandSide MaybeDeclarations MaybeExpression RecordExpressionBinding
RecordExpressionBindings Constructors Constructor
[ dictionaryEnv : DictionaryEnvironment | | ]
ATTR Body Declarations Declaration Constructor Constructors
[ importEnv : ImportEnvironment | | ]
SEM Expression | Let loc.importEnv = internalError "CodeGeneration.ag" "Expression.Let" ""
SEM MaybeDeclarations | Just loc.importEnv = internalError "CodeGeneration.ag" "MaybeDeclarations.Just" ""
SEM Qualifier | Let loc.importEnv = internalError "CodeGeneration.ag" "Qualifier.Let" ""
SEM Statement | Let loc.importEnv = internalError "CodeGeneration.ag" "Statement.Let" ""
ATTR SimpleType [ | | name:Name typevariables:Names ]
SEM SimpleType
| SimpleType lhs . name = @name.self
. typevariables = @typevariables.self