---- Copyright (c) 2009-2010, ERICSSON AB All rights reserved.-- -- Redistribution and use in source and binary forms, with or without-- modification, are permitted provided that the following conditions are met:-- -- * Redistributions of source code must retain the above copyright notice,-- this list of conditions and the following disclaimer.-- * Redistributions in binary form must reproduce the above copyright-- notice, this list of conditions and the following disclaimer in the-- documentation and/or other materials provided with the distribution.-- * Neither the name of the ERICSSON AB nor the names of its contributors-- may be used to endorse or promote products derived from this software-- without specific prior written permission.-- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,-- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF-- THE POSSIBILITY OF SUCH DAMAGE.--{-# LANGUAGE TypeFamilies, EmptyDataDecls, FlexibleContexts #-}moduleFeldspar.Compiler.Imperative.SemanticswheredataInitSemInfdataPrettyPrintSemanticInfodataIsRestrict=Restrict|NoRestrictderiving(Show,Eq)dataIsDefaultArraySize=DefaultArraySize|NoDefaultArraySizederiving(Show,Eq)-- ====================================================================================================-- == Semantic info class-- ====================================================================================================class(Show(ProcedureInfot),Eq(ProcedureInfot),Show(BlockInfot),Eq(BlockInfot),Show(ProgramInfot),Eq(ProgramInfot),Show(EmptyInfot),Eq(EmptyInfot),Show(PrimitiveInfot),Eq(PrimitiveInfot),Show(SequenceInfot),Eq(SequenceInfot),Show(BranchInfot),Eq(BranchInfot),Show(SequentialLoopInfot),Eq(SequentialLoopInfot),Show(ParallelLoopInfot),Eq(ParallelLoopInfot),Show(FormalParameterInfot),Eq(FormalParameterInfot),Show(LocalDeclarationInfot),Eq(LocalDeclarationInfot),Show(ExpressionInfot),Eq(ExpressionInfot),Show(ConstantInfot),Eq(ConstantInfot),Show(FunctionCallInfot),Eq(FunctionCallInfot),Show(LeftValueInfot),Eq(LeftValueInfot),Show(ArrayElemReferenceInfot),Eq(ArrayElemReferenceInfot),Show(InstructionInfot),Eq(InstructionInfot),Show(AssignmentInfot),Eq(AssignmentInfot),Show(ProcedureCallInfot),Eq(ProcedureCallInfot),Show(ActualParameterInfot),Eq(ActualParameterInfot),Show(IntConstantInfot),Eq(IntConstantInfot),Show(FloatConstantInfot),Eq(FloatConstantInfot),Show(BoolConstantInfot),Eq(BoolConstantInfot),Show(ArrayConstantInfot),Eq(ArrayConstantInfot),Show(VariableInfot),Eq(VariableInfot))=>SemanticInfotwheretypeProcedureInfottypeBlockInfottypeProgramInfottypeEmptyInfottypePrimitiveInfottypeSequenceInfottypeBranchInfottypeSequentialLoopInfottypeParallelLoopInfottypeFormalParameterInfottypeLocalDeclarationInfottypeExpressionInfottypeConstantInfottypeFunctionCallInfottypeLeftValueInfottypeArrayElemReferenceInfottypeInstructionInfottypeAssignmentInfottypeProcedureCallInfottypeActualParameterInfottypeIntConstantInfottypeFloatConstantInfottypeBoolConstantInfottypeArrayConstantInfottypeVariableInfotinstanceSemanticInfo()wheretypeProcedureInfo()=()typeBlockInfo()=()typeProgramInfo()=()typeEmptyInfo()=()typePrimitiveInfo()=()typeSequenceInfo()=()typeBranchInfo()=()typeSequentialLoopInfo()=()typeParallelLoopInfo()=()typeFormalParameterInfo()=()typeLocalDeclarationInfo()=()typeExpressionInfo()=()typeConstantInfo()=()typeFunctionCallInfo()=()typeLeftValueInfo()=()typeArrayElemReferenceInfo()=()typeInstructionInfo()=()typeAssignmentInfo()=()typeProcedureCallInfo()=()typeActualParameterInfo()=()typeIntConstantInfo()=()typeFloatConstantInfo()=()typeBoolConstantInfo()=()typeArrayConstantInfo()=()typeVariableInfo()=()instanceSemanticInfoInitSemInfwheretypeProcedureInfoInitSemInf=()typeBlockInfoInitSemInf=()typeProgramInfoInitSemInf=()typeEmptyInfoInitSemInf=()typePrimitiveInfoInitSemInf=BooltypeSequenceInfoInitSemInf=()typeBranchInfoInitSemInf=()typeSequentialLoopInfoInitSemInf=()typeParallelLoopInfoInitSemInf=()typeFormalParameterInfoInitSemInf=()typeLocalDeclarationInfoInitSemInf=()typeExpressionInfoInitSemInf=()typeConstantInfoInitSemInf=()typeFunctionCallInfoInitSemInf=()typeLeftValueInfoInitSemInf=()typeArrayElemReferenceInfoInitSemInf=()typeInstructionInfoInitSemInf=()typeAssignmentInfoInitSemInf=()typeProcedureCallInfoInitSemInf=()typeActualParameterInfoInitSemInf=()typeIntConstantInfoInitSemInf=()typeFloatConstantInfoInitSemInf=()typeBoolConstantInfoInitSemInf=()typeArrayConstantInfoInitSemInf=()typeVariableInfoInitSemInf=()instanceSemanticInfoPrettyPrintSemanticInfowheretypeProcedureInfoPrettyPrintSemanticInfo=()typeBlockInfoPrettyPrintSemanticInfo=()typeProgramInfoPrettyPrintSemanticInfo=()typeEmptyInfoPrettyPrintSemanticInfo=()typePrimitiveInfoPrettyPrintSemanticInfo=()typeSequenceInfoPrettyPrintSemanticInfo=()typeBranchInfoPrettyPrintSemanticInfo=()typeSequentialLoopInfoPrettyPrintSemanticInfo=()typeParallelLoopInfoPrettyPrintSemanticInfo=()typeFormalParameterInfoPrettyPrintSemanticInfo=IsRestricttypeLocalDeclarationInfoPrettyPrintSemanticInfo=()typeExpressionInfoPrettyPrintSemanticInfo=()typeConstantInfoPrettyPrintSemanticInfo=()typeFunctionCallInfoPrettyPrintSemanticInfo=()typeLeftValueInfoPrettyPrintSemanticInfo=()typeArrayElemReferenceInfoPrettyPrintSemanticInfo=()typeInstructionInfoPrettyPrintSemanticInfo=()typeAssignmentInfoPrettyPrintSemanticInfo=()typeProcedureCallInfoPrettyPrintSemanticInfo=()typeActualParameterInfoPrettyPrintSemanticInfo=()typeIntConstantInfoPrettyPrintSemanticInfo=()typeFloatConstantInfoPrettyPrintSemanticInfo=()typeBoolConstantInfoPrettyPrintSemanticInfo=()typeArrayConstantInfoPrettyPrintSemanticInfo=()typeVariableInfoPrettyPrintSemanticInfo=()