>>>I think you need to determine between operator and operand too. It is bad practice, but it will work to do something like
>>>
>>>EXECSCRIPT ='Mooh'
>>>?EXECSCRIPT+'!'
>>>
>>>This something different then
>>>
>>>EXECSCRIPT(somethingunwanted)
>>>
>>>
>>>This is only an example, it's clear that the twoliner will not work, but you have to consider this. Some functions are valid, others not, and not each in all circumstances.
>>>
>>>Report is even worst, since the datatype of a reportfield is something the user might change for good reason.
>>
>>Functions names are distinguished from variables names by the ( suffix. For hazard checking it would be enough, wouldn't it? For the rest, the VFP processor would complain during evaluation.
>
>One thing to be careful of is space(s) between a function name and the "(" e.g.
>
>?SQRT ( 2 )
>
That is the job of the lexer which should return in this case
?
SQRT
(
2
)
Gregory