Lexing/parsing is one of the easiest parts of writing a compiler these days. With a parser generator, it shouldn't take you more than a couple days to write the lexer and parser for a moderately-complex language.
I second the comments up-thread about error-reporting being the hardest part of a real compiler.
I second the comments up-thread about error-reporting being the hardest part of a real compiler.