flexar

An extremely flexible lexer/parser (get it?) for writing your own programming language