From 29644a30d7a270d9c306b9111b24fd3ee7ff087d Mon Sep 17 00:00:00 2001 From: Jeong Yunwon Date: Mon, 2 May 2022 04:11:59 +0900 Subject: [PATCH] Add compile::Mode::BlockExpr --- porcelain/src/lib.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/porcelain/src/lib.rs b/porcelain/src/lib.rs index 8308cae..e593188 100644 --- a/porcelain/src/lib.rs +++ b/porcelain/src/lib.rs @@ -76,12 +76,12 @@ pub fn compile( source_path: String, opts: CompileOpts, ) -> Result { - let mode = match mode { + let parser_mode = match mode { compile::Mode::Exec => parser::Mode::Module, compile::Mode::Eval => parser::Mode::Expression, - compile::Mode::Single => parser::Mode::Interactive, + compile::Mode::Single | compile::Mode::BlockExpr => parser::Mode::Interactive, }; - let mut ast = match parser::parse(source, mode) { + let mut ast = match parser::parse(source, parser_mode) { Ok(x) => x, Err(e) => return Err(CompileError::from_parse(e, source, source_path)), }; @@ -90,7 +90,8 @@ pub fn compile( .fold_mod(ast) .unwrap_or_else(|e| match e {}); } - compile::compile_top(&ast, source_path, opts).map_err(|e| CompileError::from_compile(e, source)) + compile::compile_top(&ast, source_path, mode, opts) + .map_err(|e| CompileError::from_compile(e, source)) } pub fn compile_symtable( @@ -107,7 +108,7 @@ pub fn compile_symtable( }; } let res = match mode { - compile::Mode::Exec | compile::Mode::Single => { + compile::Mode::Exec | compile::Mode::Single | compile::Mode::BlockExpr => { let ast = try_parse!(parser::parse_program(source)); symboltable::make_symbol_table(&ast) }