pull/232/head
kud1ing 8 years ago
parent 98d01abf50
commit b9996a01cd

@ -9,15 +9,15 @@ use std::path::Path;
/// The content of the README.md file.
#[derive(Debug)]
struct ReadmeContent<'a> {
struct ReadmeFileContent<'a> {
/// The header Markdown events.
header: Vec<Event<'a>>,
}
impl<'a> ReadmeContent<'a> {
fn new() -> ReadmeContent<'a> {
ReadmeContent {
impl<'a> ReadmeFileContent<'a> {
fn new() -> ReadmeFileContent<'a> {
ReadmeFileContent {
header: Vec::new()
}
}
@ -26,7 +26,7 @@ impl<'a> ReadmeContent<'a> {
/// The state of the README.md file high-level parser.
#[derive(Debug, PartialEq)]
enum ReadmeParsingState {
enum ReadmeFileParsingState {
Header,
TableOfContent,
Content,
@ -35,7 +35,7 @@ enum ReadmeParsingState {
}
fn parse_header(parser: &mut Parser, content: &mut ReadmeContent) -> ReadmeParsingState {
fn parse_header(parser: &mut Parser, content: &mut ReadmeFileContent) -> ReadmeFileParsingState {
// TODO
println!("TODO: `parse_header()`");
@ -52,31 +52,31 @@ fn parse_header(parser: &mut Parser, content: &mut ReadmeContent) -> ReadmeParsi
}
*/
ReadmeParsingState::TableOfContent
ReadmeFileParsingState::TableOfContent
}
fn parse_toc(parser: &mut Parser, content: &mut ReadmeContent) -> ReadmeParsingState {
fn parse_toc(parser: &mut Parser, content: &mut ReadmeFileContent) -> ReadmeFileParsingState {
// TODO
println!("TODO: `parse_toc()`");
ReadmeParsingState::Content
ReadmeFileParsingState::Content
}
fn parse_content(parser: &mut Parser, content: &mut ReadmeContent) -> ReadmeParsingState {
fn parse_content(parser: &mut Parser, content: &mut ReadmeFileContent) -> ReadmeFileParsingState {
// TODO
println!("TODO: `parse_content()`");
ReadmeParsingState::Footer
ReadmeFileParsingState::Footer
}
fn parse_footer(parser: &mut Parser, content: &mut ReadmeContent) -> ReadmeParsingState {
fn parse_footer(parser: &mut Parser, content: &mut ReadmeFileContent) -> ReadmeFileParsingState {
// TODO
println!("TODO: `parse_footer()`");
ReadmeParsingState::Finished
ReadmeFileParsingState::Finished
}
@ -98,19 +98,19 @@ fn main() {
panic!("couldn't read {}: {}", display, why.description());
}
// Parser for the Markdownstring.
// Create a parser for the Markdown string.
let mut parser = Parser::new(&markdown_string);
let mut content = ReadmeContent::new();
let mut state = ReadmeParsingState::Header;
let mut readme_file_content = ReadmeFileContent::new();
let mut readme_file_parsing_state = ReadmeFileParsingState::Header;
while state != ReadmeParsingState::Finished {
match state {
ReadmeParsingState::Header => state = parse_header(&mut parser, &mut content),
ReadmeParsingState::TableOfContent => state = parse_toc(&mut parser, &mut content),
ReadmeParsingState::Content => state = parse_content(&mut parser, &mut content),
ReadmeParsingState::Footer => state = parse_footer(&mut parser, &mut content),
ReadmeParsingState::Finished => state = ReadmeParsingState::Finished,
while readme_file_parsing_state != ReadmeFileParsingState::Finished {
readme_file_parsing_state = match readme_file_parsing_state {
ReadmeFileParsingState::Header => parse_header(&mut parser, &mut readme_file_content),
ReadmeFileParsingState::TableOfContent => parse_toc(&mut parser, &mut readme_file_content),
ReadmeFileParsingState::Content => parse_content(&mut parser, &mut readme_file_content),
ReadmeFileParsingState::Footer => parse_footer(&mut parser, &mut readme_file_content),
ReadmeFileParsingState::Finished => ReadmeFileParsingState::Finished,
}
}
}

Loading…
Cancel
Save