dict = SYSDICT | USERDICT; hdict = dict (HYPHEN dict)*; target = [LPUNC] (hdict | WEB | NUMBER) [TPUNC]; target = PUNC; target = ONECHAR; = target; 6 rules 3 nonterminals 24 nodes in parse tree. 14 positions 9 alphabets 6 states in initial DFA 6 states in minimal DFA 6 states state 0 valid=0 cTrans=7 {FACTOID_SYSDICT, 1}, {FACTOID_USERDICT, 1}, {FACTOID_WEB, 2}, {FACTOID_NUMBER, 2}, {FACTOID_LPUNC, 3}, {FACTOID_PUNC, 4}, {FACTOID_ONECHAR, 4} state 1 valid=1 cTrans=2 {FACTOID_TPUNC, 4}, {FACTOID_HYPHEN, 5} state 2 valid=1 cTrans=1 {FACTOID_TPUNC, 4} state 3 valid=0 cTrans=4 {FACTOID_SYSDICT, 1}, {FACTOID_USERDICT, 1}, {FACTOID_WEB, 2}, {FACTOID_NUMBER, 2} state 4 valid=1 cTrans=0 state 5 valid=0 cTrans=2 {FACTOID_SYSDICT, 1}, {FACTOID_USERDICT, 1}