summaryrefslogtreecommitdiff
path: root/src/parse/mod.rs
diff options
context:
space:
mode:
authorMartin Haug <mhaug@live.de>2021-11-07 19:43:01 +0100
committerMartin Haug <mhaug@live.de>2021-11-07 19:43:01 +0100
commit0663758fbb42651a08bfcd46c27b5cdeab90fb75 (patch)
treed2c80591ba4bd233bc01181884f51fafc98b836e /src/parse/mod.rs
parenteba7fc34effbec3bcc6d5c40d831b1e15af77c4d (diff)
Tests
- length updates - dealing with keywords and comments
Diffstat (limited to 'src/parse/mod.rs')
-rw-r--r--src/parse/mod.rs19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/parse/mod.rs b/src/parse/mod.rs
index 5d845a55..02777350 100644
--- a/src/parse/mod.rs
+++ b/src/parse/mod.rs
@@ -17,7 +17,7 @@ use crate::syntax::{ErrorPos, Green, GreenNode, NodeKind};
/// Parse a source file.
pub fn parse(src: &str) -> Rc<GreenNode> {
- let mut p = Parser::new(src);
+ let mut p = Parser::new(src, TokenMode::Markup);
markup(&mut p);
match p.finish().into_iter().next() {
Some(Green::Node(node)) => node,
@@ -26,23 +26,23 @@ pub fn parse(src: &str) -> Rc<GreenNode> {
}
/// Parse an atomic primary. Returns `Some` if all of the input was consumed.
-pub fn parse_atomic(source: &str, _: bool) -> Option<Vec<Green>> {
- let mut p = Parser::new(source);
+pub fn parse_atomic(src: &str, _: bool) -> Option<Vec<Green>> {
+ let mut p = Parser::new(src, TokenMode::Code);
primary(&mut p, true).ok()?;
p.eject()
}
/// Parse some markup. Returns `Some` if all of the input was consumed.
-pub fn parse_markup(source: &str, _: bool) -> Option<Vec<Green>> {
- let mut p = Parser::new(source);
+pub fn parse_markup(src: &str, _: bool) -> Option<Vec<Green>> {
+ let mut p = Parser::new(src, TokenMode::Markup);
markup(&mut p);
p.eject()
}
/// Parse some markup without the topmost node. Returns `Some` if all of the
/// input was consumed.
-pub fn parse_markup_elements(source: &str, mut at_start: bool) -> Option<Vec<Green>> {
- let mut p = Parser::new(source);
+pub fn parse_markup_elements(src: &str, mut at_start: bool) -> Option<Vec<Green>> {
+ let mut p = Parser::new(src, TokenMode::Markup);
while !p.eof() {
markup_node(&mut p, &mut at_start);
}
@@ -50,9 +50,8 @@ pub fn parse_markup_elements(source: &str, mut at_start: bool) -> Option<Vec<Gre
}
/// Parse some code. Returns `Some` if all of the input was consumed.
-pub fn parse_code(source: &str, _: bool) -> Option<Vec<Green>> {
- let mut p = Parser::new(source);
- p.set_mode(TokenMode::Code);
+pub fn parse_code(src: &str, _: bool) -> Option<Vec<Green>> {
+ let mut p = Parser::new(src, TokenMode::Code);
expr_list(&mut p);
p.eject()
}