Skip to content

Commit 1e5897f

Browse files
committed
Finished refactoring text streaming abstraction
1 parent 718d553 commit 1e5897f

File tree

7 files changed

+20
-20
lines changed

7 files changed

+20
-20
lines changed

src/components/build_pp_ast/src/lexer/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ mod state;
55
use self::{lex_line::lex_line, state::State};
66
use super::{error::PreprocessorErrorKind, line_splice::LineSplicer};
77
use infinite_iterator::InfiniteIterator;
8-
use text::{Text, TextPeeker};
8+
use text::{CharacterPeeker, Text};
99

1010
// Lexer for C preprocessor
1111
pub struct Lexer<I: Text> {
@@ -37,7 +37,7 @@ where
3737
loop {
3838
match self.line_splicer.next_line() {
3939
Ok(line) => {
40-
let mut line = TextPeeker::new(line);
40+
let mut line = CharacterPeeker::new(line);
4141

4242
if line.peek().is_present() {
4343
let start_of_line = line.peek().source();

src/components/build_workspace/src/compile/module.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use infinite_iterator::{InfiniteIteratorPeeker, InfinitePeekable};
1212
use line_column::Location;
1313
use source_files::{Source, SourceFileKey};
1414
use std::path::Path;
15-
use text::{TextPeeker, TextStreamer};
15+
use text::{CharacterInfiniteIterator, CharacterPeeker};
1616
use token::{Token, TokenKind};
1717

1818
pub struct CompiledModule<'a, I: InfinitePeekable<Token> + 'a> {
@@ -34,7 +34,7 @@ pub fn compile_module_file<'a>(
3434
let key = source_files.add(path.to_path_buf(), content);
3535
let content = source_files.get(key).content();
3636

37-
let text = TextPeeker::new(TextStreamer::new(content.chars(), key));
37+
let text = CharacterPeeker::new(CharacterInfiniteIterator::new(content.chars(), key));
3838
let lexer = InfiniteIteratorPeeker::new(Lexer::new(text));
3939
let mut input = Input::new(lexer, compiler.source_files, key);
4040
input.ignore_newlines();

src/components/build_workspace/src/compile/normal.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use data_units::ByteUnits;
1010
use diagnostics::{ErrorDiagnostic, Show, into_show};
1111
use fs_tree::FsNodeId;
1212
use infinite_iterator::InfiniteIteratorPeeker;
13-
use text::{TextPeeker, TextStreamer};
13+
use text::{CharacterInfiniteIterator, CharacterPeeker};
1414

1515
pub fn compile_normal_file(
1616
compiler: &Compiler,
@@ -26,7 +26,7 @@ pub fn compile_normal_file(
2626
let source_files = &compiler.source_files;
2727
let key = source_files.add(path.clone(), content);
2828
let content = source_files.get(key).content();
29-
let text = TextPeeker::new(TextStreamer::new(content.chars(), key));
29+
let text = CharacterPeeker::new(CharacterInfiniteIterator::new(content.chars(), key));
3030

3131
match &normal_file.kind {
3232
NormalFileKind::Adept => {

src/components/cli/src/build/invoke.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use compiler::Compiler;
66
use diagnostics::{DiagnosticFlags, Diagnostics, unerror};
77
use source_files::SourceFiles;
88
use std::{fs::metadata, path::Path};
9-
use text::{TextPeeker, TextStreamer};
9+
use text::{CharacterInfiniteIterator, CharacterPeeker};
1010

1111
impl Invoke for BuildCommand {
1212
fn invoke(self) -> Result<(), ()> {
@@ -52,7 +52,7 @@ fn compile_header(compiler: &Compiler, filepath: &Path) -> Result<(), ()> {
5252

5353
let header_key = source_files.add(filepath.into(), content);
5454

55-
let header_contents = TextPeeker::new(TextStreamer::new(
55+
let header_contents = CharacterPeeker::new(CharacterInfiniteIterator::new(
5656
source_files.get(header_key).content().chars(),
5757
header_key,
5858
));

src/support/text/src/text_streamer.rs src/support/text/src/character_infinite_iterator.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ use infinite_iterator::InfiniteIterator;
33
use line_column::{LineColumn, Location};
44
use source_files::{Source, SourceFileKey};
55

6-
pub struct TextStreamer<I: Iterator<Item = char>> {
6+
pub struct CharacterInfiniteIterator<I: Iterator<Item = char>> {
77
iterator: LineColumn<I>,
88
file_key: SourceFileKey,
99
last_location: Location,
1010
}
1111

12-
impl<I> TextStreamer<I>
12+
impl<I> CharacterInfiniteIterator<I>
1313
where
1414
I: Iterator<Item = char>,
1515
{
@@ -22,7 +22,7 @@ where
2222
}
2323
}
2424

25-
impl<I> InfiniteIterator for TextStreamer<I>
25+
impl<I> InfiniteIterator for CharacterInfiniteIterator<I>
2626
where
2727
I: Iterator<Item = char>,
2828
{
@@ -48,4 +48,4 @@ where
4848
}
4949
}
5050

51-
unsafe impl<I> Send for TextStreamer<I> where I: Iterator<Item = char> + Send {}
51+
unsafe impl<I> Send for CharacterInfiniteIterator<I> where I: Iterator<Item = char> + Send {}

src/support/text/src/peeker.rs src/support/text/src/character_peeker.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ use infinite_iterator::InfiniteIterator;
33
use source_files::Source;
44
use std::collections::VecDeque;
55

6-
pub struct TextPeeker<I>
6+
pub struct CharacterPeeker<I>
77
where
88
I: InfiniteIterator<Item = Character>,
99
{
1010
stream: I,
1111
queue: VecDeque<(char, Source)>,
1212
}
1313

14-
impl<I> TextPeeker<I>
14+
impl<I> CharacterPeeker<I>
1515
where
1616
I: InfiniteIterator<Item = Character>,
1717
{
@@ -23,7 +23,7 @@ where
2323
}
2424
}
2525

26-
impl<I> InfiniteIterator for TextPeeker<I>
26+
impl<I> InfiniteIterator for CharacterPeeker<I>
2727
where
2828
I: InfiniteIterator<Item = Character>,
2929
{
@@ -37,7 +37,7 @@ where
3737
}
3838
}
3939

40-
impl<I> Text for TextPeeker<I>
40+
impl<I> Text for CharacterPeeker<I>
4141
where
4242
I: InfiniteIterator<Item = Character>,
4343
{

src/support/text/src/lib.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
mod character;
2+
mod character_infinite_iterator;
3+
mod character_peeker;
24
mod eatable;
3-
mod peeker;
4-
mod text_streamer;
55

66
pub use character::{Character, is_c_non_digit};
7+
pub use character_infinite_iterator::CharacterInfiniteIterator;
8+
pub use character_peeker::CharacterPeeker;
79
pub use eatable::Eatable;
810
use infinite_iterator::InfiniteIterator;
9-
pub use peeker::TextPeeker;
1011
use source_files::Source;
11-
pub use text_streamer::TextStreamer;
1212

1313
pub trait Text: InfiniteIterator<Item = Character> {
1414
fn peek_nth(&mut self, n: usize) -> Character;

0 commit comments

Comments
 (0)