[feature] lexer and reader