diff --git a/Cargo.toml b/Cargo.toml index 9d0678ac..4c734f4f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,22 +9,22 @@ edition = "2021" [features] # when "debug" feature is turned on, that of the following crates will also be turned on. debug = [ - "common/debug", - "parser/debug", - "compiler/debug", - #"vm/debug" + "erg_common/debug", + "erg_parser/debug", + "erg_compiler/debug", + #"erg_vm/debug" ] japanese = [ - "common/japanese", - "parser/japanese", - "compiler/japanese", - #"vm/japanese" + "erg_common/japanese", + "erg_parser/japanese", + "erg_compiler/japanese", + #"erg_vm/japanese" ] [dependencies] -common = { path = "./src/common" } -parser = { path = "./src/compiler/parser" } -compiler = { path = "./src/compiler" } +erg_common = { path = "./src/erg_common" } +erg_parser = { path = "./src/erg_compiler/erg_parser" } +erg_compiler = { path = "./src/erg_compiler" } # vm = { path = "./src/vm" } # [workspace] diff --git a/src/dummy.rs b/src/dummy.rs index 4e144603..4f36e7c7 100644 --- a/src/dummy.rs +++ b/src/dummy.rs @@ -1,10 +1,10 @@ -use common::config::{ErgConfig, Input, SEMVER, BUILD_INFO}; -use common::python_util::eval_pyc; -use common::str::Str; -use common::traits::Runnable; +use erg_common::config::{ErgConfig, Input, SEMVER, BUILD_INFO}; +use erg_common::python_util::eval_pyc; +use erg_common::str::Str; +use erg_common::traits::Runnable; -use compiler::Compiler; -use compiler::error::{CompileError, CompileErrors}; +use erg_compiler::Compiler; +use erg_compiler::error::{CompileError, CompileErrors}; #[derive(Debug)] pub struct DummyVM { diff --git a/src/common/Cargo.toml b/src/erg_common/Cargo.toml similarity index 94% rename from src/common/Cargo.toml rename to src/erg_common/Cargo.toml index 06f92203..d04d5122 100644 --- a/src/common/Cargo.toml +++ b/src/erg_common/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "common" +name = "erg_common" version = "0.1.0" description = "A common components library of Erg" authors = ["Shunsuke Shibayama "] diff --git a/src/common/build.rs b/src/erg_common/build.rs similarity index 100% rename from src/common/build.rs rename to src/erg_common/build.rs diff --git a/src/common/cache.rs b/src/erg_common/cache.rs similarity index 100% rename from src/common/cache.rs rename to src/erg_common/cache.rs diff --git a/src/common/codeobj.rs b/src/erg_common/codeobj.rs similarity index 100% rename from src/common/codeobj.rs rename to src/erg_common/codeobj.rs diff --git a/src/common/color.rs b/src/erg_common/color.rs similarity index 100% rename from src/common/color.rs rename to src/erg_common/color.rs diff --git a/src/common/combinations.rs b/src/erg_common/combinations.rs similarity index 100% rename from src/common/combinations.rs rename to src/erg_common/combinations.rs diff --git a/src/common/config.rs b/src/erg_common/config.rs similarity index 100% rename from src/common/config.rs rename to src/erg_common/config.rs diff --git a/src/common/datetime.rs b/src/erg_common/datetime.rs similarity index 100% rename from src/common/datetime.rs rename to src/erg_common/datetime.rs diff --git a/src/common/deserialize.rs b/src/erg_common/deserialize.rs similarity index 100% rename from src/common/deserialize.rs rename to src/erg_common/deserialize.rs diff --git a/src/common/dict.rs b/src/erg_common/dict.rs similarity index 100% rename from src/common/dict.rs rename to src/erg_common/dict.rs diff --git a/src/common/error.rs b/src/erg_common/error.rs similarity index 100% rename from src/common/error.rs rename to src/erg_common/error.rs diff --git a/src/common/fxhash.rs b/src/erg_common/fxhash.rs similarity index 100% rename from src/common/fxhash.rs rename to src/erg_common/fxhash.rs diff --git a/src/common/lazy.rs b/src/erg_common/lazy.rs similarity index 100% rename from src/common/lazy.rs rename to src/erg_common/lazy.rs diff --git a/src/common/lazy_buffer.rs b/src/erg_common/lazy_buffer.rs similarity index 100% rename from src/common/lazy_buffer.rs rename to src/erg_common/lazy_buffer.rs diff --git a/src/common/levenshtein.rs b/src/erg_common/levenshtein.rs similarity index 100% rename from src/common/levenshtein.rs rename to src/erg_common/levenshtein.rs diff --git a/src/common/lib.rs b/src/erg_common/lib.rs similarity index 100% rename from src/common/lib.rs rename to src/erg_common/lib.rs diff --git a/src/common/macros.rs b/src/erg_common/macros.rs similarity index 95% rename from src/common/macros.rs rename to src/erg_common/macros.rs index d94cedb1..84a3d14b 100644 --- a/src/common/macros.rs +++ b/src/erg_common/macros.rs @@ -70,14 +70,14 @@ macro_rules! switch_lang { #[macro_export] macro_rules! enum_unwrap { ($ex: expr, $Enum: path $(,)*) => {{ - if let $Enum(res) = $ex { res } else { common::switch_unreachable!() } + if let $Enum(res) = $ex { res } else { erg_common::switch_unreachable!() } }}; ($ex: expr, $Enum: path :( $Cons: path :(_) ) $(,)*) => {{ - if let $Enum($Cons(res)) = $ex { res } else { common::switch_unreachable!() } + if let $Enum($Cons(res)) = $ex { res } else { erg_common::switch_unreachable!() } }}; // X::A{a, b} ($ex: expr, $Enum: path {$($fields: ident $(,)*)*}) => {{ - if let $Enum{$($fields,)*} = $ex { ($($fields,)*) } else { common::switch_unreachable!() } + if let $Enum{$($fields,)*} = $ex { ($($fields,)*) } else { erg_common::switch_unreachable!() } }}; } @@ -187,10 +187,10 @@ macro_rules! power_assert { #[macro_export] macro_rules! debug_power_assert { ($l: expr, $op: tt, $r: expr) => { - if cfg!(debug_assertions) { common::power_assert!($l, $op, $r) } + if cfg!(debug_assertions) { erg_common::power_assert!($l, $op, $r) } }; ($ex: expr) => { - if cfg!(debug_assertions) { common::power_assert!($ex) } + if cfg!(debug_assertions) { erg_common::power_assert!($ex) } }; } diff --git a/src/common/opcode.rs b/src/erg_common/opcode.rs similarity index 100% rename from src/common/opcode.rs rename to src/erg_common/opcode.rs diff --git a/src/common/python_util.rs b/src/erg_common/python_util.rs similarity index 100% rename from src/common/python_util.rs rename to src/erg_common/python_util.rs diff --git a/src/common/rccell.rs b/src/erg_common/rccell.rs similarity index 100% rename from src/common/rccell.rs rename to src/erg_common/rccell.rs diff --git a/src/common/serialize.rs b/src/erg_common/serialize.rs similarity index 100% rename from src/common/serialize.rs rename to src/erg_common/serialize.rs diff --git a/src/common/set.rs b/src/erg_common/set.rs similarity index 100% rename from src/common/set.rs rename to src/erg_common/set.rs diff --git a/src/common/stdin.rs b/src/erg_common/stdin.rs similarity index 100% rename from src/common/stdin.rs rename to src/erg_common/stdin.rs diff --git a/src/common/str.rs b/src/erg_common/str.rs similarity index 100% rename from src/common/str.rs rename to src/erg_common/str.rs diff --git a/src/common/traits.rs b/src/erg_common/traits.rs similarity index 94% rename from src/common/traits.rs rename to src/erg_common/traits.rs index d798536f..0df0ba25 100644 --- a/src/common/traits.rs +++ b/src/erg_common/traits.rs @@ -100,7 +100,7 @@ macro_rules! impl_displayable_stream_for_wrapper { impl std::fmt::Display for $Strc { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> fmt::Result { - write!(f, "[{}]", common::fmt_iter(self.iter()).replace("\n", "\\n")) + write!(f, "[{}]", erg_common::fmt_iter(self.iter()).replace("\n", "\\n")) } } @@ -111,10 +111,10 @@ macro_rules! impl_displayable_stream_for_wrapper { impl std::ops::Index for $Strc { type Output = $Inner; - fn index(&self, idx: usize) -> &Self::Output { common::traits::Stream::get(self, idx).unwrap() } + fn index(&self, idx: usize) -> &Self::Output { erg_common::traits::Stream::get(self, idx).unwrap() } } - impl common::traits::Stream<$Inner> for $Strc { + impl erg_common::traits::Stream<$Inner> for $Strc { #[inline] fn payload(self) -> Vec<$Inner> { self.0 } #[inline] @@ -142,10 +142,10 @@ macro_rules! impl_stream_for_wrapper { impl std::ops::Index for $Strc { type Output = $Inner; - fn index(&self, idx: usize) -> &Self::Output { common::traits::Stream::get(self, idx).unwrap() } + fn index(&self, idx: usize) -> &Self::Output { erg_common::traits::Stream::get(self, idx).unwrap() } } - impl common::traits::Stream<$Inner> for $Strc { + impl erg_common::traits::Stream<$Inner> for $Strc { #[inline] fn payload(self) -> Vec<$Inner> { self.0 } #[inline] @@ -159,7 +159,7 @@ macro_rules! impl_stream_for_wrapper { #[macro_export] macro_rules! impl_stream { ($Strc: ident, $Inner: ident, $field: ident) => { - impl common::traits::Stream<$Inner> for $Strc { + impl erg_common::traits::Stream<$Inner> for $Strc { #[inline] fn payload(self) -> Vec<$Inner> { self.$field } #[inline] @@ -170,7 +170,7 @@ macro_rules! impl_stream { impl std::ops::Index for $Strc { type Output = $Inner; - fn index(&self, idx: usize) -> &Self::Output { common::traits::Stream::get(self, idx).unwrap() } + fn index(&self, idx: usize) -> &Self::Output { erg_common::traits::Stream::get(self, idx).unwrap() } } } } @@ -320,8 +320,8 @@ pub trait Locational { #[macro_export] macro_rules! impl_locational_for_enum { ($Enum: ident; $($Variant: ident $(,)?)*) => { - impl common::traits::Locational for $Enum { - fn loc(&self) -> common::error::Location { + impl erg_common::traits::Locational for $Enum { + fn loc(&self) -> erg_common::error::Location { match self { $($Enum::$Variant(v) => v.loc(),)* } @@ -396,7 +396,7 @@ pub trait HasType { #[macro_export] macro_rules! impl_t { ($T: ty, $t: ident) => { - impl common::traits::HasType for $T { + impl erg_common::traits::HasType for $T { #[inline] fn ref_t(&self) -> &common::ty::Type { &common::ty::Type::$t } } diff --git a/src/common/tsort.rs b/src/erg_common/tsort.rs similarity index 100% rename from src/common/tsort.rs rename to src/erg_common/tsort.rs diff --git a/src/common/ty.rs b/src/erg_common/ty.rs similarity index 100% rename from src/common/ty.rs rename to src/erg_common/ty.rs diff --git a/src/common/value.rs b/src/erg_common/value.rs similarity index 100% rename from src/common/value.rs rename to src/erg_common/value.rs diff --git a/src/compiler/.gitignore b/src/erg_compiler/.gitignore similarity index 100% rename from src/compiler/.gitignore rename to src/erg_compiler/.gitignore diff --git a/src/compiler/Cargo.toml b/src/erg_compiler/Cargo.toml similarity index 61% rename from src/compiler/Cargo.toml rename to src/erg_compiler/Cargo.toml index ccd2a498..0ce09a4e 100644 --- a/src/compiler/Cargo.toml +++ b/src/erg_compiler/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "compiler" +name = "erg_compiler" version = "0.1.0" description = "Centimetre: the Erg compiler" authors = ["Shunsuke Shibayama "] @@ -8,12 +8,12 @@ edition = "2021" [features] # when "debug" feature is turned on, that of parser will also be turned on. -debug = [ "common/debug", "parser/debug" ] -japanese = [ "common/japanese", "parser/japanese" ] +debug = [ "erg_common/debug", "erg_parser/debug" ] +japanese = [ "erg_common/japanese", "erg_parser/japanese" ] [dependencies] -common = { path = "../common" } -parser = { path = "parser" } +erg_common = { path = "../erg_common" } +erg_parser = { path = "erg_parser" } [lib] path = "lib.rs" diff --git a/src/compiler/README.md b/src/erg_compiler/README.md similarity index 100% rename from src/compiler/README.md rename to src/erg_compiler/README.md diff --git a/src/compiler/codegen.rs b/src/erg_compiler/codegen.rs similarity index 98% rename from src/compiler/codegen.rs rename to src/erg_compiler/codegen.rs index 9a9e6a14..41f3e84a 100644 --- a/src/compiler/codegen.rs +++ b/src/erg_compiler/codegen.rs @@ -4,21 +4,21 @@ use std::fmt; use std::process; -use common::Str; -use common::cache::Cache; -use common::{fn_name_full, enum_unwrap, switch_unreachable, debug_power_assert, log, impl_stream_for_wrapper}; -use common::codeobj::{CodeObj, CodeObjFlags}; -use common::color::{GREEN, RESET}; -use common::config::{ErgConfig, Input}; -use common::error::{Location, MultiErrorDisplay}; -use common::value::ValueObj; -use common::opcode::Opcode; +use erg_common::Str; +use erg_common::cache::Cache; +use erg_common::{fn_name_full, enum_unwrap, switch_unreachable, debug_power_assert, log, impl_stream_for_wrapper}; +use erg_common::codeobj::{CodeObj, CodeObjFlags}; +use erg_common::color::{GREEN, RESET}; +use erg_common::config::{ErgConfig, Input}; +use erg_common::error::{Location, MultiErrorDisplay}; +use erg_common::value::ValueObj; +use erg_common::opcode::Opcode; use Opcode::*; -use common::traits::{HasType, Locational, Stream}; -use common::ty::{TypeCode, TypePair}; +use erg_common::traits::{HasType, Locational, Stream}; +use erg_common::ty::{TypeCode, TypePair}; -use parser::token::{Token, TokenKind, TokenCategory}; -use parser::ast::{VarPattern, ParamPattern, Params}; +use erg_parser::token::{Token, TokenKind, TokenCategory}; +use erg_parser::ast::{VarPattern, ParamPattern, Params}; use crate::compile::{AccessKind, Name, StoreLoadKind}; use crate::error::{CompileError, CompileErrors, CompileResult}; diff --git a/src/compiler/compile.rs b/src/erg_compiler/compile.rs similarity index 93% rename from src/compiler/compile.rs rename to src/erg_compiler/compile.rs index 30498d1e..ea5f34ea 100644 --- a/src/compiler/compile.rs +++ b/src/erg_compiler/compile.rs @@ -3,15 +3,15 @@ //! コンパイラーを定義する use std::path::Path; -use common::Str; -use common::{log}; -use common::codeobj::{CodeObj, CodeObjFlags}; -use common::color::{GREEN, RESET}; -use common::config::{Input, ErgConfig, SEMVER, BUILD_INFO}; -use common::error::MultiErrorDisplay; -use common::traits::{Runnable, Stream}; +use erg_common::Str; +use erg_common::{log}; +use erg_common::codeobj::{CodeObj, CodeObjFlags}; +use erg_common::color::{GREEN, RESET}; +use erg_common::config::{Input, ErgConfig, SEMVER, BUILD_INFO}; +use erg_common::error::MultiErrorDisplay; +use erg_common::traits::{Runnable, Stream}; -use parser::ParserRunner; +use erg_parser::ParserRunner; use crate::codegen::CodeGenerator; use crate::effectcheck::SideEffectChecker; diff --git a/src/compiler/effectcheck.rs b/src/erg_compiler/effectcheck.rs similarity index 98% rename from src/compiler/effectcheck.rs rename to src/erg_compiler/effectcheck.rs index ed68dac7..bd68dca3 100644 --- a/src/compiler/effectcheck.rs +++ b/src/erg_compiler/effectcheck.rs @@ -2,10 +2,10 @@ //! SideEffectCheckerを実装 //! 関数や不変型に副作用がないかチェックする -use common::Str; -use common::color::{GREEN, RESET}; -use common::log; -use common::traits::Stream; +use erg_common::Str; +use erg_common::color::{GREEN, RESET}; +use erg_common::log; +use erg_common::traits::Stream; use crate::varinfo::Visibility; use Visibility::*; diff --git a/src/compiler/parser/.gitignore b/src/erg_compiler/erg_parser/.gitignore similarity index 100% rename from src/compiler/parser/.gitignore rename to src/erg_compiler/erg_parser/.gitignore diff --git a/src/compiler/parser/Cargo.toml b/src/erg_compiler/erg_parser/Cargo.toml similarity index 64% rename from src/compiler/parser/Cargo.toml rename to src/erg_compiler/erg_parser/Cargo.toml index 6723e6c3..c116c7a2 100644 --- a/src/compiler/parser/Cargo.toml +++ b/src/erg_compiler/erg_parser/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "parser" +name = "erg_parser" version = "0.1.0" description = "The Erg parser" authors = ["mtshiba "] @@ -7,11 +7,11 @@ license = "MIT OR Apache-2.0" edition = "2021" [features] -debug = [ "common/debug" ] -japanese = [ "common/japanese" ] +debug = [ "erg_common/debug" ] +japanese = [ "erg_common/japanese" ] [dependencies] -common = { path = "../../common" } +erg_common = { path = "../../erg_common" } [lib] path = "lib.rs" diff --git a/src/compiler/parser/README.md b/src/erg_compiler/erg_parser/README.md similarity index 100% rename from src/compiler/parser/README.md rename to src/erg_compiler/erg_parser/README.md diff --git a/src/compiler/parser/ast.rs b/src/erg_compiler/erg_parser/ast.rs similarity index 99% rename from src/compiler/parser/ast.rs rename to src/erg_compiler/erg_parser/ast.rs index 052d28a2..535508b3 100644 --- a/src/compiler/parser/ast.rs +++ b/src/erg_compiler/erg_parser/ast.rs @@ -2,8 +2,8 @@ use std::borrow::Borrow; use std::fmt; -use common::{Str}; -use common::{ +use erg_common::{Str}; +use erg_common::{ impl_display_for_single_struct, impl_locational, impl_locational_for_enum, impl_displayable_stream_for_wrapper, @@ -11,11 +11,11 @@ use common::{ fmt_vec, fmt_option, impl_display_for_enum, impl_display_from_nested, impl_nested_display_for_enum }; -use common::value::ValueObj; -use common::error::Location; -use common::set::Set; -use common::traits::{Locational, Stream, NestedDisplay}; -use common::ty::SubrKind; +use erg_common::value::ValueObj; +use erg_common::error::Location; +use erg_common::set::Set; +use erg_common::traits::{Locational, Stream, NestedDisplay}; +use erg_common::ty::SubrKind; use crate::token::{Token, TokenKind}; diff --git a/src/compiler/parser/desugar.rs b/src/erg_compiler/erg_parser/desugar.rs similarity index 98% rename from src/compiler/parser/desugar.rs rename to src/erg_compiler/erg_parser/desugar.rs index e33d092e..8485aa97 100644 --- a/src/compiler/parser/desugar.rs +++ b/src/erg_compiler/erg_parser/desugar.rs @@ -5,10 +5,10 @@ //! 型チェックなどによる検証は行わない #![allow(dead_code)] -use common::{enum_unwrap, set}; -use common::{Str}; -use common::set::{Set}; -use common::traits::{Stream, Locational}; +use erg_common::{enum_unwrap, set}; +use erg_common::{Str}; +use erg_common::set::{Set}; +use erg_common::traits::{Stream, Locational}; use crate::token::{Token, TokenKind}; use crate::ast::{ diff --git a/src/compiler/parser/error.rs b/src/erg_compiler/erg_parser/error.rs similarity index 93% rename from src/compiler/parser/error.rs rename to src/erg_compiler/erg_parser/error.rs index 7b02d859..120a67f4 100644 --- a/src/compiler/parser/error.rs +++ b/src/erg_compiler/erg_parser/error.rs @@ -1,11 +1,11 @@ //! defines `ParseError` and others. //! //! パーサーが出すエラーを定義 -use common::{impl_stream_for_wrapper, switch_lang}; -use common::Str; -use common::config::Input; -use common::error::{ErrorCore, ErrorDisplay, MultiErrorDisplay, Location, ErrorKind::*}; -use common::traits::Stream; +use erg_common::{impl_stream_for_wrapper, switch_lang}; +use erg_common::Str; +use erg_common::config::Input; +use erg_common::error::{ErrorCore, ErrorDisplay, MultiErrorDisplay, Location, ErrorKind::*}; +use erg_common::traits::Stream; #[derive(Debug)] pub struct LexError(ErrorCore); diff --git a/src/compiler/parser/lex.rs b/src/erg_compiler/erg_parser/lex.rs similarity index 99% rename from src/compiler/parser/lex.rs rename to src/erg_compiler/erg_parser/lex.rs index 13e2474d..60937711 100644 --- a/src/compiler/parser/lex.rs +++ b/src/erg_compiler/erg_parser/lex.rs @@ -1,10 +1,10 @@ //! defines and implements `Lexer` (Tokenizer). -use common::cache::Cache; -use common::Str; -use common::{fn_name_full, switch_lang, debug_power_assert, normalize_newline}; -use common::config::Input; -use common::config::ErgConfig; -use common::traits::{Locational, Runnable, Stream}; +use erg_common::cache::Cache; +use erg_common::Str; +use erg_common::{fn_name_full, switch_lang, debug_power_assert, normalize_newline}; +use erg_common::config::Input; +use erg_common::config::ErgConfig; +use erg_common::traits::{Locational, Runnable, Stream}; use crate::error::{LexerRunnerError, LexerRunnerErrors, LexError, LexErrors, LexResult}; use crate::token::{Token, TokenCategory, TokenKind, TokenStream}; diff --git a/src/compiler/parser/lib.rs b/src/erg_compiler/erg_parser/lib.rs similarity index 91% rename from src/compiler/parser/lib.rs rename to src/erg_compiler/erg_parser/lib.rs index d8eb584b..a666f748 100644 --- a/src/compiler/parser/lib.rs +++ b/src/erg_compiler/erg_parser/lib.rs @@ -1,6 +1,6 @@ //! Implements `Parser` for Erg. `Parser` parses the source code to generate `AST`, //! and performs type checking and other optimizations if necessary. -extern crate common; +extern crate erg_common; pub mod desugar; pub mod error; diff --git a/src/compiler/parser/main.rs b/src/erg_compiler/erg_parser/main.rs similarity index 72% rename from src/compiler/parser/main.rs rename to src/erg_compiler/erg_parser/main.rs index 91847380..0d479f35 100644 --- a/src/compiler/parser/main.rs +++ b/src/erg_compiler/erg_parser/main.rs @@ -3,11 +3,11 @@ extern crate parser; use std::process; -use common::config::ErgConfig; -use common::traits::Runnable; +use erg_common::config::ErgConfig; +use erg_common::traits::Runnable; -use parser::lex::LexerRunner; -use parser::ParserRunner; +use erg_parser::lex::LexerRunner; +use erg_parser::ParserRunner; fn main() { let cfg = ErgConfig::parse(); diff --git a/src/compiler/parser/parse.rs b/src/erg_compiler/erg_parser/parse.rs similarity index 99% rename from src/compiler/parser/parse.rs rename to src/erg_compiler/erg_parser/parse.rs index 5904ba5d..95a34bc2 100644 --- a/src/compiler/parser/parse.rs +++ b/src/erg_compiler/erg_parser/parse.rs @@ -5,15 +5,15 @@ use std::fmt::Debug; use std::mem; -use common::Str; -use common::{debug_power_assert, enum_unwrap, fn_name, caused_by, switch_lang, switch_unreachable, log, set}; -use common::color::{GREEN, RED, RESET}; -use common::config::{Input, SEMVER, BUILD_INFO}; -use common::config::ErgConfig; -use common::error::{Location}; -use common::set::Set; -use common::traits::Runnable; -use common::traits::{Locational, Stream}; +use erg_common::Str; +use erg_common::{debug_power_assert, enum_unwrap, fn_name, caused_by, switch_lang, switch_unreachable, log, set}; +use erg_common::color::{GREEN, RED, RESET}; +use erg_common::config::{Input, SEMVER, BUILD_INFO}; +use erg_common::config::ErgConfig; +use erg_common::error::{Location}; +use erg_common::set::Set; +use erg_common::traits::Runnable; +use erg_common::traits::{Locational, Stream}; use crate::error::{ParseError, ParseErrors, ParseResult, ParserRunnerError, ParserRunnerErrors}; use crate::ast::*; diff --git a/src/compiler/parser/tests/ast_example.txt b/src/erg_compiler/erg_parser/tests/ast_example.txt similarity index 100% rename from src/compiler/parser/tests/ast_example.txt rename to src/erg_compiler/erg_parser/tests/ast_example.txt diff --git a/src/compiler/parser/tests/dependent.er b/src/erg_compiler/erg_parser/tests/dependent.er similarity index 100% rename from src/compiler/parser/tests/dependent.er rename to src/erg_compiler/erg_parser/tests/dependent.er diff --git a/src/compiler/parser/tests/fib.er b/src/erg_compiler/erg_parser/tests/fib.er similarity index 100% rename from src/compiler/parser/tests/fib.er rename to src/erg_compiler/erg_parser/tests/fib.er diff --git a/src/compiler/parser/tests/hello_world.er b/src/erg_compiler/erg_parser/tests/hello_world.er similarity index 100% rename from src/compiler/parser/tests/hello_world.er rename to src/erg_compiler/erg_parser/tests/hello_world.er diff --git a/src/compiler/parser/tests/stack.er b/src/erg_compiler/erg_parser/tests/stack.er similarity index 100% rename from src/compiler/parser/tests/stack.er rename to src/erg_compiler/erg_parser/tests/stack.er diff --git a/src/compiler/parser/tests/test.rs b/src/erg_compiler/erg_parser/tests/test.rs similarity index 93% rename from src/compiler/parser/tests/test.rs rename to src/erg_compiler/erg_parser/tests/test.rs index bd841a9e..9ea743c3 100644 --- a/src/compiler/parser/tests/test.rs +++ b/src/erg_compiler/erg_parser/tests/test.rs @@ -4,16 +4,16 @@ extern crate parser; mod tests { use std::iter::Iterator; - use common::config::{ErgConfig, Input}; - use common::error::MultiErrorFmt; - use common::traits::Runnable; + use erg_common::config::{ErgConfig, Input}; + use erg_common::error::MultiErrorFmt; + use erg_common::traits::Runnable; - // use compiler::parser; + // use erg_compiler::parser; - use parser::error::*; - use parser::lex::Lexer; - use parser::token::*; - use parser::ParserRunner; + use erg_parser::error::*; + use erg_parser::lex::Lexer; + use erg_parser::token::*; + use erg_parser::ParserRunner; use TokenKind::*; const FILE1: &str = "src/compiler/parser/tests/test1_basic_syntax.er"; diff --git a/src/compiler/parser/tests/test1_basic_syntax.er b/src/erg_compiler/erg_parser/tests/test1_basic_syntax.er similarity index 100% rename from src/compiler/parser/tests/test1_basic_syntax.er rename to src/erg_compiler/erg_parser/tests/test1_basic_syntax.er diff --git a/src/compiler/parser/tests/test2_advanced_syntax.er b/src/erg_compiler/erg_parser/tests/test2_advanced_syntax.er similarity index 100% rename from src/compiler/parser/tests/test2_advanced_syntax.er rename to src/erg_compiler/erg_parser/tests/test2_advanced_syntax.er diff --git a/src/compiler/parser/token.rs b/src/erg_compiler/erg_parser/token.rs similarity index 97% rename from src/compiler/parser/token.rs rename to src/erg_compiler/erg_parser/token.rs index 9027737a..0c88139d 100644 --- a/src/compiler/parser/token.rs +++ b/src/erg_compiler/erg_parser/token.rs @@ -4,12 +4,12 @@ use std::fmt; use std::hash::{Hash, Hasher}; -use common::str::Str; -use common::error::Location; -use common::impl_displayable_stream_for_wrapper; -use common::traits::{Stream, Locational}; -use common::value::ValueObj; -use common::ty::Type; +use erg_common::str::Str; +use erg_common::error::Location; +use erg_common::impl_displayable_stream_for_wrapper; +use erg_common::traits::{Stream, Locational}; +use erg_common::value::ValueObj; +use erg_common::ty::Type; /// 意味論的名前と記号自体の名前が混在しているが、Pythonの名残である #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] diff --git a/src/compiler/error.rs b/src/erg_compiler/error.rs similarity index 97% rename from src/compiler/error.rs rename to src/erg_compiler/error.rs index 107e7b70..9af75813 100644 --- a/src/compiler/error.rs +++ b/src/erg_compiler/error.rs @@ -1,15 +1,15 @@ use std::fmt::Display; use std::ops::Add; -use common::color::{GREEN, RED, YELLOW, RESET}; -use common::config::Input; -use common::error::{ErrorCore, ErrorKind::*, ErrorDisplay, MultiErrorDisplay, Location}; -use common::traits::{Stream, Locational}; -use common::ty::{Type, Predicate}; -use common::{Str, fmt_iter}; -use common::{impl_stream_for_wrapper, switch_lang}; +use erg_common::color::{GREEN, RED, YELLOW, RESET}; +use erg_common::config::Input; +use erg_common::error::{ErrorCore, ErrorKind::*, ErrorDisplay, MultiErrorDisplay, Location}; +use erg_common::traits::{Stream, Locational}; +use erg_common::ty::{Type, Predicate}; +use erg_common::{Str, fmt_iter}; +use erg_common::{impl_stream_for_wrapper, switch_lang}; -use parser::error::{ParserRunnerError, ParserRunnerErrors}; +use erg_parser::error::{ParserRunnerError, ParserRunnerErrors}; use crate::hir::Expr; diff --git a/src/compiler/eval.rs b/src/erg_compiler/eval.rs similarity index 98% rename from src/compiler/eval.rs rename to src/erg_compiler/eval.rs index 31eeb302..a6322d71 100644 --- a/src/compiler/eval.rs +++ b/src/erg_compiler/eval.rs @@ -1,17 +1,17 @@ use std::mem; -use common::Str; -use common::{fn_name, set}; -use common::value::ValueObj; -use common::dict::Dict; -use common::rccell::RcCell; -use common::set::{Set}; -use common::traits::Stream; -use common::ty::{OpKind, TyParam, Type, Predicate, TyBound, ConstObj, SubrKind}; +use erg_common::Str; +use erg_common::{fn_name, set}; +use erg_common::value::ValueObj; +use erg_common::dict::Dict; +use erg_common::rccell::RcCell; +use erg_common::set::{Set}; +use erg_common::traits::Stream; +use erg_common::ty::{OpKind, TyParam, Type, Predicate, TyBound, ConstObj, SubrKind}; use OpKind::*; -use parser::ast::*; -use parser::token::Token; +use erg_parser::ast::*; +use erg_parser::token::Token; use crate::table::{SymbolTable, TyVarTable}; use crate::error::{EvalError, EvalResult, TyCheckResult}; diff --git a/src/compiler/hir.rs b/src/erg_compiler/hir.rs similarity index 98% rename from src/compiler/hir.rs rename to src/erg_compiler/hir.rs index 60023efa..5ad5ff97 100644 --- a/src/compiler/hir.rs +++ b/src/erg_compiler/hir.rs @@ -1,19 +1,19 @@ /// defines High-level Intermediate Representation use std::fmt; -use common::{Str}; -use common::value::ValueObj; -use common::error::Location; -use common::traits::{HasType, Locational, Stream, NestedDisplay}; -use common::ty::{Type, TyParam, Constraint}; -use common::{ +use erg_common::{Str}; +use erg_common::value::ValueObj; +use erg_common::error::Location; +use erg_common::traits::{HasType, Locational, Stream, NestedDisplay}; +use erg_common::ty::{Type, TyParam, Constraint}; +use erg_common::{ impl_locational, impl_locational_for_enum, impl_stream_for_wrapper, impl_display_for_enum, impl_nested_display_for_enum, impl_display_from_nested, }; -use parser::token::{Token, TokenKind}; -use parser::ast::{VarName, VarPattern, Params, DefId, fmt_lines}; +use erg_parser::token::{Token, TokenKind}; +use erg_parser::ast::{VarName, VarPattern, Params, DefId, fmt_lines}; #[derive(Debug, Clone)] pub struct Literal { diff --git a/src/compiler/initialize.rs b/src/erg_compiler/initialize.rs similarity index 99% rename from src/compiler/initialize.rs rename to src/erg_compiler/initialize.rs index 45dfb9bc..2f1a7c4d 100644 --- a/src/compiler/initialize.rs +++ b/src/erg_compiler/initialize.rs @@ -1,14 +1,14 @@ //! defines type information for builtin objects (in `SymbolTable`) //! //! 組み込みオブジェクトの型情報を(記号表に)定義 -use common::{Str}; -use common::{set, debug_power_assert}; -use common::ty::{Type, TyParam, ConstObj}; +use erg_common::{Str}; +use erg_common::{set, debug_power_assert}; +use erg_common::ty::{Type, TyParam, ConstObj}; use Type::*; -use common::ty::type_constrs::*; +use erg_common::ty::type_constrs::*; use ParamSpec as PS; -use parser::ast::{VarName}; +use erg_parser::ast::{VarName}; use crate::varinfo::{Mutability, Visibility, VarInfo, VarKind}; use crate::table::{SymbolTable, ParamSpec, DefaultInfo}; diff --git a/src/compiler/lib.rs b/src/erg_compiler/lib.rs similarity index 83% rename from src/compiler/lib.rs rename to src/erg_compiler/lib.rs index 84bd15a9..de974484 100644 --- a/src/compiler/lib.rs +++ b/src/erg_compiler/lib.rs @@ -1,6 +1,6 @@ //! defines the compiler for Erg (ergc). -extern crate common; -pub extern crate parser; +extern crate erg_common; +pub extern crate erg_parser; mod compile; pub use compile::*; diff --git a/src/compiler/lower.rs b/src/erg_compiler/lower.rs similarity index 98% rename from src/compiler/lower.rs rename to src/erg_compiler/lower.rs index 0f1d5952..1a025bad 100644 --- a/src/compiler/lower.rs +++ b/src/erg_compiler/lower.rs @@ -1,15 +1,15 @@ //! implements `ASTLowerer`. //! //! ASTLowerer(ASTからHIRへの変換器)を実装 -use common::{switch_lang, log, fn_name}; -use common::color::{GREEN, RED, RESET}; -use common::error::Location; -use common::traits::{Locational, Stream, HasType}; -use common::ty::{Type, ParamTy}; -use common::get_hash; +use erg_common::{switch_lang, log, fn_name}; +use erg_common::color::{GREEN, RED, RESET}; +use erg_common::error::Location; +use erg_common::traits::{Locational, Stream, HasType}; +use erg_common::ty::{Type, ParamTy}; +use erg_common::get_hash; -use parser::ast; -use parser::ast::{AST}; +use erg_parser::ast; +use erg_parser::ast::{AST}; use crate::hir; use crate::hir::{HIR}; diff --git a/src/compiler/main.rs b/src/erg_compiler/main.rs similarity index 58% rename from src/compiler/main.rs rename to src/erg_compiler/main.rs index 3340f8ef..a71614df 100644 --- a/src/compiler/main.rs +++ b/src/erg_compiler/main.rs @@ -1,17 +1,17 @@ -extern crate common; -extern crate compiler; -extern crate parser; +extern crate erg_common; +extern crate erg_compiler; +extern crate erg_parser; use std::process; -use common::deserialize::Deserializer; -use common::config::{ErgConfig}; -use common::traits::Runnable; +use erg_common::deserialize::Deserializer; +use erg_common::config::{ErgConfig}; +use erg_common::traits::Runnable; -use compiler::Compiler; +use erg_compiler::Compiler; -use parser::lex::LexerRunner; -use parser::ParserRunner; +use erg_parser::lex::LexerRunner; +use erg_parser::ParserRunner; fn main() { let cfg = ErgConfig::parse(); diff --git a/src/compiler/optimize.rs b/src/erg_compiler/optimize.rs similarity index 100% rename from src/compiler/optimize.rs rename to src/erg_compiler/optimize.rs diff --git a/src/compiler/ownercheck.rs b/src/erg_compiler/ownercheck.rs similarity index 95% rename from src/compiler/ownercheck.rs rename to src/erg_compiler/ownercheck.rs index 33244d36..d4a7b0ed 100644 --- a/src/compiler/ownercheck.rs +++ b/src/erg_compiler/ownercheck.rs @@ -1,11 +1,11 @@ -use common::Str; -use common::{debug_power_assert, log}; -use common::color::{GREEN, RESET}; -use common::dict::Dict; -use common::error::Location; -use common::set::Set; -use common::traits::{Stream, Locational, HasType}; -use common::ty::{Type, ArgsOwnership, Ownership}; +use erg_common::Str; +use erg_common::{debug_power_assert, log}; +use erg_common::color::{GREEN, RESET}; +use erg_common::dict::Dict; +use erg_common::error::Location; +use erg_common::set::Set; +use erg_common::traits::{Stream, Locational, HasType}; +use erg_common::ty::{Type, ArgsOwnership, Ownership}; use crate::error::{OwnershipError, OwnershipErrors, OwnershipResult}; use crate::hir::{HIR, Def, Signature, Accessor, Block, Expr}; diff --git a/src/compiler/table.rs b/src/erg_compiler/table.rs similarity index 99% rename from src/compiler/table.rs rename to src/erg_compiler/table.rs index ab81a2ea..bd126b5c 100644 --- a/src/compiler/table.rs +++ b/src/erg_compiler/table.rs @@ -6,18 +6,18 @@ use std::mem; use std::option::Option; // conflicting to Type::Option use std::cmp::Ordering; -use common::Str; -use common::ty::Constraint; -use common::ty::RefinementType; -use common::ty::fresh_varname; -use common::{fn_name, get_hash, log, assume_unreachable, set, try_map, fmt_slice}; -use common::dict::Dict; -use common::set::Set; -use common::error::{Location, ErrorCore}; -use common::value::ValueObj; -use common::levenshtein::levenshtein; -use common::traits::{HasType, Locational, Stream}; -use common::ty::{ +use erg_common::Str; +use erg_common::ty::Constraint; +use erg_common::ty::RefinementType; +use erg_common::ty::fresh_varname; +use erg_common::{fn_name, get_hash, log, assume_unreachable, set, try_map, fmt_slice}; +use erg_common::dict::Dict; +use erg_common::set::Set; +use erg_common::error::{Location, ErrorCore}; +use erg_common::value::ValueObj; +use erg_common::levenshtein::levenshtein; +use erg_common::traits::{HasType, Locational, Stream}; +use erg_common::ty::{ Type, TyParam, TyParamOrdering, TyBound, ConstObj, IntervalOp, FreeKind, HasLevel, SubrKind, SubrType, ParamTy, Predicate, }; @@ -26,9 +26,9 @@ use Type::*; use Predicate as Pred; use ValueObj::{Inf, NegInf}; -use parser::ast; +use erg_parser::ast; use ast::{VarName, DefId, TypeSpec, ParamTySpec, PreDeclTypeSpec, SimpleTypeSpec, TypeBoundSpec, TypeBoundSpecs, ParamSig}; -use parser::token::{Token, TokenKind}; +use erg_parser::token::{Token, TokenKind}; use crate::hir; use crate::eval::{Evaluator}; @@ -1725,7 +1725,7 @@ impl SymbolTable { // Never or T => T let mut union_pat_t = Type::Never; for (i, a) in pos_args.iter().skip(1).enumerate() { - let lambda = common::enum_unwrap!(&a.expr, hir::Expr::Lambda); + let lambda = erg_common::enum_unwrap!(&a.expr, hir::Expr::Lambda); if !lambda.params.defaults.is_empty() { todo!() } if lambda.params.len() != 1 { return Err(TyCheckError::argument_error( @@ -1819,7 +1819,7 @@ impl SymbolTable { } pub(crate) fn get_binop_t(&self, op: &Token, args: &[hir::PosArg], namespace: &Str) -> TyCheckResult { - common::debug_power_assert!(args.len() == 2); + erg_common::debug_power_assert!(args.len() == 2); let symbol = Token::symbol(binop_to_dname(op.inspect())); let mut op = hir::Expr::Accessor(hir::Accessor::local(symbol, Type::ASTOmitted)); self.get_call_t(&mut op, args, &[], namespace).map_err(|e| { @@ -1830,7 +1830,7 @@ impl SymbolTable { } pub(crate) fn get_unaryop_t(&self, op: &Token, args: &[hir::PosArg], namespace: &Str) -> TyCheckResult { - common::debug_power_assert!(args.len() == 1); + erg_common::debug_power_assert!(args.len() == 1); let symbol = Token::symbol(unaryop_to_dname(op.inspect())); let mut op = hir::Expr::Accessor(hir::Accessor::local(symbol, Type::ASTOmitted)); self.get_call_t(&mut op, args, &[], namespace).map_err(|e| { @@ -2191,7 +2191,7 @@ impl SymbolTable { (l, r @ (TyParam::Erased(_) | TyParam::MonoQVar(_) | TyParam::FreeVar(_))) => self.try_cmp(r, l, bounds).map(|ord| ord.reverse()), (_l, _r) => { - common::fmt_dbg!(_l, _r,); + erg_common::fmt_dbg!(_l, _r,); None }, } diff --git a/src/compiler/tests/dependent.er b/src/erg_compiler/tests/dependent.er similarity index 100% rename from src/compiler/tests/dependent.er rename to src/erg_compiler/tests/dependent.er diff --git a/src/compiler/tests/fib.er b/src/erg_compiler/tests/fib.er similarity index 100% rename from src/compiler/tests/fib.er rename to src/erg_compiler/tests/fib.er diff --git a/src/compiler/tests/infer_arr.er b/src/erg_compiler/tests/infer_arr.er similarity index 100% rename from src/compiler/tests/infer_arr.er rename to src/erg_compiler/tests/infer_arr.er diff --git a/src/compiler/tests/side_effect.er b/src/erg_compiler/tests/side_effect.er similarity index 100% rename from src/compiler/tests/side_effect.er rename to src/erg_compiler/tests/side_effect.er diff --git a/src/compiler/varinfo.rs b/src/erg_compiler/varinfo.rs similarity index 97% rename from src/compiler/varinfo.rs rename to src/erg_compiler/varinfo.rs index bc1c7570..21560763 100644 --- a/src/compiler/varinfo.rs +++ b/src/erg_compiler/varinfo.rs @@ -1,10 +1,10 @@ use std::fmt; -use common::Str; -use common::ty::{Type}; -use common::traits::HasType; +use erg_common::Str; +use erg_common::ty::{Type}; +use erg_common::traits::HasType; -use parser::ast::DefId; +use erg_parser::ast::DefId; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[repr(u8)] diff --git a/src/lib.rs b/src/lib.rs index 85d4f28e..6701c0d4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,3 @@ -extern crate common; -extern crate compiler; +extern crate erg_common; +extern crate erg_compiler; pub mod dummy; diff --git a/src/main.rs b/src/main.rs index da93b65c..c382cf06 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,17 +1,17 @@ -extern crate compiler; -extern crate parser; +extern crate erg_compiler; +extern crate erg_parser; extern crate erg; use std::process; -use common::config::{ErgConfig}; -use common::deserialize::Deserializer; -use common::traits::Runnable; +use erg_common::config::{ErgConfig}; +use erg_common::deserialize::Deserializer; +use erg_common::traits::Runnable; -use parser::lex::LexerRunner; -use parser::ParserRunner; +use erg_parser::lex::LexerRunner; +use erg_parser::ParserRunner; -use compiler::Compiler; +use erg_compiler::Compiler; use erg::dummy::DummyVM; diff --git a/tests/test.rs b/tests/test.rs index cd986cc4..554fb1ea 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -2,9 +2,9 @@ extern crate erg; mod tests { /* - use common::config::{ErgConfig, Input}; - use common::error::MultiErrorFmt; - use common::traits::Runnable; + use erg_common::config::{ErgConfig, Input}; + use erg_common::error::MultiErrorFmt; + use erg_common::traits::Runnable; const FILE3: &str = "tests/test3_object_system.er"; */