This one is because the parser for the most part ignores punctuation; when it passes strings around it lumps them as part of a nearby word. The first gives zero because there are no "words" to lump it with. From mystic@shadowlandz.esva.net Tue Nov 12 22:26:29 1996 Subject: about the parser.... To: tim (Tim) Date: Tue, 12 Nov 1996 22:31:08 -0500 (EST) have another question about the parser.. was wondering why for: parse_add_rule( "foo", "STR" ) .. > foo ? do_foo_str( str ), str = 0 but, > foo ? bar do_foo_str( str ), str = "? bar" would be nice, for "STR" rules, if the ? (in this example) were sent as the parameter when by itself as well.. also, just curious about what your thoughts were on the parse_sentence and parse_my_rules returning the value that the do_ callbacks do.. if you've had any time/chance to think about it.. mark