mod utils;
use utils::{Lexer, Parser};
pub use utils::{JSONValue, OrderedMap, Serialize};
pub use utils::{JSONSchema, Validator, StringType, NumberType, BooleanType, ArrayType, ObjectType, NullType};
pub struct JSONParser<'a> {
pub parser: Parser<'a>,
}
impl<'a> JSONParser<'a> {
pub fn new(input: &'a str) -> Self {
let lexer = Lexer::new(input);
let parser = Parser::new(lexer);
Self { parser }
}
pub fn parse(&mut self) -> Result<JSONValue, String> {
self.parser.parse()
}
pub fn from(input: &'a str) -> Result<JSONValue, String>{
let mut parser = JSONParser::new(input);
parser.parse()
}
}