Here are some *negative* examples (i.e., bad inputs, invalid expressions) for the expression parsing lab. Note that there is still some grey area here, e.g., what about variable names (lowercase) that butt up against a keyword (uppercase)? But this should give you an idea of what I'll be looking for in demos. In the listing below, expressions appear on the left of every other line, and a "comment" on the right indicates why the expression is invalid (really, why the string is not an expression!). Of course, your program need only *reject* invalid expressions, not give a rationale or explanation. Also note that you of course don't need to handle comments in expressions, that's just part of the format of this file. // the empty expression is *not* valid (3 // imbalanced parentheses are not valid ( ) + 2 // parens must surround something x+2* // too many operators x + 3 * y 4 // too few operators IFF x>3 THEN ... // mis-spelled keyword IF X<7 THEN ... // variables should be lowercase IF x == yTHEN ... // I dunno, whatever your program does is OK // (see "grey area" remark above) IF p THEN 3 END // no ELSE to IF-THEN-ELSE-END (sim. for THEN, END) x * ++ y // no *prefix* ops in our language (Java & C have them) 10 - (x+2)++ // no postfix ops on non-variables