The syntactic patterns are on the form:
"@@function[:filename][|arg1|arg2....|argN]@@"
This is interpreted as a call:
filename->function(arg1, arg2, ....., argN)
Note that process_string does not recurse over returned replacement values. If a function returns another syntactic pattern, that description will not be replaced.
All such occurrences in 'combinestring' is processed and replaced if the return value is a string. If the return value is not a string the the pattern will remain unreplaced.
Note that both object and arguments are marked optional with the brackets and that the brackets are not included in the actual pattern.
EXAMPLE A string:
"You are chased by @@query_the_name:/obj/monster#123@@ eastward."
is replaced by:
"You are chased by the orc eastward."
Assuming that query_the_name in monster#123 returns "the orc".