PushT (2) ; (* Two parameters *)
BuildConvertFunction
ELSE
- MetaError1 ('the second parameter to {%EkDIFADR } {%1Ea} must be a variable of type ADDRESS or a {%EkPOINTER}, rather than a {%1Etsd}',
+ MetaError1 ('the second parameter to {%EkDIFADR} {%1Ea} must be a variable of type ADDRESS or a {%EkPOINTER}, rather than a {%1Etsd}',
OperandSym) ;
PushTFtok (MakeConstLit (combinedtok, MakeKey ('0'), Integer), Integer, combinedtok)
END
ELSE
- MetaError1 ('the first parameter to {%EkDIFADR } {%1Ea} must be a variable of type ADDRESS or a {%EkPOINTER}, rather than a {%1Etsd}',
- VarSym) ;
+ MetaErrorT1 (vartok,
+ 'the first parameter to {%EkDIFADR} {%1Ea} must be a variable of type ADDRESS or a {%EkPOINTER}, rather than a {%1Etsd}',
+ VarSym) ;
PushTFtok (MakeConstLit (combinedtok, MakeKey ('0'), Integer), Integer, combinedtok)
END
ELSE
- MetaError0 ('{%E}SYSTEM procedure {%EkDIFADR } expects a variable of type ADDRESS or POINTER as its first parameter') ;
+ MetaError0 ('{%E}SYSTEM procedure {%EkDIFADR} expects a variable of type ADDRESS or POINTER as its first parameter') ;
PushTFtok (MakeConstLit (combinedtok, MakeKey('0'), Integer), Integer, combinedtok)
END
ELSE
combinedtok := MakeVirtualTok (functok, functok, optok) ;
- MetaErrorT0 (functok, '{%E}SYSTEM procedure {%EkDIFADR } expects 2 parameters') ;
+ MetaErrorT0 (functok, '{%E}SYSTEM procedure {%EkDIFADR} expects 2 parameters') ;
PopN (NoOfParam+1) ;
PushTFtok (MakeConstLit (combinedtok, MakeKey('0'), Integer), Integer, combinedtok)
END
PushTtok (Res, combinedtok)
ELSE
- MetaErrorT1 (combinedtok,
+ MetaErrorT1 (optok,
'the parameter to {%1EkODD} must be a variable or constant, seen {%1ad}',
Var) ;
PushTtok (False, combinedtok)
END
ELSE
MetaErrorT1 (functok,
- 'the pseudo procedure {%1EkODD} only has one parameter, seen {%1n} parameters',
+ 'the pseudo procedure {%E1kODD} only has one parameter, seen {%1n} parameters',
NoOfParam) ;
PushTtok (False, functok)
END
PROCEDURE BuildAbsFunction ;
VAR
+ vartok,
functok,
combinedtok: CARDINAL ;
NoOfParam,
IF NoOfParam = 1
THEN
Var := OperandT (1) ;
+ vartok := OperandTok (1) ;
combinedtok := MakeVirtualTok (functok, functok, vartok) ;
IF IsVar(Var) OR IsConst(Var)
THEN
GenQuadO (combinedtok, StandardFunctionOp, Res, ProcSym, Var, FALSE) ;
PushTFtok (Res, GetSType (Var), combinedtok)
ELSE
- MetaErrorT1 (combinedtok,
+ MetaErrorT1 (vartok,
'the parameter to {%AkABS} must be a variable or constant, seen {%1ad}',
Var)
END
GenQuadO (combinedtok, StandardFunctionOp, Res, ProcSym, Var, FALSE) ;
PushTFtok (Res, Char, combinedtok)
ELSE
- MetaErrorT1 (functok,
+ MetaErrorT1 (optok,
'the parameter to {%AkCAP} must be a variable or constant, seen {%1ad}',
Var)
END
PushT (2) ; (* Two parameters *)
BuildConvertFunction
ELSE
- MetaErrorT1 (functok,
+ MetaErrorT1 (optok,
'the parameter to {%AkCHR} must be a variable or constant, seen {%1ad}',
Var)
END
PushT (2) ; (* Two parameters *)
BuildConvertFunction
ELSE
- MetaErrorT2 (functok,
- 'the parameter to {%1Ak%a} must be a variable or constant, seen {%2ad}',
+ MetaErrorT2 (optok,
+ 'the parameter to {%1Aa} must be a variable or constant, seen {%2ad}',
Sym, Var)
END
ELSE
MetaErrorT2 (functok,
- 'the pseudo procedure {%1Ak%a} only has one parameter, seen {%2n} parameters',
+ 'the pseudo procedure {%1Aa} only has one parameter, seen {%2n} parameters',
Sym, NoOfParam)
END
END BuildOrdFunction ;
BuildConvertFunction
ELSE
combinedtok := MakeVirtualTok (functok, optok, optok) ;
- MetaErrorT2 (combinedtok,
- 'the parameter to {%1Ek%a} must be a variable or constant, seen {%2ad}',
+ MetaErrorT2 (optok,
+ 'the parameter to {%1Ea} must be a variable or constant, seen {%2ad}',
Sym, Var) ;
PushTtok (combinedtok, MakeConstLit (combinedtok, MakeKey ('0'), ZType))
END
ELSE
MetaErrorT2 (functok,
- 'the pseudo procedure {%1Ek%a} only has one parameter, seen {%2n} parameters',
+ 'the pseudo procedure {%1Ea} only has one parameter, seen {%2n} parameters',
Sym, NoOfParam) ;
PushTtok (functok, MakeConstLit (functok, MakeKey ('0'), ZType))
END
GenQuad (LogicalShiftOp, returnVar, varSet, derefExp) ;
PushTFtok (returnVar, GetSType (varSet), combinedtok)
ELSE
- MetaError1 ('SYSTEM procedure {%1EkSHIFT} expects a constant or variable which has a type of SET as its first parameter, seen {%1ad}',
- varSet) ;
+ MetaErrorT1 (vartok,
+ 'SYSTEM procedure {%1EkSHIFT} expects a constant or variable which has a type of SET as its first parameter, seen {%1ad}',
+ varSet) ;
PushTFtok (MakeConstLit (combinedtok, MakeKey ('0'), Cardinal), Cardinal, combinedtok)
END
ELSE
GenQuadO (combinedtok, LogicalRotateOp, returnVar, varSet, derefExp, TRUE) ;
PushTFtok (returnVar, GetSType (varSet), combinedtok)
ELSE
- MetaErrorT0 (functok,
- 'SYSTEM procedure {%EkROTATE} expects a constant or variable which has a type of SET as its first parameter') ;
+ MetaErrorT1 (vartok,
+ 'SYSTEM procedure {%EkROTATE} expects a constant or variable which has a type of SET as its first parameter, seen {%1ad}',
+ varSet) ;
PushTFtok (MakeConstLit (functok, MakeKey('0'), Cardinal), Cardinal, functok)
END
ELSE
PushTFtok (MakeConstLit (functok, MakeKey('0'), Type), Type, functok)
END
ELSE
- MetaErrorT2 (functok,
+ MetaErrorT2 (vartok,
'argument to {%1E%ad} must be a variable or constant, seen {%2ad}',
Sym, Var) ;
PushTFtok (MakeConstLit (functok, MakeKey('0'), Type), Type, functok)
PushT(2) ; (* two parameters. *)
BuildConvertFunction
ELSE
- MetaErrorT1 (functok,
+ MetaErrorT1 (vartok,
'argument to {%1E%ad} must be a variable or constant', ProcSym) ;
PushTFtok (MakeConstLit (functok, MakeKey('0.0'), Type), Type, functok)
END
ELSE
PopN (NoOfParam+1) ; (* destroy arguments to this function *)
PushTFtok (MakeConstLit (combinedtok, MakeKey ('1.0'), RType), RType, combinedtok) ;
- MetaErrorT2 (functok,
+ MetaErrorT2 (vartok,
'the parameter to the builtin procedure function {%1Ead} must be a constant or a variable, seen {%2ad}',
func, Var)
END
ELSE
PopN (NoOfParam+1) ; (* destroy arguments to this function *)
PushTFtok (MakeConstLit (combinedtok, MakeKey ('1.0'), RType), RType, combinedtok) ;
- MetaErrorT2 (functok,
+ MetaErrorT2 (vartok,
'the parameter to the builtin procedure function {%1Ead} must be a constant or a variable, seen {%2ad}',
func, Var)
END