INTERFACETemplate ; IMPORT Wr, Thread, EventFile; PROCEDURE Generate (READONLY evt: EventFile.T; algorithm, view: TEXT; template: TEXT; wr: Wr.T) RAISES {Wr.Failure, Thread.Alerted};
Macro expandtemplateusing values fromevt, leaving the results onwr.
END Template.
These are the symbols recognized by during macro expansion:
#{ start repeated block of all events;
must be alone at head of line
#{_OUTPUT start repeated block of output events only
#{_UPDATE start repeated block of update events only
#{_FEEDBACK start repeated block of feedback events only
#} end repeated block; must be alone at head of line
#| introduces between-args material; must be alone
at head of line and inside a per-arg block
#(_ALGNAME_) algorithm name
#(_VIEWNAME_) view name (for -Obliq or -Obliq3D)
$ import from template follows; must fill the line
#(_IMPORTS_) imports from event file & template go here
#(_ALGDATA_) data fields for algorithm object
#(_EVENT_) name of event
#(_EVENTSTYLE_) "OutputEvent", "FeedbackEvent", or "UpdateEvent"
#(_EVENTPRIO_) Integer priority, in 0..9
#(_ARGSTR_) unprocessed arg string, with no trailing semis
#(_NONULL_ARGSTR_) ... w/ a dummy integer declaration if null
#(_SEMI_ARGSTR_) ... w/ leading semi if non-null
#(_ARGSTR_SEMI_) ... w/ trailing semi if non-null
#(_ARGTYPES_) types of args, no names
#(_COMMA_ARGTYPES_) ... w/ leading comma
#(_SPACED_ARGTYPES_) types of args, with spaces, not commas, between
#(_ARGNAMES_) names of args, no types, as for a call
#(_COMMA_ARGNAMES_) ... w/ leading comma
#(_ARGMODE_) single argument mode (VALUE=>"")
#(_ARGNAME_) single argument name
#(_ARGTYPE_) single argument type
#(_ARGFMT_) a function that gives a printable text when
applied to the argument