* SNOBOL PROGRAM-2B: * Fall 2002 * Parser for simple arithmetic expressions &anchor = 1 &fullscan = 1 &trim = 1 op = any("+*-/") var = any("ABCDEFG") factor = var | "(" *exp ")" exp = factor | factor op *exp LOOP inp = input :f(END) inp exp rpos(0) :s(YES) output = inp "::: NOT AN EXPRESSION." :(LOOP) YES output = inp "::: IS AN EXPRESSION." :(LOOP) END D-((A+B-C*D/E)/F) (A) (((((A+B*C*D-E))))) ((A-B-C*(D+E)))) (A*B+C()) (((A+B)*(C-D+E)))