There is no restriction on the kinds of expression you can quote, except that you need to be careful about variable scoping.
If you use local variables in a quoted expression you can only
Eval it within the same procedure (so the variables are in scope).
However, if you use only global variables you can
Eval it in any procedure.
Therefore, if you are going to pass a quoted expression to a procedure and do something with it, you should use only global variables.
A word of warning:
Eval does not check to see if the address it's been given is really the address of an expression.
You can therefore get in a real mess if you pass it, say, the address of a variable using
You need to check all uses of things like
Eval yourself, because the E compiler lets you write things like
Eval(x+9), where you probably meant to write
That's because you might want the address you pass to
Eval to be the result of complicated expressions.
So you may have meant to pass
x+9 as the parameter!
Go to the Next or Previous section, the Detailed Contents, or the Amiga E Encyclopedia.