Okay, enough with the scanner, onto the parser