DEFINITION MODULE P3Exp;

FROM MCBase IMPORT
    Idptr, Stptr, Stset, Constval;

EXPORT QUALIFIED
      Expression, TypeExpression, ExprSequence,
      VariableStandard, VariantAnalyse,
      ParamCheck, StProcCheck,
      ExprComp, AssignComp, AddressComp,
      Selector, PreSelector, Attribut, Attributmode,
      ConstantRange, ConstantVal, PutConst, InitAt, InCCALL;

TYPE Attributmode = (constm, varm, exprm);
         Attribut = RECORD
                      mode : Attributmode;
                      atp : Stptr;
                      aval : Constval;
                    END;
VAR InCCALL : BOOLEAN;
PROCEDURE Expression(VAR at : Attribut);
PROCEDURE TypeExpression(VAR at : Attribut; forms: Stset);
PROCEDURE VariantAnalyse(tagref: Stptr; VAR sz: Constval);
PROCEDURE VariableStandard(VAR at: Attribut; forms: Stset);
PROCEDURE ExprSequence;
PROCEDURE ParamCheck(fstp : Idptr);
PROCEDURE StProcCheck(ip: Idptr);
PROCEDURE ExprComp(at1,at2 : Attribut) : BOOLEAN;
PROCEDURE AssignComp(at1,at2: Attribut): BOOLEAN;
PROCEDURE AddressComp(at1,at2: Attribut): BOOLEAN;
PROCEDURE PreSelector(x: Idptr; VAR at: Attribut);
PROCEDURE Selector(VAR at : Attribut);
PROCEDURE InitAt(VAR at : Attribut);
PROCEDURE PutConst(sp: Stptr; cval: Constval);
PROCEDURE Constant(VAR at: Attribut);
PROCEDURE ConstantRange(VAR tp: Stptr; VAR c1, c2: Constval);
PROCEDURE ConstantVal(VAR tp: Stptr; VAR c: Constval);

END P3Exp .
