Move Cursor and TokenBuffer into buffer module
diff --git a/src/attr.rs b/src/attr.rs
index 10868c2..aa578c2 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -324,7 +324,7 @@
#[cfg(feature = "parsing")]
pub mod parsing {
use super::*;
- use cursor::Cursor;
+ use buffer::Cursor;
use parse_error;
use synom::PResult;
use proc_macro2::{Literal, Spacing, Span, TokenNode, TokenTree};
diff --git a/src/cursor.rs b/src/buffer.rs
similarity index 96%
rename from src/cursor.rs
rename to src/buffer.rs
index ddedd46..05a2760 100644
--- a/src/cursor.rs
+++ b/src/buffer.rs
@@ -25,10 +25,10 @@
use std::fmt::{self, Debug};
/// Internal type which is used instead of `TokenTree` to represent a single
-/// `TokenTree` within a `SynomBuffer`.
+/// `TokenTree` within a `TokenBuffer`.
enum Entry {
/// Mimicing types from proc-macro.
- Group(Span, Delimiter, SynomBuffer),
+ Group(Span, Delimiter, TokenBuffer),
Term(Span, Term),
Op(Span, char, Spacing),
Literal(Span, Literal),
@@ -39,17 +39,17 @@
/// A buffer of data which contains a structured representation of the input
/// `TokenStream` object.
-pub struct SynomBuffer {
+pub struct TokenBuffer {
// NOTE: Do not derive clone on this - there are raw pointers inside which
- // will be messed up. Moving the `SynomBuffer` itself is safe as the actual
+ // will be messed up. Moving the `TokenBuffer` itself is safe as the actual
// backing slices won't be moved.
data: Box<[Entry]>,
}
-impl SynomBuffer {
+impl TokenBuffer {
// NOTE: DO NOT MUTATE THE `Vec` RETURNED FROM THIS FUNCTION ONCE IT
// RETURNS, THE ADDRESS OF ITS BACKING MEMORY MUST REMAIN STABLE.
- fn inner_new(stream: TokenStream, up: *const Entry) -> SynomBuffer {
+ fn inner_new(stream: TokenStream, up: *const Entry) -> TokenBuffer {
// Build up the entries list, recording the locations of any Groups
// in the list to be processed later.
let mut entries = Vec::new();
@@ -94,12 +94,12 @@
entries[idx] = Entry::Group(span, delim, inner);
}
- SynomBuffer { data: entries }
+ TokenBuffer { data: entries }
}
- /// Create a new SynomBuffer, which contains the data from the given
+ /// Create a new TokenBuffer, which contains the data from the given
/// TokenStream.
- pub fn new(stream: TokenStream) -> SynomBuffer {
+ pub fn new(stream: TokenStream) -> TokenBuffer {
Self::inner_new(stream, ptr::null())
}
@@ -113,7 +113,7 @@
/// into the immutable data which is used internally to represent a
/// `TokenStream`, and can be efficiently manipulated and copied around.
///
-/// An empty `Cursor` can be created directly, or one may create a `SynomBuffer`
+/// An empty `Cursor` can be created directly, or one may create a `TokenBuffer`
/// object and get a cursor to its first token with `begin()`.
///
/// Two cursors are equal if they have the same location in the same input
diff --git a/src/error.rs b/src/error.rs
index eddb33f..4241d1c 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -7,7 +7,7 @@
// except according to those terms.
use std::error::Error;
-use cursor::Cursor;
+use buffer::Cursor;
use std::fmt::{self, Display};
/// The result of a parser
diff --git a/src/expr.rs b/src/expr.rs
index 200a884..ee7aa19 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -804,7 +804,7 @@
#[cfg(feature = "full")]
use proc_macro2::TokenStream;
use synom::Synom;
- use cursor::Cursor;
+ use buffer::Cursor;
#[cfg(feature = "full")]
use parse_error;
use synom::PResult;
diff --git a/src/ident.rs b/src/ident.rs
index 2f4be82..af58263 100644
--- a/src/ident.rs
+++ b/src/ident.rs
@@ -231,7 +231,7 @@
pub mod parsing {
use super::*;
use synom::Synom;
- use cursor::Cursor;
+ use buffer::Cursor;
use parse_error;
use synom::PResult;
diff --git a/src/item.rs b/src/item.rs
index 67e3edd..360337d 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -552,7 +552,8 @@
pub mod parsing {
use super::*;
- use synom::{Cursor, PResult, Synom};
+ use buffer::Cursor;
+ use synom::{PResult, Synom};
impl_synom!(Item "item" alt!(
syn!(ItemExternCrate) => { Item::ExternCrate }
diff --git a/src/lib.rs b/src/lib.rs
index 386ba97..937953c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -377,7 +377,7 @@
pub use path::PathTokens;
#[cfg(feature = "parsing")]
-mod cursor;
+pub mod buffer;
#[cfg(feature = "parsing")]
pub mod synom;
pub mod punctuated;
@@ -408,7 +408,7 @@
#[cfg(feature = "parsing")]
use synom::Synom;
#[cfg(feature = "parsing")]
-use cursor::SynomBuffer;
+use buffer::TokenBuffer;
#[cfg(feature = "parsing")]
mod error;
@@ -471,7 +471,7 @@
where
T: Synom,
{
- let buf = SynomBuffer::new(tokens);
+ let buf = TokenBuffer::new(tokens);
let result = T::parse(buf.begin());
let err = match result {
Ok((t, rest)) => {
diff --git a/src/lifetime.rs b/src/lifetime.rs
index eadd273..e16b6b4 100644
--- a/src/lifetime.rs
+++ b/src/lifetime.rs
@@ -101,7 +101,7 @@
pub mod parsing {
use super::*;
use synom::Synom;
- use cursor::Cursor;
+ use buffer::Cursor;
use parse_error;
use synom::PResult;
diff --git a/src/lit.rs b/src/lit.rs
index 041661a..b1977cd 100644
--- a/src/lit.rs
+++ b/src/lit.rs
@@ -271,7 +271,7 @@
pub mod parsing {
use super::*;
use synom::Synom;
- use cursor::Cursor;
+ use buffer::Cursor;
use parse_error;
use synom::PResult;
diff --git a/src/parsers.rs b/src/parsers.rs
index a72aaa8..1059078 100644
--- a/src/parsers.rs
+++ b/src/parsers.rs
@@ -6,7 +6,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
-use cursor::Cursor;
+use buffer::Cursor;
use parse_error;
use synom::PResult;
@@ -63,13 +63,13 @@
#[macro_export]
macro_rules! named {
($name:ident -> $o:ty, $submac:ident!( $($args:tt)* )) => {
- fn $name(i: $crate::synom::Cursor) -> $crate::synom::PResult<$o> {
+ fn $name(i: $crate::buffer::Cursor) -> $crate::synom::PResult<$o> {
$submac!(i, $($args)*)
}
};
(pub $name:ident -> $o:ty, $submac:ident!( $($args:tt)* )) => {
- pub fn $name(i: $crate::synom::Cursor) -> $crate::synom::PResult<$o> {
+ pub fn $name(i: $crate::buffer::Cursor) -> $crate::synom::PResult<$o> {
$submac!(i, $($args)*)
}
};
@@ -77,13 +77,13 @@
// These two variants are for defining named parsers which have custom
// arguments, and are called with `call!()`
($name:ident($($params:tt)*) -> $o:ty, $submac:ident!( $($args:tt)* )) => {
- fn $name(i: $crate::synom::Cursor, $($params)*) -> $crate::synom::PResult<$o> {
+ fn $name(i: $crate::buffer::Cursor, $($params)*) -> $crate::synom::PResult<$o> {
$submac!(i, $($args)*)
}
};
(pub $name:ident($($params:tt)*) -> $o:ty, $submac:ident!( $($args:tt)* )) => {
- pub fn $name(i: $crate::synom::Cursor, $($params)*) -> $crate::synom::PResult<$o> {
+ pub fn $name(i: $crate::buffer::Cursor, $($params)*) -> $crate::synom::PResult<$o> {
$submac!(i, $($args)*)
}
};
diff --git a/src/punctuated.rs b/src/punctuated.rs
index 4369724..e9eeb12 100644
--- a/src/punctuated.rs
+++ b/src/punctuated.rs
@@ -323,7 +323,7 @@
mod parsing {
use super::Punctuated;
use synom::Synom;
- use cursor::Cursor;
+ use buffer::Cursor;
use parse_error;
use synom::PResult;
diff --git a/src/synom.rs b/src/synom.rs
index de16e29..b2469ed 100644
--- a/src/synom.rs
+++ b/src/synom.rs
@@ -31,10 +31,10 @@
use proc_macro2::TokenStream;
-pub use cursor::*;
-
pub use error::{PResult, ParseError};
+use buffer::Cursor;
+
pub trait Synom: Sized {
fn parse(input: Cursor) -> PResult<Self>;
diff --git a/src/token.rs b/src/token.rs
index 53ed6fb..c52a546 100644
--- a/src/token.rs
+++ b/src/token.rs
@@ -79,7 +79,7 @@
#[cfg(feature = "parsing")]
impl ::Synom for $name {
- fn parse(tokens: $crate::synom::Cursor) -> $crate::synom::PResult<$name> {
+ fn parse(tokens: $crate::buffer::Cursor) -> $crate::synom::PResult<$name> {
parsing::punct($s, tokens, $name)
}
@@ -130,7 +130,7 @@
#[cfg(feature = "parsing")]
impl ::Synom for $name {
- fn parse(tokens: $crate::synom::Cursor) -> $crate::synom::PResult<$name> {
+ fn parse(tokens: $crate::buffer::Cursor) -> $crate::synom::PResult<$name> {
parsing::keyword($s, tokens, $name)
}
}
@@ -179,8 +179,8 @@
}
#[cfg(feature = "parsing")]
- pub fn parse<F, R>(tokens: $crate::synom::Cursor, f: F) -> $crate::synom::PResult<($name, R)>
- where F: FnOnce($crate::synom::Cursor) -> $crate::synom::PResult<R>
+ pub fn parse<F, R>(tokens: $crate::buffer::Cursor, f: F) -> $crate::synom::PResult<($name, R)>
+ where F: FnOnce($crate::buffer::Cursor) -> $crate::synom::PResult<R>
{
parsing::delim($s, tokens, $name, f)
}
@@ -482,7 +482,7 @@
mod parsing {
use proc_macro2::{Delimiter, Spacing, Span};
- use cursor::Cursor;
+ use buffer::Cursor;
use parse_error;
use synom::PResult;
diff --git a/src/tt.rs b/src/tt.rs
index 043b22f..11c3e3c 100644
--- a/src/tt.rs
+++ b/src/tt.rs
@@ -7,7 +7,7 @@
// except according to those terms.
use proc_macro2::{Delimiter, TokenNode, TokenStream, TokenTree};
-use cursor::Cursor;
+use buffer::Cursor;
use parse_error;
use synom::PResult;
use MacroDelimiter;