From b47029fdbb7e84d282f264f05161625768707f1e Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 2 Sep 2023 18:46:45 -0400 Subject: [PATCH] Starting to separate the context and parsed tokens into their own modules. --- src/{parser => context}/exiting.rs | 0 src/{parser => context}/list.rs | 0 src/context/mod.rs | 11 +++++++++++ src/{parser => context}/parser_context.rs | 0 src/{parser => context}/parser_with_context.rs | 0 src/lib.rs | 2 ++ src/parser/mod.rs | 10 ---------- src/types/mod.rs | 0 8 files changed, 13 insertions(+), 10 deletions(-) rename src/{parser => context}/exiting.rs (100%) rename src/{parser => context}/list.rs (100%) create mode 100644 src/context/mod.rs rename src/{parser => context}/parser_context.rs (100%) rename src/{parser => context}/parser_with_context.rs (100%) create mode 100644 src/types/mod.rs diff --git a/src/parser/exiting.rs b/src/context/exiting.rs similarity index 100% rename from src/parser/exiting.rs rename to src/context/exiting.rs diff --git a/src/parser/list.rs b/src/context/list.rs similarity index 100% rename from src/parser/list.rs rename to src/context/list.rs diff --git a/src/context/mod.rs b/src/context/mod.rs new file mode 100644 index 00000000..3f33a26c --- /dev/null +++ b/src/context/mod.rs @@ -0,0 +1,11 @@ +mod exiting; +mod list; +mod parser_context; +mod parser_with_context; + +type RefContext<'r, 's> = &'r Context<'r, 's>; +trait ContextMatcher = + for<'r, 's> Fn(RefContext<'r, 's>, OrgSource<'s>) -> Res, OrgSource<'s>>; +type DynContextMatcher<'c> = dyn ContextMatcher + 'c; +trait Matcher = for<'s> Fn(OrgSource<'s>) -> Res, OrgSource<'s>>; +type DynMatcher<'c> = dyn Matcher + 'c; diff --git a/src/parser/parser_context.rs b/src/context/parser_context.rs similarity index 100% rename from src/parser/parser_context.rs rename to src/context/parser_context.rs diff --git a/src/parser/parser_with_context.rs b/src/context/parser_with_context.rs similarity index 100% rename from src/parser/parser_with_context.rs rename to src/context/parser_with_context.rs diff --git a/src/lib.rs b/src/lib.rs index 70249dd2..4c2021c3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -15,5 +15,7 @@ pub use compare::get_emacs_version; #[cfg(feature = "compare")] pub use compare::get_org_mode_version; +mod context; mod error; pub mod parser; +mod types; diff --git a/src/parser/mod.rs b/src/parser/mod.rs index abd42ab0..68444772 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -26,14 +26,11 @@ mod latex_fragment; mod lesser_block; mod lesser_element; mod line_break; -mod list; mod object; mod object_parser; mod org_macro; mod org_source; mod paragraph; -mod parser_context; -mod parser_with_context; mod plain_link; mod plain_list; mod plain_text; @@ -114,10 +111,3 @@ pub use source::Source; use self::org_source::OrgSource; use self::parser_context::Context; use crate::error::Res; - -type RefContext<'r, 's> = &'r Context<'r, 's>; -trait ContextMatcher = - for<'r, 's> Fn(RefContext<'r, 's>, OrgSource<'s>) -> Res, OrgSource<'s>>; -type DynContextMatcher<'c> = dyn ContextMatcher + 'c; -trait Matcher = for<'s> Fn(OrgSource<'s>) -> Res, OrgSource<'s>>; -type DynMatcher<'c> = dyn Matcher + 'c; diff --git a/src/types/mod.rs b/src/types/mod.rs new file mode 100644 index 00000000..e69de29b