Это не зависит от вашего языка программирования (python), если ваш парсер будет иметь один, два, три или n проходов. Это зависит от грамматики синтаксиса, который вы пытаетесь проанализировать.
Если синтаксис достаточно сложный, я бы порекомендовал комбо LEX / YACC, как сказал Фрэнсис.