(
source_file: SourceFile,
mode: Mode,
opts: CompileOpts,
)
| 283 | } |
| 284 | |
| 285 | fn _compile( |
| 286 | source_file: SourceFile, |
| 287 | mode: Mode, |
| 288 | opts: CompileOpts, |
| 289 | ) -> Result<CodeObject, CompileError> { |
| 290 | let parser_mode = match mode { |
| 291 | Mode::Exec => parser::Mode::Module, |
| 292 | Mode::Eval => parser::Mode::Expression, |
| 293 | // ruff does not have an interactive mode, which is fine, |
| 294 | // since these are only different in terms of compilation |
| 295 | Mode::Single | Mode::BlockExpr => parser::Mode::Module, |
| 296 | }; |
| 297 | let parsed = parser::parse(source_file.source_text(), parser_mode.into()) |
| 298 | .map_err(|err| CompileError::from_ruff_parse_error(err, &source_file))?; |
| 299 | let ast = parsed.into_syntax(); |
| 300 | compile::compile_top(ast, source_file, mode, opts).map_err(|e| e.into()) |
| 301 | } |
| 302 | |
| 303 | pub fn compile_symtable( |
| 304 | source: &str, |
no test coverage detected