Hi all, I've got another problem and I'm hoping someone can point me in the right direction.
My grammar is for a "language" that includes an "if" type command. The "if" command takes an expression, and two other commands. Depending on the values of the expression, ONE of the commands is supposed to be executed. However, what I'm seeing is that BOTH commands are being evaluated, but the results of only one of the commands is being used. Here is a snippet of the grammar: =================================================================== if: "[#if(" boolean_expression "," command "," command ")]" { if ($item[2] eq "true") { $return = $item[4]; } else { $return = $item[6]; } } command: variable | include | word | quoted_string { $return = $item[1]; } include: "[#include(" file_path ")]" { $return = main::parse_page($item[2]); } ... =================================================================== So, in the case where we have a true expression, both commands are being evaluated, but only the results of one of the commands is returned. The problem is that, as in the case of an "include" command, the commands might have side-affects. I'm sure this is a common design pattern. Perhaps there is an "easy" way to deal with this? -- Take care and have fun, Mike Diehl.