Ничего сложного — достаточно создать конечный автомат… на хабре, кстати, не так давно было несколько статей по теме (если не ошибаюсь касались создания компиляторов).
Для примера:
1) Существующий парсер
xbb.uz/
2) Собственный велосипед:
Код:http://pastebin.mozilla-russia.org/106940
Диаграмма:
habrastorage.org/storage/b55a4b42/f4942156/b245ccd6/9426eb87.png
(оригинал в VP-UML, если кому-то будет нужна — пишите)
Скорее всего есть ошибки (сейчас как раз отлаживаю).