a family of Non-deterministic search predicates, implemented in Assembly Language.
These predicates have many variants:
nd_search(STRING,CHAR,INTEGER) -(i,i,o)
Searches a string(arg.1) non-deterministically for a given char(arg.2), producing all the positions(arg.3) inside the string where the char occurs.
nd_search(STRING,STRING,INTEGER) -(i,i,o)
Searches a string(arg.1) non-deterministically for a given substring(arg.2), producing all the positions(arg.3) inside the string where the substring occurs.
nd_search(STRING,CHAR,INTEGER,INTEGER) -(i,i,i,o)
Searches a string(arg.1) non-deterministically for a given char(arg.2), starting from an initial position(arg.3) producing all the positions(arg.4) inside the string where the char occurs.
nd_search(STRING,STRING,INTEGER,INTEGER) -(i,i,i,o)
Searches a string(arg.1) non-deterministically for a given substring(arg.2), starting from an initial position(arg.3) producing all the positions(arg.4) inside the string where the substring occurs.
This family of predicates has been implemented in Pure 32-bit Assembly.