<!ELEMENT EVAL - O EMPTY -- Text To be Evaluated by Program --> <!ATTLIST EVAL program CDATA #REQUIRED -- program to run on server -- doinsert CDATA #IMPLIED -- boolean value 0 or 1 name CDATA #IMPLIED -- matching result field has same name preload CDATA #IMPLIED -- url to fetch and send to program once preeval CDATA #IMPLIED -- code to eval once in program >For example to include code to integrate.
<eval program=maxima>integrate(1/x^2,x)</eval>We need to provide a place to put the result (unless doinsert=0
<!ELEMENT RESULT - O EMPTY -- Place to put RESULT of an EVAL --> <!ATTLIST modified (modified) #IMPLIED -- is the result valid or modified name CDATA #IMPLIED -- result comes from previous eval with same name >For example
<eval program=maxima>integrate(1/x^2,x)</eval> produces <result modified>Result</result>
When one clicked on the text of the eval, ie on integrate..
then the result would appear in the next result box.
<eval program=maxima preload=foo.mc>f(x)</eval>would cause the program foo.mc to be fetched as a URL, and then preappended to the first form sent to maxima. This will only happen once for any given life cycle of maxima. The same thing may be done but from data provided in the url itself.
<eval program=maxima preeval=x:27;>f(x)</eval>would maxima set x to 27 calling f(x). Note that the preeval or preload code is simply preappended to the command, so if a ';' or newline is required at the end of the form, one must be supplied.
An eval without a doinsert=0, needs a place to put a result. The result field must come before the next eval field, unless the eval is named in which case the result field will be the next result field on the page with the same name. In this latter case, there may be evals intervening.
This makes it possible for the result of one eval, to occur as part of the argument of another eval:
<eval name=int program=maxima>integrate(1/x^2,x)<eval> feeds into <eval program=maxima>diff(<result name=int>res</result>,x)</eval> produces <result>1/x^2</result>
Note that in fact for maxima one would have to use
In order to influence the colors of the background of results and
of eval text, and to indicate if they are modified or not,
extra body attributes are provided.
<!ELEMENT BODY - O EMPTY -- change defaults for BODY of page --> <!ATTLIST BODY bgresult % color # IMPLIED -- for background of result result % color # IMPLIED -- for result foreground bgresult % color # IMPLIED -- for background of result result % color # IMPLIED -- for result foreground resultmodified % color # IMPLIED -- for modified result foreground bgresultmodified % color # IMPLIED -- for modified result background aeval % color IMPLIED -- for active eval bgeval % color IMPLIED -- for eval background evalrelief (sunken | flat | raised) -- relief of eval resultrelief (sunken | flat | raised) -- relief of result of eval resultmodifiedrelief (sunken | flat | raised) -- relief of result of eval baseprogram % URL such as nmtp://genie1.ma.utexas.edu indicating where to run programs. >A sample call would be
<body eval=blue bgresultmodified=red aeval=red>