todo: detect typedefs so that declarations can be distinquished from expressions that begin with an identifier.