Tokenizing and parsing aren't really related. Tokenizing is just taking a string (or something similar) and figuring out what it is, like an operator, number, variable name, etc. Parsing is getting the computer to figure out what order those tokens should be used based off of your grammer.
You can either tokenize your entire string first or you can tokenize each token as your parser looks for the next token.
I've never personally created a top-down parser, but you can take a look at
LL parsers to see an example of a top-down parser algorithm.