working lex/yacc parser