build: update deps

This commit is contained in:
Shunsuke Shibayama 2023-05-28 23:55:20 +09:00
parent 6840c206db
commit 93ad80d203
4 changed files with 38 additions and 14 deletions

16
Cargo.lock generated
View File

@ -252,9 +252,9 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
[[package]] [[package]]
name = "els" name = "els"
version = "0.1.25" version = "0.1.26-nightly.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9dcd32d4edf0238db4d013f535f48c18140576e2ec442b2450f76af4d0390c19" checksum = "9cf50f787a8376384af8e7b074c489329669eeb1264f15f1a7f136102a003f2f"
dependencies = [ dependencies = [
"erg_common", "erg_common",
"erg_compiler", "erg_compiler",
@ -274,9 +274,9 @@ dependencies = [
[[package]] [[package]]
name = "erg_common" name = "erg_common"
version = "0.6.13" version = "0.6.14-nightly.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4b35305d26ff0fe55ec69aba95d85829371254698e2e5c8394beee1e1ee582c" checksum = "c0d10554accd6de5e3f41e3db5931348320c89b9745a82635887f850dd77aadb"
dependencies = [ dependencies = [
"backtrace-on-stack-overflow", "backtrace-on-stack-overflow",
"hermit-abi", "hermit-abi",
@ -286,9 +286,9 @@ dependencies = [
[[package]] [[package]]
name = "erg_compiler" name = "erg_compiler"
version = "0.6.13" version = "0.6.14-nightly.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57f5eaab1acfa0a27815bbc284bbb16189aae4d45757308986f836aa23e435c5" checksum = "3570aa70c9f488516c6286280ae4d3343aed382b6c7881b784195af64350aa50"
dependencies = [ dependencies = [
"erg_common", "erg_common",
"erg_parser", "erg_parser",
@ -296,9 +296,9 @@ dependencies = [
[[package]] [[package]]
name = "erg_parser" name = "erg_parser"
version = "0.6.13" version = "0.6.14-nightly.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a56d54cbba3a394d9f0b16f85f835b040b454c4ba6b6530a67c3caff522c29d4" checksum = "bfd44c03719e8051c7997263298e2b792da6138f818646d0eeae359f92bf0c60"
dependencies = [ dependencies = [
"erg_common", "erg_common",
"unicode-xid 0.2.4", "unicode-xid 0.2.4",

View File

@ -22,9 +22,9 @@ edition = "2021"
repository = "https://github.com/mtshiba/pylyzer" repository = "https://github.com/mtshiba/pylyzer"
[workspace.dependencies] [workspace.dependencies]
erg_common = { version = "0.6.13", features = ["py_compat", "els"] } erg_common = { version = "0.6.14-nightly.0", features = ["py_compat", "els"] }
erg_compiler = { version = "0.6.13", features = ["py_compat", "els"] } erg_compiler = { version = "0.6.14-nightly.0", features = ["py_compat", "els"] }
els = { version = "0.1.25", features = ["py_compat"] } els = { version = "0.1.26-nightly.0", features = ["py_compat"] }
rustpython-parser = "0.1.2" rustpython-parser = "0.1.2"
# erg_compiler = { git = "https://github.com/erg-lang/erg", branch = "main", features = ["py_compat", "els"] } # erg_compiler = { git = "https://github.com/erg-lang/erg", branch = "main", features = ["py_compat", "els"] }
# erg_common = { git = "https://github.com/erg-lang/erg", branch = "main", features = ["py_compat", "els"] } # erg_common = { git = "https://github.com/erg-lang/erg", branch = "main", features = ["py_compat", "els"] }

View File

@ -7,7 +7,9 @@ use erg_common::Str;
use erg_compiler::artifact::{BuildRunnable, Buildable, CompleteArtifact, IncompleteArtifact}; use erg_compiler::artifact::{BuildRunnable, Buildable, CompleteArtifact, IncompleteArtifact};
use erg_compiler::context::register::CheckStatus; use erg_compiler::context::register::CheckStatus;
use erg_compiler::context::ModuleContext; use erg_compiler::context::ModuleContext;
use erg_compiler::erg_parser::ast::AST; use erg_compiler::erg_parser::ast::{AST, Module};
use erg_compiler::erg_parser::error::ParseErrors;
use erg_compiler::erg_parser::parse::Parsable;
use erg_compiler::error::{CompileError, CompileErrors}; use erg_compiler::error::{CompileError, CompileErrors};
use erg_compiler::lower::ASTLowerer; use erg_compiler::lower::ASTLowerer;
use erg_compiler::module::SharedCompilerResource; use erg_compiler::module::SharedCompilerResource;
@ -16,6 +18,28 @@ use rustpython_parser::parser;
use crate::handle_err; use crate::handle_err;
pub struct SimplePythonParser {}
impl Parsable for SimplePythonParser {
fn parse(code: String) -> Result<Module, ParseErrors> {
let py_program = parser::parse_program(&code).map_err(|_err| {
ParseErrors::empty()
})?;
let shadowing = if cfg!(feature = "debug") {
ShadowingMode::Visible
} else {
ShadowingMode::Invisible
};
let converter = py2erg::ASTConverter::new(ErgConfig::default(), shadowing);
let IncompleteArtifact{ object: Some(erg_module), errors, .. } = converter.convert_program(py_program) else { unreachable!() };
if errors.is_empty() {
Ok(erg_module)
} else {
Err(ParseErrors::empty())
}
}
}
#[derive(Debug, Default)] #[derive(Debug, Default)]
pub struct PythonAnalyzer { pub struct PythonAnalyzer {
pub cfg: ErgConfig, pub cfg: ErgConfig,

View File

@ -2,7 +2,7 @@ mod analyze;
mod config; mod config;
mod handle_err; mod handle_err;
use analyze::PythonAnalyzer; use analyze::{PythonAnalyzer, SimplePythonParser};
use els::Server; use els::Server;
use erg_common::config::ErgMode; use erg_common::config::ErgMode;
use erg_common::spawn::exec_new_thread; use erg_common::spawn::exec_new_thread;
@ -10,7 +10,7 @@ use erg_common::spawn::exec_new_thread;
fn run() { fn run() {
let cfg = config::parse_args(); let cfg = config::parse_args();
if cfg.mode == ErgMode::LanguageServer { if cfg.mode == ErgMode::LanguageServer {
let mut lang_server = Server::<PythonAnalyzer>::new(cfg); let mut lang_server = Server::<PythonAnalyzer, SimplePythonParser>::new(cfg);
lang_server.run().unwrap_or_else(|_| { lang_server.run().unwrap_or_else(|_| {
std::process::exit(1); std::process::exit(1);
}); });