rustpython-bytecode -> rustpython-compiler-core

This commit is contained in:
Jeong YunWon 2022-08-22 07:34:30 +09:00
parent acde8bb625
commit c16e650071
7 changed files with 18 additions and 16 deletions

1392
core/src/bytecode.rs Normal file

File diff suppressed because it is too large Load diff

8
core/src/lib.rs Normal file
View file

@ -0,0 +1,8 @@
#![doc(html_logo_url = "https://raw.githubusercontent.com/RustPython/RustPython/main/logo.png")]
#![doc(html_root_url = "https://docs.rs/rustpython-compiler-core/")]
pub mod bytecode;
mod mode;
pub use bytecode::*;
pub use mode::Mode;

32
core/src/mode.rs Normal file
View file

@ -0,0 +1,32 @@
#[derive(Clone, Copy)]
pub enum Mode {
Exec,
Eval,
Single,
BlockExpr,
}
impl std::str::FromStr for Mode {
type Err = ModeParseError;
// To support `builtins.compile()` `mode` argument
fn from_str(s: &str) -> Result<Self, ModeParseError> {
match s {
"exec" => Ok(Mode::Exec),
"eval" => Ok(Mode::Eval),
"single" => Ok(Mode::Single),
_ => Err(ModeParseError { _priv: () }),
}
}
}
#[derive(Debug)]
pub struct ModeParseError {
_priv: (),
}
impl std::fmt::Display for ModeParseError {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, r#"mode should be "exec", "eval", or "single""#)
}
}