Converter Program Documentation File:

How to use it:
  The convert program reads from standard input and writes to standard output
with warning messages on standard error.  Thus, to have it convert pre-existing
files, merely use the unix redirection of i/o facilities.
  EX: convert < foo.soar > foo.soar6
This will read the file foo.soar and write to the file foo.soar6.  All warning
messages will appear on the screen.

List of Warning messages, and what they mean:
- Error: bad integer (probabaly too large) -
    The function strtol applied to the current lexeme read produced and error.
- Error: bad floating point number -
    The parser could not parse the expected floating point number.
- A '\' was followed by something other than another '\'
    The parser only expects a '\' in the form of the symbol "\\" which was
    used to express mod.
- Opening '|' without closing '|' -
    And end of file, or a lexeme that was too long was read while reading a
    vertically barred symbolic constant.
- Opening '"' without closing '"' -
    And end of file, or a lexeme that was too long was read while reading a
    quoted string symbolic constant such as a documentation string.
- Error: '#' not followed by '|' -
    Only a | can follow #.
- Error: '#|' without terminating '|#' -
    The EOF was reached without finding the proper closing token.
- Expected variable or constant for test -
    A symbol or constant is missing from the relational test currently being
    parsed.
- Expected << to begin disjunction test -
    The disjunction test needs to being with <<
- Expected constant or >> while reading disjunction test -
    An improper lexeme appeared in the middle of a disjunction test
- Expected ( to begin condition element -
    A condition did not contain a ( as it's first character
- Found a non-constant in the class field of a condition.
  Classes are not used in Soar6.  You must hand-convert this. -
    The converter tries to eat all the names of classes other than goal or
    impasse.  This error is most likly to arise if you try to convert a file
    that has already been converted.
- Expected ^ after identifier -
    Did not find an ^ after an identifier while looking for the attribute in
    a condition
- Expected } to end conjunctive condition -
    No closing brace for a conjunctive condition found.
- Tabto function not implemented in Soar6 -
    The tabto function has been removed, and cannot be auto-converted.  The
    production containing it needs to be rewritten.
- Call2's must be hand-converted to Soar6 -
    There is a new way of specifying user defined RHS functions in Soar6.
    This production will need to be hand converted.
- Expected ) to end computed expression -
    There was a missing ) at the end of an expression.
- Bad expression syntax-
    Some less specifically identifiable error was encountered when parsing an
    expression.  Expressions must start with an int constant, a float constant,
    a variable, or a left paren.
- Unknown RHS function name -
    See remarks for Call2 error.  The functions needs to be hand converted.
- Illegal value for RHS value -
    An error occured when reading an RHS value.
- Expected ^ in RHS make action before an attribute.
    An ^ is missing inside a make action.
- Expected variable or symbolic constant for attribute -
    A lexeme other than a variable or symbolic constant was found in the 
    attribute field of an RHS make action.
- Write1+ is not implemented in Soar6.  You must hand-convert it. -
    The write1+ function has been removed, and cannot be auto-converted.  The
    production containing it needs to be rewritten.
- Write2+ is not implemented in Soar6.  you must hand-convert it. -
    The write2+ function has been removed, and cannot be auto-converted.  The
    production containing it needs to be rewritten.
- Tabstop is not implemented in Soar6. -
    The tabstop function has been removed, and cannot be auto-converted.  The
    production containing it needs to be rewritten.
- Bind is not implemented in Soar6. -
    The bind function has been removed, and cannot be auto-converted.  The
    production containing it needs to be rewritten.
- Expected ( to begin RHS action -
    An action on the RHS of a production must begin with a (
- Unable to convert to Soar6, because there is a
  variable in the class field of a preference make -
    Because Soar6 is classless, it expects constants in the class field so
    that it can eat them.
- Expected a constant (symbol) for the class field of this preference make -
    A non symbol that wasn't a variable was encountered in the class field
    of a preference make.
- There must be a variable in the id field of this preference make -
    Id fields of preference makes are expected to be a variable.
- Expected symbol for production name -
    Something other than a symbolic constant was encountered where the parser
    expected a production name.
- Previous support declaration isn't for this production -
    A support declaration that was expected to be for this production isn't.
- Expected --> in production -
    End of production encountered without finding a transition to RHS.
- Expected ) to end production -
    A production contained extraneous garbage or EOF after the RHS.
- Illegal value to setf -
    The only setf commands that will convert are *chunk-free-problem-spaces*
    and *watch-free-problem-spaces*.
- Illegal value to setq -
    The only setq commands that will convert are *chunk-free-problem-spaces*
    and *watch-free-problem-spaces*.
- Bogus setf command, expecting apostrophe -
    An apostrophe is expected to begin the list of problems spaces for
    *watch-free-problem-spaces* and *chunk-free-problem-spaces*.
- Bogus setq command, expecting apostrophe -
    An apostrophe is expected to begin the list of problems spaces for
    *watch-free-problem-spaces* and *chunk-free-problem-spaces*.
- Bogus setf command, expecting left paren -
    A left paren is expected to follow the apostrophe in 
    *watch-free-problem-spaces* and *chunk-free-problem-spaces*.
- Bogus setf command, expecting left paren -
    A left paren is expected to follow the apostrophe in 
    *watch-free-problem-spaces* and *chunk-free-problem-spaces*.
- Expected ( to begin command -
    All soar5 commands began with (.  This restriction has been lifted in
    Soar6.
- Support declarations must immediately precede the
  corresponding productions.  You have two in a row here. -
    Two op-apps or op-no-apps commands found in a row.
- Expected ) to end op-apps command -
    Missing ) at the end of an op-apps command.
- Unable to convert multi-attributes, commenting out -
    Explicit declaration of multi-attributes is no longer needed.
- Unable to convert trace-attributes, commenting out -
    A new format for trace-attributes is being set out. The old form cannot
    be converted over.
- Unable to convert defun declarations, commenting out -
    Since Soar6 is written in C, defun commands will not work.
- Unable to convert defvar declarations, commenting out -
    Since Soar6 is written in C, defvar commands will not work.
- Unable to convert this command -
    A command that the converter does not recognize was encountered at the top
    level.

All warning messages will put a comment in the file where it encountered the
error as well as printing the error to the screen.  Most of the errors will
also print the location of the error to the screen if possible.



