update lexer to modern type system
parse protocols
parse specifications
collect names from specifications