MODULE StringLib;

IMPORT
    RTS;


PROCEDURE CanDeleteAll*(p0 : INTEGER;
                        p1 : INTEGER;
                        p2 : INTEGER) : BOOLEAN;

PROCEDURE CanAppendAll*(    p0 : INTEGER;
                        VAR p1 : ARRAY OF CHAR) : BOOLEAN;

PROCEDURE CanAssignAll*(    p0 : INTEGER;
                        IN  p1 : ARRAY OF CHAR) : BOOLEAN;

PROCEDURE CanInsertAll*(    p0 : INTEGER;
                            p1 : INTEGER;
                        VAR p2 : ARRAY OF CHAR) : BOOLEAN;

PROCEDURE Extract*(IN  p0 : ARRAY OF CHAR;
                       p1 : INTEGER;
                       p2 : INTEGER;
                   OUT p3 : ARRAY OF CHAR);

PROCEDURE Replace*(IN  p0 : ARRAY OF CHAR;
                       p1 : INTEGER;
                   VAR p2 : ARRAY OF CHAR);

PROCEDURE Capitalize*(VAR p0 : ARRAY OF CHAR);

PROCEDURE Assign*(IN  p0 : ARRAY OF CHAR;
                  OUT p1 : ARRAY OF CHAR);

PROCEDURE Delete*(VAR p0 : ARRAY OF CHAR;
                      p1 : INTEGER;
                      p2 : INTEGER);

PROCEDURE Append*(    p0 : ARRAY OF CHAR;
                  VAR p1 : ARRAY OF CHAR);

PROCEDURE FindDiff*(IN  p0 : ARRAY OF CHAR;
                    IN  p1 : ARRAY OF CHAR;
                    OUT p2 : BOOLEAN;
                    OUT p3 : INTEGER);

PROCEDURE Insert*(IN  p0 : ARRAY OF CHAR;
                      p1 : INTEGER;
                  VAR p2 : ARRAY OF CHAR);

PROCEDURE FindNext*(IN  p0 : ARRAY OF CHAR;
                    IN  p1 : ARRAY OF CHAR;
                        p2 : INTEGER;
                    OUT p3 : BOOLEAN;
                    OUT p4 : INTEGER);

PROCEDURE FindPrev*(IN  p0 : ARRAY OF CHAR;
                    IN  p1 : ARRAY OF CHAR;
                        p2 : INTEGER;
                    OUT p3 : BOOLEAN;
                    OUT p4 : INTEGER);

PROCEDURE CanExtractAll*(    p0 : INTEGER;
                             p1 : INTEGER;
                             p2 : INTEGER;
                         OUT p3 : ARRAY OF CHAR) : BOOLEAN;

PROCEDURE CanReplaceAll*(    p0 : INTEGER;
                             p1 : INTEGER;
                         VAR p2 : ARRAY OF CHAR) : BOOLEAN;


END StringLib.