1#![doc = include_str!("../README.md")]
2
3extern crate self as m2_syn;
4
5mod cst;
6#[macro_use]
7mod nodes;
8mod body;
9mod delimited;
10pub mod fold;
11pub mod lexer;
12pub mod native;
13pub mod parse;
14mod parsed_file;
15pub mod pretty;
16pub mod punct;
17mod span;
18mod token_stream;
19pub mod visit;
20pub mod visit_mut;
21
22pub mod treesitter;
23
24pub use treesitter::{ParseError, TreeSitterParser, parse_file, parse_tokens};
25
26pub use parse::{
27 FragmentParseError, Parse, ParseStream, Parser, TokenParseError, parse_fragment_str,
28 parse_with, parse1, reconstruct,
29};
30
31pub use body::{Body, Terminated};
32pub use cst::{
33 CSTNodeClassLabel, ChildCursor, ExternalCstChild, ExternalCstNode, Reconstruct,
34 ReconstructError, Token,
35};
36pub use delimited::Delimited;
37pub use lexer::{LexError, LexErrorKind, lex, lex_str};
38pub use m2_syn_macros::{Spanned, parse_quote_m2, quote_m2, syntax};
39pub use native::{NativeParseError, NativeParser, parse_native};
40pub use nodes::*;
41pub use parsed_file::ParsedFile;
42pub use pretty::{PrettyNode, PrettyOptions, PrettyReport, PrettyTree};
43pub use punct::Punctuated;
44pub use span::{MissingData, SourceId, Span, Spanned, TextPoint, TextRange};
45#[doc(hidden)]
46pub use token_stream::delim::parse_delimiter;
47pub use token_stream::delim::{Delimiter, DelimiterKind, DelimiterToken};
48pub use token_stream::{
49 CellBlock, CellStream, Group, IdentToken, Literal, LiteralKind, Punct, ToCells, ToTokens,
50 TokenStream, TokenTree, Trivia, TriviaKind,
51};