initial commit of parser

this is definitely missing a lot of things, but it works for a fair
amount of code