funky implementation but a working bif parser that doesn't generate code (well it uses exec but...)