[Ifeffit] formula checking

Matt Newville newville at cars.uchicago.edu
Mon Nov 22 12:31:10 CST 2004

Hi Bruce,

Here's a proposed change for checking for syntax and other errors.  (This
would make v. 1.2.7. I might be willing to toss in a few more things too).

First, and mostly, add '&status' variable to hold status flags from
commands. The values of &status could be (open for suggestion):
     0.0  no error (see below)
     1.0  benign warnings (eg, 'unknown keyword' for commands)
     2.0  more serious warnings: syntax errors, evaluation errors 
         (divide-by-zero), or a command stopped prematurely for 
         some other reason (eg, "can't find an array for energy").
     3.0  severe warnings: hitting an internal program limit, 
          'file not found', and so on.
Those could be changed or expanded, to say, be along the lines of:
     1.1   'unknown keyword'
     1.2   'data out of order for spline/pre_edge....'
     1.3   fit couldn't determine error bars....
     2.0   syntax error during parsing
     2.1   evaluation error (eg, divide-by-zero)
     2.2   can't find enough arrays to process command

and so on.  That's mostly a matter of how detailed of the value
should be as opposed to parsing the strings that would be in the
echo buffer.  I'd imagine that more &status values would be better
than parsing the messages.

I would also propose that &status is _not_ automatically set to 0
prior to each command. This would mean that the user / script
writer would have to explicilty set &status = 0 as a way to 'clear
warning messages'.  That would lead to a wrapper around ifeffit
that does this (ignoring the saving,logging of the command):
   wrap_ifeffit(command_string) {
       set &status to 0
       execute command_string
       check &status
       react to &status (maybe look at echo buffer at this point)

on the whole, that first 'set &status to 0' doesn't seem so bad. The
important reason to _not_ automatically reset &status is so that 
warnings stick even when multiple commands and macros are run.

So, the main questions to you, Sam, and anyone else who's
interested in writing extended scripts / programs are:
   Is this an OK approah?
   How fine-grained should the values of &status be? 


More information about the Ifeffit mailing list