#![warn(future_incompatible, rust_2018_idioms, unused)]
pub mod ast;
pub mod error;
pub mod token;
mod cursor;
mod lexer;
mod parser;
mod span;
mod visitor;
mod printer;
mod symbol;
pub use crate::cursor::InputCursor;
pub use crate::lexer::{LexerErrorKind, LexerError, Lexer};
pub use crate::parser::{ParseError, Parser};
pub use crate::span::{HasSpan, Span, Position};
pub use crate::visitor::{AstDescend, VisitorMut};
pub fn parse(buf: &str) -> Result<crate::ast::Block<'_>, ParseError<'_>> {
Parser::new(Lexer::new(InputCursor::new(buf))).chunk()
}