object ParseValue() { switch (lexer.LookAhead()) { case Lexer.Token.String: return(EvalLexer(lexer.ParseString())); case Lexer.Token.Number: if (parseNumbersAsFloat) { return(EvalLexer(lexer.ParseFloatNumber())); } else { return(EvalLexer(lexer.ParseDoubleNumber())); } case Lexer.Token.CurlyOpen: return(ParseObject()); case Lexer.Token.SquaredOpen: return(ParseArray()); case Lexer.Token.True: lexer.NextToken(); return(true); case Lexer.Token.False: lexer.NextToken(); return(false); case Lexer.Token.Null: lexer.NextToken(); return(null); case Lexer.Token.None: break; } TriggerError("Unable to parse value"); return(null); }