Added initial lexical analyzer by michael