PACKET text operation DEFINES text assign 1, text assign 10, text assign 30, row text, text mult, cat, text equal 1, text equal 10, text equal 30, text lequal 1, text lequal 10, text lequal 30, text add 1, text add 10, text add 30, text length 1, text length 10, text length 30, text sub 1, text sub 10, text sub 30, subtext 1, subtext 10, subtext 30, replace 1, replace 10, replace 30, text 1, text 10, text 30, pos 1, pos 10, pos 30 : (***************************************************************************) (* *) (* Autor: A. Steinmann Copyright (C): HRZ - Unibi *) (* *) (***************************************************************************) ROW 10 TEXT VAR text row ; INT VAR index, i, j ; REAL VAR begin, end, act result, text assign factor ; TEXT VAR single text :: "*", short text :: "ELAN/EUMEL", long text :: "Ein Multi User Betriebssystem!", free text ; PROC text assign 1 (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := single text END REP ; end := clock (0) ; act result := end - begin ; text assign 1 s (frequency) END PROC text assign 1 ; PROC text assign 1 s (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := single text END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; text assign factor := act result * msec factor (frequency) - for corr ; notice result ("TEXT := (1)", text assign factor) END PROC text assign 1 s ; PROC text assign 10 (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := short text END REP ; end := clock (0) ; act result := end - begin ; text assign 10 s (frequency) END PROC text assign 10 ; PROC text assign 10 s (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := short text END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT := (10)", act result * msec factor (frequency) - for corr) END PROC text assign 10 s ; PROC text assign 30 (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := long text END REP ; end := clock (0) ; act result := end - begin ; text assign 30 s (frequency) END PROC text assign 30 ; PROC text assign 30 s (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := long text END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT := (30)", act result * msec factor (frequency) - for corr) END PROC text assign 30 s ; PROC row text (INT CONST frequency) : i := 7 ; text row [i] := "" ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP text row [i] := single text END REP ; end := clock (0) ; act result := end - begin ; row text s (frequency) END PROC row text ; PROC row text s (INT CONST frequency) : i := 7 ; text row [i] := "" ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP text row [i] := single text END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("ROW TEXT [i]", act result * msec factor (frequency) - for corr) END PROC row text s ; PROC text equal 1 (INT CONST frequency) : free text := single text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text = single text THEN FI END REP ; end := clock (0) ; act result := end - begin ; text equal 1 s (frequency) END PROC text equal 1 ; PROC text equal 1 s (INT CONST frequency) : free text := single text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text = single text THEN FI END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT = (1)", act result * msec factor (frequency) - for corr) END PROC text equal 1 s ; PROC text equal 10 (INT CONST frequency) : free text := short text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text = short text THEN FI END REP ; end := clock (0) ; act result := end - begin ; text equal 10 s (frequency) END PROC text equal 10 ; PROC text equal 10 s (INT CONST frequency) : free text := short text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text = short text THEN FI END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT = (10)", act result * msec factor (frequency) - for corr) END PROC text equal 10 s ; PROC text equal 30 (INT CONST frequency) : free text := long text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text = long text THEN FI END REP ; end := clock (0) ; act result := end - begin ; text equal 30 s (frequency) END PROC text equal 30 ; PROC text equal 30 s (INT CONST frequency) : free text := long text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text = long text THEN FI END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT = (30)", act result * msec factor (frequency) - for corr) END PROC text equal 30 s ; PROC text lequal 1 (INT CONST frequency) : free text := single text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text <= single text THEN FI END REP ; end := clock (0) ; act result := end - begin ; text lequal 1 s (frequency) END PROC text lequal 1 ; PROC text lequal 1 s (INT CONST frequency) : free text := single text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text <= single text THEN FI END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT <= (1)", act result * msec factor (frequency) - for corr) END PROC text lequal 1 s ; PROC text lequal 10 (INT CONST frequency) : free text := short text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text <= short text THEN FI END REP ; end := clock (0) ; act result := end - begin ; text lequal 10 s (frequency) END PROC text lequal 10 ; PROC text lequal 10 s (INT CONST frequency) : free text := short text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text <= short text THEN FI END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT <= (10)", act result * msec factor (frequency) - for corr) END PROC text lequal 10 s ; PROC text lequal 30 (INT CONST frequency) : free text := long text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text <= long text THEN FI END REP ; end := clock (0) ; act result := end - begin ; text lequal 30 s (frequency) END PROC text lequal 30 ; PROC text lequal 30 s (INT CONST frequency) : free text := long text ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP IF free text <= long text THEN FI END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT <= (30)", act result * msec factor (frequency) - for corr) END PROC text lequal 30 s ; PROC text mult (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := i * single text END REP ; end := clock (0) ; act result := end - begin ; text mult s (frequency) END PROC text mult ; PROC text mult s (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := i * single text END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT * (Faktor 1)", act result * msec factor (frequency) - for corr) END PROC text mult s ; PROC cat (INT CONST frequency) : free text := "" ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text CAT single text ; free text := "" END REP ; end := clock (0) ; act result := end - begin ; cat s (frequency) END PROC cat ; PROC cat s (INT CONST frequency) : free text := "" ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text CAT single text ; free text := "" END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("CAT (1)", act result * msec factor (frequency) - for corr) END PROC cat s ; PROC text add 1 (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := single text + single text END REP ; end := clock (0) ; act result := end - begin ; text add 1 s (frequency) END PROC text add 1 ; PROC text add 1 s (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := single text + single text END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT + (1)", act result * msec factor (frequency) - for corr) END PROC text add 1 s ; PROC text add 10 (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := short text + short text END REP ; end := clock (0) ; act result := end - begin ; text add 10 s (frequency) END PROC text add 10 ; PROC text add 10 s (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := short text + short text END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT + (10)", act result * msec factor (frequency) - for corr) END PROC text add 10 s ; PROC text add 30 (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := long text + long text END REP ; end := clock (0) ; act result := end - begin ; text add 30 s (frequency) END PROC text add 30 ; PROC text add 30 s (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := long text + long text END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("TEXT + (30)", act result * msec factor (frequency) - for corr) END PROC text add 30 s ; PROC text length 1 (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP i := length (single text) END REP ; end := clock (0) ; act result := end - begin ; text length 1 s (frequency) END PROC text length 1 ; PROC text length 1 s (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP i := length (single text) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("length (1)", act result * msec factor (frequency) - for corr) END PROC text length 1 s ; PROC text length 10 (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP i := length (short text) END REP ; end := clock (0) ; act result := end - begin ; text length 10 s (frequency) END PROC text length 10 ; PROC text length 10 s (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP i := length (short text) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("length (10)", act result * msec factor (frequency) - for corr) END PROC text length 10 s ; PROC text length 30 (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP i := length (long text) END REP ; end := clock (0) ; act result := end - begin ; text length 30 s (frequency) END PROC text length 30 ; PROC text length 30 s (INT CONST frequency) : begin := clock (0) ; FOR index FROM 1 UPTO frequency REP i := length (long text) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("length (30)", act result * msec factor (frequency) - for corr) END PROC text length 30 s ; PROC text sub 1 (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := single text SUB i END REP ; end := clock (0) ; act result := end - begin ; text sub 1 s (frequency) END PROC text sub 1 ; PROC text sub 1 s (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := single text SUB i END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("SUB (1)", act result * msec factor (frequency) - for corr) END PROC text sub 1 s ; PROC text sub 10 (INT CONST frequency) : i := 7 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := short text SUB i END REP ; end := clock (0) ; act result := end - begin ; text sub 10 s (frequency) END PROC text sub 10 ; PROC text sub 10 s (INT CONST frequency) : i := 7 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := short text SUB i END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("SUB (10)", act result * msec factor (frequency) - for corr) END PROC text sub 10 s ; PROC text sub 30 (INT CONST frequency) : i := 17 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := long text SUB i END REP ; end := clock (0) ; act result := end - begin ; text sub 30 s (frequency) END PROC text sub 30 ; PROC text sub 30 s (INT CONST frequency) : i := 17 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := long text SUB i END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("SUB (30)", act result * msec factor (frequency) - for corr) END PROC text sub 30 s ; PROC subtext 1 (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := subtext (single text , i, i) END REP ; end := clock (0) ; act result := end - begin ; subtext 1 s (frequency) END PROC subtext 1 ; PROC subtext 1 s (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := subtext (single text , i, i) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("subtext (TEXT, INT, INT) (1)", act result * msec factor (frequency) - for corr) END PROC subtext 1 s ; PROC subtext 10 (INT CONST frequency) : i := 7 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := subtext (short text , i, i) END REP ; end := clock (0) ; act result := end - begin ; subtext 10 s (frequency) END PROC subtext 10 ; PROC subtext 10 s (INT CONST frequency) : i := 7 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := subtext (short text , i, i) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("subtext (TEXT, INT, INT) (10)", act result * msec factor (frequency) - for corr) END PROC subtext 10 s ; PROC subtext 30 (INT CONST frequency) : i := 17 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := subtext (long text , i, i) END REP ; end := clock (0) ; act result := end - begin ; subtext 30 s (frequency) END PROC subtext 30 ; PROC subtext 30 s (INT CONST frequency) : i := 17 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := subtext (long text , i, i) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("subtext (TEXT, INT, INT) (30)", act result * msec factor (frequency) - for corr) END PROC subtext 30 s ; PROC replace 1 (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP replace (single text, i, single text) END REP ; end := clock (0) ; act result := end - begin ; replace 1 s (frequency) END PROC replace 1 ; PROC replace 1 s (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP replace (single text, i, single text) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("replace (TEXT, TEXT, INT) (1)", act result * msec factor (frequency) - for corr) END PROC replace 1 s ; PROC replace 10 (INT CONST frequency) : i := 7 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP replace (short text, i, single text) END REP ; end := clock (0) ; act result := end - begin ; replace 10 s (frequency) END PROC replace 10 ; PROC replace 10 s (INT CONST frequency) : i := 7 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP replace (short text, i, single text) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("replace (TEXT, TEXT, INT) (10)", act result * msec factor (frequency) - for corr) END PROC replace 10 s ; PROC replace 30 (INT CONST frequency) : i := 17 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP replace (long text, i, single text) END REP ; end := clock (0) ; act result := end - begin ; replace 30 s (frequency) END PROC replace 30 ; PROC replace 30 s (INT CONST frequency) : i := 17 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP replace (long text, i, single text) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("replace (TEXT, TEXT, INT) (30)", act result * msec factor (frequency) - for corr) END PROC replace 30 s ; PROC text 1 (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := text (single text, i, i) END REP ; end := clock (0) ; act result := end - begin ; text 1 s (frequency) END PROC text 1 ; PROC text 1 s (INT CONST frequency) : i := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := text (single text, i, i) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("text (TEXT, INT, INT) (1)", act result * msec factor (frequency) - for corr) END PROC text 1 s ; PROC text 10 (INT CONST frequency) : i := 7 ; j := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := text (short text, j, i) END REP ; end := clock (0) ; act result := end - begin ; text 10 s (frequency) END PROC text 10 ; PROC text 10 s (INT CONST frequency) : i := 7 ; j := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := text (short text, j, i) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("text (TEXT, INT, INT) (10)", act result * msec factor (frequency) - for corr) END PROC text 10 s ; PROC text 30 (INT CONST frequency) : i := 17 ; j := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := text (long text, j, i) END REP ; end := clock (0) ; act result := end - begin ; text 30 s (frequency) END PROC text 30 ; PROC text 30 s (INT CONST frequency) : i := 17 ; j := 1 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP free text := text (long text, j, i) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("text (TEXT, INT, INT) (30)", act result * msec factor (frequency) - for corr) END PROC text 30 s ; PROC pos 1 (INT CONST frequency) : i := 1 ; j := 0 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP j := pos (single text, single text, i) END REP ; end := clock (0) ; act result := end - begin ; pos 1 s (frequency) END PROC pos 1 ; PROC pos 1 s (INT CONST frequency) : i := 1 ; j := 0 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP j := pos (single text, single text, i) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("pos (TEXT, TEXT, INT) (1)", act result * msec factor (frequency) - for corr) END PROC pos 1 s ; PROC pos 10 (INT CONST frequency) : i := 1 ; j := 0 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP j := pos (short text, single text, i) END REP ; end := clock (0) ; act result := end - begin ; pos 10 s (frequency) END PROC pos 10 ; PROC pos 10 s (INT CONST frequency) : i := 1 ; j := 0 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP j := pos (short text, single text, i) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("pos (TEXT, TEXT, INT) (10)", act result * msec factor (frequency) - for corr) END PROC pos 10 s ; PROC pos 30 (INT CONST frequency) : i := 1 ; j := 0 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP j := pos (long text, single text, i) END REP ; end := clock (0) ; act result := end - begin ; pos 30 s (frequency) END PROC pos 30 ; PROC pos 30 s (INT CONST frequency) : i := 1 ; j := 0 ; begin := clock (0) ; FOR index FROM 1 UPTO frequency REP j := pos (long text, single text, i) END REP ; end := clock (0) ; IF act result > end - begin THEN act result := end - begin FI ; notice result ("pos (TEXT, TEXT, INT) (30)", act result * msec factor (frequency) - for corr) END PROC pos 30 s ; END PACKET text operation ;