                        RSL parser
                        -----------

Just to get a consistent nomenclature, take the grammar:
	( XXX = YYY )
       ^  ^  ^  ^  ^
       1  2  3  4  5

  1) open_paren
  2) left_op
  3) operator
  4) right_op
  5) close_paren

The big controversy has been how to deal with the right_op.  The solution we
have arrived on is as follows:

  1) If the right_op is strictly a set of these chars ([a-z][A-Z][0-9]_-./\:;),
     then no quoting is needed.
     For example: (foo=bar_123:987) -> right_op=bar_123:987

  2) If the first character of right_op (after whitespace is consumed) is a 
     " or ', then all characters up to but not including the next " or ' are
     copied literally into the string.  To put a " into the string you must
     use "" or ''.
     For example: (foo= "a b "" c" ) -> right_op=a b " c
     For example: (foo= 'a b '' c' ) -> right_op=a b ' c

  3) If the first character of a right_op is ^ (we can pick a different
symbol if somebody has a preference), then the character after the ^ is
designated the quoting character.
     For example: (foo=^$a b " c$) -> right_op=a b " c

  4) A list of right_op's will be concatinated together.
     For example: (args=foo bar) -> right_op=foobar
     For example: (args=foo " " bar) -> right_op=foo bar
     For example: (args=^$foo $ bar) -> right_op=foo bar

Note that whitespace can appear anywhere, except within the quoted context
(between the double quotes, or between the ^ and the selected terminator.

comments can be placed in the gram spec as well. 
     For exmaple: ( (*comment*) args (* comment *) = foo (*small one*) 
                                                     bar (*comment*))

BUILDING THE PARSER
-------------------
type "make" to build the parser that is used with gram.
The 2 files that need to then be copied to the above directory are:
	grami_rsl_parser.c
	grami_rsl_parser.lex.c
