diff options
author | Lars Wirzenius <liw@liw.fi> | 2020-02-15 10:40:55 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2020-02-15 10:40:55 +0000 |
commit | f997af392d33f557d779af8b71fc782c2f105b23 (patch) | |
tree | fa86fc7f920f991de5d9cf7698ca20790aef8ae5 /src/ast.rs | |
parent | 62df0717e7087a051ec697b59b21feefaa27ece7 (diff) | |
parent | 3383d2689be3ddbe4ff7609d0f5e655f4d82745b (diff) | |
download | subplot-f997af392d33f557d779af8b71fc782c2f105b23.tar.gz |
Merge branch 'liw/andbut' into 'master'
Add: add support for "and" and "but" keywords
See merge request larswirzenius/subplot!3
Diffstat (limited to 'src/ast.rs')
-rw-r--r-- | src/ast.rs | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -164,6 +164,7 @@ fn extract_scenario(e: &[Element]) -> Result<(Option<Scenario>, usize)> { Element::Snippet(_) => Err(Error::scenario_before_heading()), Element::Heading(title, level) => { let mut scen = Scenario::new(&title); + let mut prevkind = StepKind::Given; for (i, item) in e.iter().enumerate().skip(1) { match item { Element::Heading(_, level2) => { @@ -181,8 +182,9 @@ fn extract_scenario(e: &[Element]) -> Result<(Option<Scenario>, usize)> { } Element::Snippet(text) => { for line in parse_scenario_snippet(&text) { - let step = ScenarioStep::new_from_str(line)?; + let step = ScenarioStep::new_from_str(line, prevkind)?; scen.add(&step); + prevkind = step.kind(); } } } @@ -532,7 +534,7 @@ pub fn scenario_snippet(bindings: &Bindings, snippet: &str) -> Block { // Typeset a single scenario step as a sequence of Pandoc AST Inlines. fn step(bindings: &Bindings, text: &str) -> Vec<Inline> { - let step = ScenarioStep::new_from_str(text); + let step = ScenarioStep::new_from_str(text, StepKind::Given); if step.is_err() { eprintln!("Could not parse step: {}", text); return error_msg(&format!("Could not parse step: {}", text)); |