Add scanner, parser and related types. Parser almost complete.