| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- DEFINITION MODULE CompilerExpr ;
- (* Expression parser and value helpers. Compiler.mod imports these names
- unqualified; ERes is the shared expression descriptor. *)
- FROM CompilerShared IMPORT ERes ;
- PROCEDURE VarSize (r : ERes) : CARDINAL ;
- PROCEDURE IsCharArray (r : ERes) : BOOLEAN ;
- PROCEDURE LoadAtom (VAR r : ERes) ;
- PROCEDURE EmitBoundsCheck (lo, hi, code : CARDINAL) ;
- PROCEDURE ParseSub (VAR r : ERes) ;
- PROCEDURE ParseVar (VAR r : ERes) ;
- PROCEDURE ConstAdd (a, b : LONGINT) : LONGINT ;
- PROCEDURE ConstSub (a, b : LONGINT) : LONGINT ;
- PROCEDURE ConstMul (a, b : LONGINT) : LONGINT ;
- PROCEDURE EmXchgAxDx () ;
- PROCEDURE StrConcat (op : CARDINAL ; left, right : ERes ; VAR res : ERes) ;
- PROCEDURE StrOperand (r : ERes) : BOOLEAN ;
- PROCEDURE BinOpEmit (op : CARDINAL ; left, right : ERes ; VAR res : ERes) ;
- PROCEDURE ConstCmp (op : CARDINAL ; a, b : LONGINT ; VAR f : LONGINT) : BOOLEAN ;
- PROCEDURE SaveLeft (VAR left : ERes) ;
- PROCEDURE LoadPair (VAR left, right : ERes) ;
- PROCEDURE EmStrBlob (r : ERes) : CARDINAL ;
- PROCEDURE EmAsciiZLiteral (start, stop : CARDINAL) : CARDINAL ;
- PROCEDURE EmPushSetAddr (r : ERes) ;
- PROCEDURE SetPairSize (left, right : ERes ; VAR size, base : CARDINAL) : BOOLEAN ;
- PROCEDURE AllocSetScratch (size : CARDINAL) : CARDINAL ;
- PROCEDURE SetBinEmit (op : CARDINAL ; left, right : ERes ; VAR res : ERes) ;
- PROCEDURE MaterializeDyn (VAR r : ERes ; base, size : CARDINAL) ;
- PROCEDURE EmPushStrAddr (r : ERes) ;
- PROCEDURE EmPushRealAddr (r : ERes) ;
- PROCEDURE EmPushRealSlot (r : ERes ; reserve : CARDINAL) ;
- PROCEDURE EmCopyRealTo (dstOff : CARDINAL ; r : ERes) ;
- PROCEDURE EmPushStrSlot (r : ERes ; reserve, copyN : CARDINAL) ;
- PROCEDURE SetRangeBits (VAR bytes : ARRAY OF CHAR ; size, base : CARDINAL ; lo, hi : LONGINT) ;
- PROCEDURE RdSetLiteral (base, size : CARDINAL ; VAR bytes : ARRAY OF CHAR) : BOOLEAN ;
- PROCEDURE EmSetBlob (VAR bytes : ARRAY OF CHAR ; size : CARDINAL) : CARDINAL ;
- PROCEDURE FoldSetIn (left, right : ERes ; VAR res : ERes) ;
- PROCEDURE RdSetBase (VAR baseCls : CARDINAL ; VAR lo, hi : LONGINT) ;
- PROCEDURE NewScratchStr () : CARDINAL ;
- PROCEDURE NewScratchWord () : CARDINAL ;
- PROCEDURE NewScratchReal () : CARDINAL ;
- PROCEDURE NewScratchRealBlock () : CARDINAL ;
- PROCEDURE EmPushStrOperand (r : ERes) ;
- PROCEDURE ParseCmp (VAR r : ERes) ;
- PROCEDURE ParseAdd (VAR r : ERes) ;
- PROCEDURE ParseMul (VAR r : ERes) ;
- PROCEDURE ParseNeg (VAR r : ERes) ;
- PROCEDURE WithLookup (nm : ARRAY OF CHAR ; VAR r : ERes) : BOOLEAN ;
- PROCEDURE ParseAtom (VAR r : ERes) ;
- PROCEDURE AddPend (kind, who, place : CARDINAL) ;
- PROCEDURE ParmSlot (idx, k : CARDINAL) : CARDINAL ;
- PROCEDURE ParmIsVar (idx, k : CARDINAL) : BOOLEAN ;
- PROCEDURE EmCallMost (idx, cleanup : CARDINAL) ;
- PROCEDURE ParseCallArgs (idx : CARDINAL) ;
- PROCEDURE ParseCall (idx : CARDINAL) ;
- PROCEDURE ParseExpr (VAR r : ERes) ;
- PROCEDURE IntToMbf (v : LONGINT ; VAR b : ARRAY OF CHAR) ;
- PROCEDURE RealOperand (r : ERes ; dstOff : CARDINAL) ;
- PROCEDURE RealBin (op : CARDINAL ; left, right : ERes ; VAR res : ERes) ;
- PROCEDURE RealUnary (ent : CARDINAL ; VAR r : ERes) ;
- END CompilerExpr.
|