Fixed T-Dark blocks in blocks
This commit is contained in:
parent
183f26f415
commit
007917a217
|
@ -37,12 +37,7 @@ impl<'source> Parser<'source> {
|
|||
Token::Comment => continue,
|
||||
|
||||
// T-Dark block (replace `lang` with `script`)
|
||||
Token::TDark => {
|
||||
self.tdark = true;
|
||||
let mut block = self.get_block()?;
|
||||
ast.append(&mut block.block);
|
||||
self.tdark = false;
|
||||
}
|
||||
Token::TDark => ast.extend(self.tdark_flow()?.block),
|
||||
token => ast.push(self.parse(token)?),
|
||||
}
|
||||
}
|
||||
|
@ -329,12 +324,21 @@ impl<'source> Parser<'source> {
|
|||
loop {
|
||||
match self.checked_next()? {
|
||||
Token::RightCurly => break,
|
||||
Token::TDark => block.extend(self.tdark_flow()?.block),
|
||||
t => block.push(self.parse(t)?),
|
||||
}
|
||||
}
|
||||
Ok(Block { block })
|
||||
}
|
||||
|
||||
/// Parse T-Dark block
|
||||
fn tdark_flow(&mut self) -> Result<Block, Error> {
|
||||
self.tdark = true;
|
||||
let block = self.get_block();
|
||||
self.tdark = false;
|
||||
block
|
||||
}
|
||||
|
||||
/// If Statement parser gets any kind of value (Identifier or Literal)
|
||||
/// It cannot parse it as it do not parse expressions. Instead of it it
|
||||
/// will parse it to function call or print statement.
|
||||
|
|
Loading…
Reference in a new issue