TOKENS Symbols Array notation [ ] Object notation { } : Separator , String " \ (for escape sequences) Numerical - . eE (exponents only) + (exponents only) Keywords true false null Key strings only Implement stack data structure for pushing and pulling states when necessary LEXER STATES START ERROR END VALUE OBJECT_KEY --------- OBJECT | ARRAY | PRIMITIVES |------> Can be values STRING--------|------> Only one that can be an object key NUMBER | ---------