From 73db1a6cfe129bda540c2814e4b1dc3774a846ca Mon Sep 17 00:00:00 2001 From: ahmtcn123 Date: Wed, 5 Jan 2022 19:36:00 +0300 Subject: [PATCH] v2.0.0 --- CHANGELOG.md | 88 +- Cargo.toml | 27 +- build.rs | 21 +- core/src/builded_libraries.rs | 8 +- core/src/defs.rs | 7 + lib/ellie.ei | 2 +- parser/src/parser.rs | 41 +- parser/src/processors/type_processor.rs | 25 +- src/bin/elliec.rs | 932 +++++++----------- src/cli_outputs.rs | 120 ++- src/cli_utils.rs | 16 +- src/compile_file.rs | 460 +++++++++ src/{cli_constants.rs => engine_constants.rs} | 4 +- src/lib.rs | 4 +- src/view_module.rs | 154 +++ .../src/processors/items/class_processor.rs | 9 +- .../src/processors/items/definer_processor.rs | 2 +- .../processors/items/variable_processor.rs | 19 +- tokenizer/src/tokenizer.rs | 25 +- tree_maker.js | 12 +- 20 files changed, 1160 insertions(+), 816 deletions(-) create mode 100644 src/compile_file.rs rename src/{cli_constants.rs => engine_constants.rs} (74%) create mode 100644 src/view_module.rs diff --git a/CHANGELOG.md b/CHANGELOG.md index d232d392..5c782d2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,90 +1,4 @@ # Changelog # v2.0.0 - - Parser - * Performance improved - * integer, float type introduced - -# v2.1.0 - - Parser - * Class introduced - * Ret introduced - * Constants added - * Bug fix & performance improvements - - Engine - * Benchmarks added - - CLI - * Experimental error listing - -# v2.2.0 - - Parser: - * Bug fixes - * Code execution order - * Class call - * Scope management - * Reserved keywords protection - * Callers are introduced - -# v2.6.0 - - CLI - * Support eval for language server - -# v2.7.0 - - Parser - * Comment bug fix - * Collective introduced - * Negative introduced (!!true) - * Nullable types introduced - -# v2.8.1 - - Parser v1.1.1 - * Fix standard library's long load times - * Fix class imports - - CLI - * Fix eval & file code order - -# v3.0.2 - - Parser v1.3.2 - * Apply imported file error trace - * Support constructing classes - - CLI - * Support imported file error show - -# v3.4.0 - - Parser v1.4.0 - * Support native headers - * Apply parsing log - * Expandable function parameter introduced - - CLI - * Create parsing visualizer - * Make experimental error provider stable - * Improve import resolver - - -# v3.5.0 - - Parser v1.6.0 - * Getter & setter implemented - * Enum implemented - - CLI - * Fix eval bugs - * Initialize runtime - -# v3.5.1 - - Parser v1.6.2 - * Performance bug resolved - * Array type definition error fixed - -# v3.6.2 - - Parser v1.7.3 - * Future type introduced - * Reference resolver implemented - * Fix dynamic type assignment error in collective - * Fix class constructor parameter type mismatch - -# v3.7.3 - - Parser v1.7.3 - * Fix condition error - - Runtime v0.1.0 - * Create type conversion between types and items - - Native-Bridge v0.1.0 - * Add int, float, string data types \ No newline at end of file + - Change cli options and behaviour \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 610eb2fc..9db98d65 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "ellie_engine" version_code = "BeautifulTropicalFish" -version = "0.1.0" +version = "0.2.0" authors = ["Ahmetcan Aksu "] edition = "2021" license-file = "LICENSE" @@ -11,24 +11,24 @@ default-run = "elliec" lazy_static = { version = "1.4.0", features = ["spin_no_std"] } serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0", default-features = false, features = ["alloc"] } -path-absolutize = {version = "3.0.10", optional = true } -websocket = {version = "0.26.2", optional = true, default-features = false, features = ["sync"] } +path-absolutize = { version = "3.0.10", optional = true } +websocket = { version = "0.26.2", optional = true, default-features = false, features = ["sync"] } regex = { version = "1.1.7", optional = true } bincode = { version = "1.0", optional = true } - -ellie_core = {path = "core", version = "0.2.0"} -ellie_tokenizer = {path = "tokenizer", version = "0.2.0", default-features = false} -ellie_parser = {path = "parser", version = "0.2.0", default-features = false} -ellie_assist = {path = "EllieAssist", version = "0.1.0", optional = true} +clap = { version = "3.0.0", optional = true } +clap_complete = { version = "3.0.0", optional = true } +ellie_core = { path = "core", version = "0.2.0" } +ellie_tokenizer = { path = "tokenizer", version = "0.2.0", default-features = false } +ellie_parser = { path = "parser", version = "0.2.0", default-features = false } +ellie_assist = { path = "EllieAssist", version = "0.1.0", optional = true } ellie_runtime = {path = "runtime", version = "0.1.0" } [features] default = ["build-cli", "standard_rules"] -build-cli = ["path-absolutize", "websocket", "regex", "bincode"] +build-cli = ["path-absolutize", "websocket", "regex", "bincode", "clap"] ellie_asist = ["ellie_assist"] standard_rules = ["ellie_parser/standard_rules"] - [[bin]] name = "elliec" test = false @@ -37,6 +37,7 @@ required-features = ["build-cli"] [build-dependencies] lazy_static = "1.4.0" +clap_complete = "3.0.0" ellie_core = { path = "core", version = "0.2.0" } serde_json = { version = "1.0", default-features = false, features = ["alloc"] } ellie_parser = {path = "parser", version = "0.2.0", default-features = false} @@ -46,9 +47,5 @@ regex = { version = "1.1.7" } ellie_tokenizer = {path = "tokenizer", version = "0.2.0", default-features = false} bincode = { version = "1.0", optional = true } - -#[dev-dependencies] -#criterion = { version = "0.3", features= ["html_reports"]} - [profile.release] -opt-level = 3 \ No newline at end of file +opt-level = 3 diff --git a/build.rs b/build.rs index aef26123..3f40a8d2 100644 --- a/build.rs +++ b/build.rs @@ -12,6 +12,9 @@ use toml::Value; #[path = "src/cli_utils.rs"] mod cli_utils; +#[path = "src/engine_constants.rs"] +mod engine_constants; + use std::{ collections::hash_map::DefaultHasher, fs::{self, File}, @@ -61,7 +64,10 @@ fn main() { &version_line_regex.captures(&builded_libraries).unwrap(); let current_lib_version = current_version_number["version"].to_owned(); - if current_lib_version != lib_version { + if current_lib_version != lib_version + || ellie_core::builded_libraries::BUILDED_ELLIE_VERSION + != engine_constants::ELLIE_VERSION + { let mut pager = tokenizer::Pager::new( ellie_lib, Path::new("./lib/ellie.ei").to_str().unwrap().to_string(), @@ -146,7 +152,13 @@ fn main() { lib_version.clone(), ), ); - let workspace = parser.parse("ellie_std".to_owned()); + let workspace = parser.parse( + "ellie_std".to_owned(), + "Ellie Standard Types".to_owned(), + ellie_core::defs::Version::build_from_string( + engine_constants::ELLIE_VERSION.to_owned(), + ), + ); if !parser.informations.has_no_warnings() { cli_utils::print_warnings( @@ -206,7 +218,7 @@ fn main() { let json = serde_json::to_string(&workspace).unwrap(); fs::write( "./core/src/builded_libraries.rs", - format!("//@version = \"{}\";\npub static ELLIE_STD_VERSION : crate::defs::Version = crate::defs::Version {{minor: {}, major: {}, bug: {} }};\npub static ELLIE_STANDARD_LIBRARY : &str = {:#?};\n", lib_version, lib_version.split(".").nth(0).unwrap(), lib_version.split(".").nth(1).unwrap(),lib_version.split(".").nth(2).unwrap(), json), + format!("//NEVER EDIT THIS FILE WHILE LANGUAGE SERVER IS RUNNING\n//@version = \"{}\";\npub static BUILDED_ELLIE_VERSION: &'static str = \"{}\";\npub static ELLIE_STD_VERSION : crate::defs::Version = crate::defs::Version {{minor: {}, major: {}, bug: {} }};\npub static ELLIE_STANDARD_LIBRARY : &str = {:#?};\n", lib_version, engine_constants::ELLIE_VERSION, lib_version.split(".").nth(0).unwrap(), lib_version.split(".").nth(1).unwrap(),lib_version.split(".").nth(2).unwrap(), json), ) .unwrap(); } @@ -226,9 +238,8 @@ fn main() { ) } } - fs::write( - "./src/cli_constants.rs", + "./src/engine_constants.rs", format!( "pub static ELLIE_VERSION: &'static str = &{};\npub static ELLIE_VERSION_NAME: &'static str = &{};\npub static ELLIE_TOKENIZER_VERSION: &'static str = &{};\npub static ELLIE_PARSER_VERSION: &'static str = &{};\npub static ELLIE_RUNTIME_VERSION: &'static str = &{};\npub static ELLIE_CORE_VERSION: &'static str = &{};\npub static ELLIE_STD_VERSION: &'static str = &\"{}\";\n", ellie_version, diff --git a/core/src/builded_libraries.rs b/core/src/builded_libraries.rs index 9be2b604..74a2279c 100644 --- a/core/src/builded_libraries.rs +++ b/core/src/builded_libraries.rs @@ -1,3 +1,5 @@ -//@version = "0.2.0"; -pub static ELLIE_STD_VERSION : crate::defs::Version = crate::defs::Version {minor: 0, major: 2, bug: 0 }; -pub static ELLIE_STANDARD_LIBRARY : &str = "{\"hash\":343,\"name\":\"ellie_std\",\"initial_page\":343,\"pages\":[{\"hash\":343,\"inner\":null,\"path\":\"./lib/ellie.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"0.2.0\",\"pos\":{\"range_start\":[3,12],\"range_end\":[3,19]}}},\"key_name_location\":{\"range_start\":[3,2],\"range_end\":[3,8]},\"value_location\":{\"range_start\":[3,10],\"range_end\":[3,19]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,19]}}},{\"Import\":{\"path\":\"void\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,12],\"range_end\":[4,15]},\"pos\":{\"range_start\":[4,5],\"range_end\":[4,17]},\"hash\":\"9705453923843755915\"}},{\"Import\":{\"path\":\"string\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,12],\"range_end\":[5,17]},\"pos\":{\"range_start\":[5,5],\"range_end\":[5,19]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"char\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[6,12],\"range_end\":[6,15]},\"pos\":{\"range_start\":[6,5],\"range_end\":[6,17]},\"hash\":\"10786911180507227217\"}},{\"Import\":{\"path\":\"collective\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[7,12],\"range_end\":[7,21]},\"pos\":{\"range_start\":[7,5],\"range_end\":[7,23]},\"hash\":\"2265775706785941188\"}},{\"Import\":{\"path\":\"float\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[8,12],\"range_end\":[8,16]},\"pos\":{\"range_start\":[8,5],\"range_end\":[8,18]},\"hash\":\"17002242560366547085\"}},{\"Import\":{\"path\":\"bool\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[9,12],\"range_end\":[9,15]},\"pos\":{\"range_start\":[9,5],\"range_end\":[9,17]},\"hash\":\"5302116792433123142\"}},{\"Import\":{\"path\":\"cloak\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[10,12],\"range_end\":[10,16]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,18]},\"hash\":\"2596114674330710893\"}},{\"Import\":{\"path\":\"array\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[11,12],\"range_end\":[11,16]},\"pos\":{\"range_start\":[11,5],\"range_end\":[11,18]},\"hash\":\"1040919654813280692\"}},{\"Import\":{\"path\":\"vector\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[12,12],\"range_end\":[12,17]},\"pos\":{\"range_start\":[12,5],\"range_end\":[12,19]},\"hash\":\"6944448437676459577\"}},{\"Import\":{\"path\":\"function\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[13,12],\"range_end\":[13,19]},\"pos\":{\"range_start\":[13,5],\"range_end\":[13,21]},\"hash\":\"7292167443911913662\"}},{\"Import\":{\"path\":\"nullAble\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[14,12],\"range_end\":[14,19]},\"pos\":{\"range_start\":[14,5],\"range_end\":[14,21]},\"hash\":\"15576188344227026274\"}},{\"Import\":{\"path\":\"class\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[15,12],\"range_end\":[15,16]},\"pos\":{\"range_start\":[15,5],\"range_end\":[15,18]},\"hash\":\"16316289034799634696\"}},{\"Import\":{\"path\":\"int\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[16,12],\"range_end\":[16,14]},\"pos\":{\"range_start\":[16,5],\"range_end\":[16,16]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"dyn\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[17,12],\"range_end\":[17,14]},\"pos\":{\"range_start\":[17,5],\"range_end\":[17,16]},\"hash\":\"12732385855440395869\"}},{\"Import\":{\"path\":\"error\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[18,12],\"range_end\":[18,16]},\"pos\":{\"range_start\":[18,5],\"range_end\":[18,18]},\"hash\":\"11021445597161914801\"}},{\"Import\":{\"path\":\"mem\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[19,12],\"range_end\":[19,14]},\"pos\":{\"range_start\":[19,5],\"range_end\":[19,16]},\"hash\":\"5140352417142422684\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":9705453923843755915,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":2265775706785941188,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":5302116792433123142,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":2596114674330710893,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":7292167443911913662,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":15576188344227026274,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":16316289034799634696,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":12732385855440395869,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":5140352417142422684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true}]},{\"hash\":9705453923843755915,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/void.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"1.0.0\",\"pos\":{\"range_start\":[5,12],\"range_end\":[5,19]}}},\"key_name_location\":{\"range_start\":[5,2],\"range_end\":[5,8]},\"value_location\":{\"range_start\":[5,10],\"range_end\":[5,19]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,19]}}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"Operator\":{\"cloaked\":false,\"first\":{\"String\":{\"value\":\"Ellie void@notConstructable \",\"pos\":{\"range_start\":[6,16],\"range_end\":[6,28]}}},\"first_pos\":{\"range_start\":[6,16],\"range_end\":[6,28]},\"second_pos\":{\"range_start\":[7,21],\"range_end\":[7,24]},\"second\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[7,21],\"range_end\":[7,25]}}},\"operator\":{\"AssignmentType\":\"Assignment\"},\"pos\":{\"range_start\":[7,19],\"range_end\":[7,20]}}},\"key_name_location\":{\"range_start\":[6,2],\"range_end\":[6,12]},\"value_location\":{\"range_start\":[6,14],\"range_end\":[7,25]},\"pos\":{\"range_start\":[6,1],\"range_end\":[7,25]}}},{\"Class\":{\"name\":\"void\",\"public\":true,\"inner_page_id\":3495072309614759863,\"name_pos\":{\"range_start\":[8,11],\"range_end\":[8,15]},\"pos\":{\"range_start\":[8,5],\"range_end\":[14,2]},\"hash\":\"16722211215014223237124163143130772122201655714198828522420523788\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":17018069723813511702,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/string.ei\",\"items\":[{\"Import\":{\"path\":\"array\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,12]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,14]},\"hash\":\"1040919654813280692\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,8],\"range_end\":[5,10]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,12]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"char\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[6,8],\"range_end\":[6,11]},\"pos\":{\"range_start\":[6,1],\"range_end\":[6,13]},\"hash\":\"10786911180507227217\"}},{\"Import\":{\"path\":\"vector\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[7,8],\"range_end\":[7,13]},\"pos\":{\"range_start\":[7,1],\"range_end\":[7,15]},\"hash\":\"6944448437676459577\"}},{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"1.0.0\",\"pos\":{\"range_start\":[9,12],\"range_end\":[9,19]}}},\"key_name_location\":{\"range_start\":[9,2],\"range_end\":[9,8]},\"value_location\":{\"range_start\":[9,10],\"range_end\":[9,19]},\"pos\":{\"range_start\":[9,1],\"range_end\":[9,19]}}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"Operator\":{\"cloaked\":false,\"first\":{\"String\":{\"value\":\"Ellie string@notConstructable \",\"pos\":{\"range_start\":[10,16],\"range_end\":[10,30]}}},\"first_pos\":{\"range_start\":[10,16],\"range_end\":[10,30]},\"second_pos\":{\"range_start\":[11,21],\"range_end\":[11,24]},\"second\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[11,21],\"range_end\":[11,25]}}},\"operator\":{\"AssignmentType\":\"Assignment\"},\"pos\":{\"range_start\":[11,19],\"range_end\":[11,20]}}},\"key_name_location\":{\"range_start\":[10,2],\"range_end\":[10,12]},\"value_location\":{\"range_start\":[10,14],\"range_end\":[11,25]},\"pos\":{\"range_start\":[10,1],\"range_end\":[11,25]}}},{\"Class\":{\"name\":\"string\",\"public\":true,\"inner_page_id\":14625023188502919032,\"name_pos\":{\"range_start\":[12,11],\"range_end\":[12,17]},\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}}],\"dependents\":[9705453923843755915,1040919654813280692,7659122406100850684,10786911180507227217,6944448437676459577,343,5302116792433123142,11021445597161914801,6107902802699294681,7292167443911913662,16316289034799634696,12732385855440395869,5140352417142422684],\"dependencies\":[{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":1040919654813280692,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/array.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,10]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,12]},\"hash\":\"7659122406100850684\"}},{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"1.0.0\",\"pos\":{\"range_start\":[6,12],\"range_end\":[6,19]}}},\"key_name_location\":{\"range_start\":[6,2],\"range_end\":[6,8]},\"value_location\":{\"range_start\":[6,10],\"range_end\":[6,19]},\"pos\":{\"range_start\":[6,1],\"range_end\":[6,19]}}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"Operator\":{\"cloaked\":false,\"first\":{\"String\":{\"value\":\"Ellie array@notConstructable \",\"pos\":{\"range_start\":[7,16],\"range_end\":[7,29]}}},\"first_pos\":{\"range_start\":[7,16],\"range_end\":[7,29]},\"second_pos\":{\"range_start\":[8,21],\"range_end\":[8,24]},\"second\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[8,21],\"range_end\":[8,25]}}},\"operator\":{\"AssignmentType\":\"Assignment\"},\"pos\":{\"range_start\":[8,19],\"range_end\":[8,20]}}},\"key_name_location\":{\"range_start\":[7,2],\"range_end\":[7,12]},\"value_location\":{\"range_start\":[7,14],\"range_end\":[8,25]},\"pos\":{\"range_start\":[7,1],\"range_end\":[8,25]}}},{\"Class\":{\"name\":\"array\",\"public\":true,\"inner_page_id\":483035047079046073,\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,16]},\"pos\":{\"range_start\":[9,5],\"range_end\":[26,2]},\"hash\":\"261701962501752755539921409778121132961185158943918617374\"}}],\"dependents\":[17018069723813511702,343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":7659122406100850684,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/int.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"float\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,12]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,14]},\"hash\":\"17002242560366547085\"}},{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"1.0.0\",\"pos\":{\"range_start\":[6,12],\"range_end\":[6,19]}}},\"key_name_location\":{\"range_start\":[6,2],\"range_end\":[6,8]},\"value_location\":{\"range_start\":[6,10],\"range_end\":[6,19]},\"pos\":{\"range_start\":[6,1],\"range_end\":[6,19]}}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"Operator\":{\"cloaked\":false,\"first\":{\"String\":{\"value\":\"Ellie integer@notConstructable \",\"pos\":{\"range_start\":[7,16],\"range_end\":[7,31]}}},\"first_pos\":{\"range_start\":[7,16],\"range_end\":[7,31]},\"second_pos\":{\"range_start\":[8,21],\"range_end\":[8,24]},\"second\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[8,21],\"range_end\":[8,25]}}},\"operator\":{\"AssignmentType\":\"Assignment\"},\"pos\":{\"range_start\":[8,19],\"range_end\":[8,20]}}},\"key_name_location\":{\"range_start\":[7,2],\"range_end\":[7,12]},\"value_location\":{\"range_start\":[7,14],\"range_end\":[8,25]},\"pos\":{\"range_start\":[7,1],\"range_end\":[8,25]}}},{\"Class\":{\"name\":\"int\",\"public\":true,\"inner_page_id\":5608633932069881845,\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,14]},\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}}],\"dependents\":[1040919654813280692,17018069723813511702,6944448437676459577,11021445597161914801,6107902802699294681,343,5140352417142422684],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":17002242560366547085,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/float.ei\",\"items\":[{\"Class\":{\"name\":\"float\",\"public\":true,\"inner_page_id\":3409397694460584632,\"name_pos\":{\"range_start\":[3,11],\"range_end\":[3,16]},\"pos\":{\"range_start\":[3,5],\"range_end\":[3,19]},\"hash\":\"13722322625474230682010711464239761497024791433370234835858\"}}],\"dependents\":[7659122406100850684,343],\"dependencies\":[]},{\"hash\":3409397694460584632,\"inner\":17002242560366547085,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/float.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":5608633932069881845,\"inner\":7659122406100850684,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/int.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Convert integer to string\",\"pos\":{\"range_start\":[10,20],\"range_end\":[10,47]}}},\"key_name_location\":{\"range_start\":[10,6],\"range_end\":[10,16]},\"value_location\":{\"range_start\":[10,18],\"range_end\":[10,47]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,47]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[11,23],\"range_end\":[11,30]}}},\"key_name_location\":{\"range_start\":[11,6],\"range_end\":[11,19]},\"value_location\":{\"range_start\":[11,21],\"range_end\":[11,30]},\"pos\":{\"range_start\":[11,5],\"range_end\":[11,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 19; print(age.toString()); //19 \",\"pos\":{\"range_start\":[12,16],\"range_end\":[15,6]}}},\"key_name_location\":{\"range_start\":[12,6],\"range_end\":[12,12]},\"value_location\":{\"range_start\":[12,14],\"range_end\":[15,6]},\"pos\":{\"range_start\":[12,5],\"range_end\":[15,6]}}},{\"NativeFunction\":{\"name\":\"toString\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"public\":true,\"name_pos\":{\"range_start\":[16,12],\"range_end\":[16,20]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[16,25],\"range_end\":[16,30]},\"pos\":{\"range_start\":[16,9],\"range_end\":[16,11]},\"hash\":\"24628717537924315329187161179619419420196352117225379181152\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get integer's size\\\\n\",\"pos\":{\"range_start\":[18,20],\"range_end\":[18,42]}}},\"key_name_location\":{\"range_start\":[18,6],\"range_end\":[18,16]},\"value_location\":{\"range_start\":[18,18],\"range_end\":[18,42]},\"pos\":{\"range_start\":[18,5],\"range_end\":[18,42]}}},{\"FileKey\":{\"key_name\":\"volatile\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[19,17],\"range_end\":[19,21]}}},\"key_name_location\":{\"range_start\":[19,6],\"range_end\":[19,13]},\"value_location\":{\"range_start\":[19,15],\"range_end\":[19,21]},\"pos\":{\"range_start\":[19,5],\"range_end\":[19,21]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[20,23],\"range_end\":[20,30]}}},\"key_name_location\":{\"range_start\":[20,6],\"range_end\":[20,19]},\"value_location\":{\"range_start\":[20,21],\"range_end\":[20,30]},\"pos\":{\"range_start\":[20,5],\"range_end\":[20,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 12; print(age.getSize()); //i8 \",\"pos\":{\"range_start\":[21,16],\"range_end\":[24,6]}}},\"key_name_location\":{\"range_start\":[21,6],\"range_end\":[21,12]},\"value_location\":{\"range_start\":[21,14],\"range_end\":[24,6]},\"pos\":{\"range_start\":[21,5],\"range_end\":[24,6]}}},{\"NativeFunction\":{\"name\":\"getSize\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"public\":true,\"name_pos\":{\"range_start\":[25,12],\"range_end\":[25,19]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[25,24],\"range_end\":[25,29]},\"pos\":{\"range_start\":[25,9],\"range_end\":[25,11]},\"hash\":\"143702061811383210325018116199178252331812201351004210023184102226\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get integer as float\",\"pos\":{\"range_start\":[27,20],\"range_end\":[27,42]}}},\"key_name_location\":{\"range_start\":[27,6],\"range_end\":[27,16]},\"value_location\":{\"range_start\":[27,18],\"range_end\":[27,42]},\"pos\":{\"range_start\":[27,5],\"range_end\":[27,42]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[28,23],\"range_end\":[28,30]}}},\"key_name_location\":{\"range_start\":[28,6],\"range_end\":[28,19]},\"value_location\":{\"range_start\":[28,21],\"range_end\":[28,30]},\"pos\":{\"range_start\":[28,5],\"range_end\":[28,30]}}},{\"FileKey\":{\"key_name\":\"avoidUsage\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[29,19],\"range_end\":[29,23]}}},\"key_name_location\":{\"range_start\":[29,6],\"range_end\":[29,15]},\"value_location\":{\"range_start\":[29,17],\"range_end\":[29,23]},\"pos\":{\"range_start\":[29,5],\"range_end\":[29,23]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 12; print(age.asFloat); //12.0 \",\"pos\":{\"range_start\":[30,16],\"range_end\":[33,6]}}},\"key_name_location\":{\"range_start\":[30,6],\"range_end\":[30,12]},\"value_location\":{\"range_start\":[30,14],\"range_end\":[33,6]},\"pos\":{\"range_start\":[30,5],\"range_end\":[33,6]}}},{\"NativeFunction\":{\"name\":\"asFloat\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"float\",\"pos\":{\"range_start\":[3,5],\"range_end\":[3,19]},\"hash\":\"13722322625474230682010711464239761497024791433370234835858\"}},\"public\":true,\"name_pos\":{\"range_start\":[34,12],\"range_end\":[34,19]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[34,24],\"range_end\":[34,28]},\"pos\":{\"range_start\":[34,9],\"range_end\":[34,11]},\"hash\":\"188291122131049922814846871141211231654920151875815324419910579\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get integer as string\",\"pos\":{\"range_start\":[36,20],\"range_end\":[36,43]}}},\"key_name_location\":{\"range_start\":[36,6],\"range_end\":[36,16]},\"value_location\":{\"range_start\":[36,18],\"range_end\":[36,43]},\"pos\":{\"range_start\":[36,5],\"range_end\":[36,43]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[37,23],\"range_end\":[37,30]}}},\"key_name_location\":{\"range_start\":[37,6],\"range_end\":[37,19]},\"value_location\":{\"range_start\":[37,21],\"range_end\":[37,30]},\"pos\":{\"range_start\":[37,5],\"range_end\":[37,30]}}},{\"FileKey\":{\"key_name\":\"avoidUsage\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[38,19],\"range_end\":[38,23]}}},\"key_name_location\":{\"range_start\":[38,6],\"range_end\":[38,15]},\"value_location\":{\"range_start\":[38,17],\"range_end\":[38,23]},\"pos\":{\"range_start\":[38,5],\"range_end\":[38,23]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 12; print(age.asString()); //12 \",\"pos\":{\"range_start\":[39,16],\"range_end\":[42,6]}}},\"key_name_location\":{\"range_start\":[39,6],\"range_end\":[39,12]},\"value_location\":{\"range_start\":[39,14],\"range_end\":[42,6]},\"pos\":{\"range_start\":[39,5],\"range_end\":[42,6]}}},{\"NativeFunction\":{\"name\":\"asString\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"float\",\"pos\":{\"range_start\":[3,5],\"range_end\":[3,19]},\"hash\":\"13722322625474230682010711464239761497024791433370234835858\"}},\"public\":true,\"name_pos\":{\"range_start\":[43,12],\"range_end\":[43,20]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[43,25],\"range_end\":[43,29]},\"pos\":{\"range_start\":[43,9],\"range_end\":[43,11]},\"hash\":\"7151191338352863521212314297012182891918310218423291166\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[45,20],\"range_end\":[45,30]}}},\"key_name_location\":{\"range_start\":[45,6],\"range_end\":[45,16]},\"value_location\":{\"range_start\":[45,18],\"range_end\":[45,30]},\"pos\":{\"range_start\":[45,5],\"range_end\":[45,30]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[46,23],\"range_end\":[46,30]}}},\"key_name_location\":{\"range_start\":[46,6],\"range_end\":[46,19]},\"value_location\":{\"range_start\":[46,21],\"range_end\":[46,30]},\"pos\":{\"range_start\":[46,5],\"range_end\":[46,30]}}},{\"FileKey\":{\"key_name\":\"avoidUsage\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[47,19],\"range_end\":[47,23]}}},\"key_name_location\":{\"range_start\":[47,6],\"range_end\":[47,15]},\"value_location\":{\"range_start\":[47,17],\"range_end\":[47,23]},\"pos\":{\"range_start\":[47,5],\"range_end\":[47,23]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 12; print(age.getType()); //int \",\"pos\":{\"range_start\":[48,16],\"range_end\":[51,6]}}},\"key_name_location\":{\"range_start\":[48,6],\"range_end\":[48,12]},\"value_location\":{\"range_start\":[48,14],\"range_end\":[51,6]},\"pos\":{\"range_start\":[48,5],\"range_end\":[51,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"inner_page_id\":4071273092449339899,\"public\":true,\"name_pos\":{\"range_start\":[52,12],\"range_end\":[52,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[52,24],\"range_end\":[52,30]},\"pos\":{\"range_start\":[52,9],\"range_end\":[54,6]},\"hash\":\"60192001222116020312923579224130213190166201131672188327853158\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":4071273092449339899,\"inner\":5608633932069881845,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/int.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"int\",\"pos\":{\"range_start\":[53,13],\"range_end\":[53,18]}}},\"keyword_pos\":{\"range_start\":[53,9],\"range_end\":[53,12]},\"value_position\":{\"range_start\":[53,14],\"range_end\":[53,19]},\"pos\":{\"range_start\":[53,12],\"range_end\":[53,19]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":5608633932069881845,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":483035047079046073,\"inner\":1040919654813280692,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/array.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[10,20],\"range_end\":[10,30]}}},\"key_name_location\":{\"range_start\":[10,6],\"range_end\":[10,16]},\"value_location\":{\"range_start\":[10,18],\"range_end\":[10,30]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v arr = [12]; print(arr.getType()); //array \",\"pos\":{\"range_start\":[11,16],\"range_end\":[14,6]}}},\"key_name_location\":{\"range_start\":[11,6],\"range_end\":[11,12]},\"value_location\":{\"range_start\":[11,14],\"range_end\":[14,6]},\"pos\":{\"range_start\":[11,5],\"range_end\":[14,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"inner_page_id\":11492668558661815653,\"public\":true,\"name_pos\":{\"range_start\":[15,12],\"range_end\":[15,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[15,24],\"range_end\":[15,30]},\"pos\":{\"range_start\":[15,9],\"range_end\":[17,6]},\"hash\":\"130211250301048679251113105522444138220012208901382518296246\"}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get size of array\",\"pos\":{\"range_start\":[19,20],\"range_end\":[19,39]}}},\"key_name_location\":{\"range_start\":[19,6],\"range_end\":[19,16]},\"value_location\":{\"range_start\":[19,18],\"range_end\":[19,39]},\"pos\":{\"range_start\":[19,5],\"range_end\":[19,39]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[20,13],\"range_end\":[20,17]}}},\"key_name_location\":{\"range_start\":[20,6],\"range_end\":[20,11]},\"value_location\":{\"range_start\":[20,12],\"range_end\":[20,17]},\"pos\":{\"range_start\":[20,5],\"range_end\":[20,17]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v arr = [12]; print(arr.len()); //1 \",\"pos\":{\"range_start\":[21,16],\"range_end\":[24,6]}}},\"key_name_location\":{\"range_start\":[21,6],\"range_end\":[21,12]},\"value_location\":{\"range_start\":[21,14],\"range_end\":[24,6]},\"pos\":{\"range_start\":[21,5],\"range_end\":[24,6]}}},{\"NativeFunction\":{\"name\":\"len\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"public\":true,\"name_pos\":{\"range_start\":[25,12],\"range_end\":[25,15]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[25,20],\"range_end\":[25,22]},\"pos\":{\"range_start\":[25,9],\"range_end\":[25,11]},\"hash\":\"24718614513316620619122310410232209138458579329214213175169241158\",\"no_return\":false}}],\"dependents\":[],\"dependencies\":[{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":11492668558661815653,\"inner\":483035047079046073,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/array.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"array\",\"pos\":{\"range_start\":[16,13],\"range_end\":[16,20]}}},\"keyword_pos\":{\"range_start\":[16,9],\"range_end\":[16,12]},\"value_position\":{\"range_start\":[16,14],\"range_end\":[16,21]},\"pos\":{\"range_start\":[16,12],\"range_end\":[16,21]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":483035047079046073,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":10786911180507227217,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/char.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"char\",\"public\":true,\"inner_page_id\":1160403363994626206,\"name_pos\":{\"range_start\":[4,11],\"range_end\":[4,15]},\"pos\":{\"range_start\":[4,5],\"range_end\":[13,2]},\"hash\":\"103118118911811063118871621871702882041741977917835192117200\"}}],\"dependents\":[17018069723813511702,343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":1160403363994626206,\"inner\":10786911180507227217,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/char.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[5,20],\"range_end\":[5,30]}}},\"key_name_location\":{\"range_start\":[5,6],\"range_end\":[5,16]},\"value_location\":{\"range_start\":[5,18],\"range_end\":[5,30]},\"pos\":{\"range_start\":[5,5],\"range_end\":[5,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v chr = 'e'; print(chr.getType()); //char \",\"pos\":{\"range_start\":[6,16],\"range_end\":[9,6]}}},\"key_name_location\":{\"range_start\":[6,6],\"range_end\":[6,12]},\"value_location\":{\"range_start\":[6,14],\"range_end\":[9,6]},\"pos\":{\"range_start\":[6,5],\"range_end\":[9,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"inner_page_id\":10642572764320245948,\"public\":true,\"name_pos\":{\"range_start\":[10,12],\"range_end\":[10,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[10,24],\"range_end\":[10,30]},\"pos\":{\"range_start\":[10,9],\"range_end\":[12,6]},\"hash\":\"95244231968453510410888914717131508012185116759713422091\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":10642572764320245948,\"inner\":1160403363994626206,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/char.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"char\",\"pos\":{\"range_start\":[11,13],\"range_end\":[11,19]}}},\"keyword_pos\":{\"range_start\":[11,9],\"range_end\":[11,12]},\"value_position\":{\"range_start\":[11,14],\"range_end\":[11,20]},\"pos\":{\"range_start\":[11,12],\"range_end\":[11,20]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":1160403363994626206,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":6944448437676459577,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/vector.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,13]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,15]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,8],\"range_end\":[5,10]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,12]},\"hash\":\"7659122406100850684\"}},{\"Class\":{\"name\":\"vector\",\"public\":true,\"inner_page_id\":12661645432553909037,\"name_pos\":{\"range_start\":[7,11],\"range_end\":[7,17]},\"pos\":{\"range_start\":[7,5],\"range_end\":[24,2]},\"hash\":\"796044561259456185180188140746757239192134135131702502165918\"}}],\"dependents\":[17018069723813511702,343,5140352417142422684],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":12661645432553909037,\"inner\":6944448437676459577,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/vector.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[8,20],\"range_end\":[8,30]}}},\"key_name_location\":{\"range_start\":[8,6],\"range_end\":[8,16]},\"value_location\":{\"range_start\":[8,18],\"range_end\":[8,30]},\"pos\":{\"range_start\":[8,5],\"range_end\":[8,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v vec : [int, *] = [12]; print(vec.getType()); //vector \",\"pos\":{\"range_start\":[9,16],\"range_end\":[12,6]}}},\"key_name_location\":{\"range_start\":[9,6],\"range_end\":[9,12]},\"value_location\":{\"range_start\":[9,14],\"range_end\":[12,6]},\"pos\":{\"range_start\":[9,5],\"range_end\":[12,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"inner_page_id\":14459043340318169123,\"public\":true,\"name_pos\":{\"range_start\":[13,12],\"range_end\":[13,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[13,24],\"range_end\":[13,30]},\"pos\":{\"range_start\":[13,9],\"range_end\":[15,6]},\"hash\":\"844614424016071331362381381692341253858765155249251210176227122\"}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get size of vector\",\"pos\":{\"range_start\":[17,20],\"range_end\":[17,40]}}},\"key_name_location\":{\"range_start\":[17,6],\"range_end\":[17,16]},\"value_location\":{\"range_start\":[17,18],\"range_end\":[17,40]},\"pos\":{\"range_start\":[17,5],\"range_end\":[17,40]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[18,15],\"range_end\":[18,19]}}},\"key_name_location\":{\"range_start\":[18,6],\"range_end\":[18,11]},\"value_location\":{\"range_start\":[18,13],\"range_end\":[18,19]},\"pos\":{\"range_start\":[18,5],\"range_end\":[18,19]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v vec : [int, *] = [12]; print(vec.len()); //1 \",\"pos\":{\"range_start\":[19,16],\"range_end\":[22,6]}}},\"key_name_location\":{\"range_start\":[19,6],\"range_end\":[19,12]},\"value_location\":{\"range_start\":[19,14],\"range_end\":[22,6]},\"pos\":{\"range_start\":[19,5],\"range_end\":[22,6]}}},{\"NativeFunction\":{\"name\":\"len\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"public\":true,\"name_pos\":{\"range_start\":[23,12],\"range_end\":[23,15]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[23,20],\"range_end\":[23,22]},\"pos\":{\"range_start\":[23,9],\"range_end\":[23,11]},\"hash\":\"4311514822015532390812714724759612718114324970235218185244\",\"no_return\":false}}],\"dependents\":[],\"dependencies\":[{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":14459043340318169123,\"inner\":12661645432553909037,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/vector.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"vector\",\"pos\":{\"range_start\":[14,13],\"range_end\":[14,21]}}},\"keyword_pos\":{\"range_start\":[14,9],\"range_end\":[14,12]},\"value_position\":{\"range_start\":[14,14],\"range_end\":[14,22]},\"pos\":{\"range_start\":[14,12],\"range_end\":[14,22]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":12661645432553909037,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":14625023188502919032,\"inner\":17018069723813511702,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/string.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[13,20],\"range_end\":[13,30]}}},\"key_name_location\":{\"range_start\":[13,6],\"range_end\":[13,16]},\"value_location\":{\"range_start\":[13,18],\"range_end\":[13,30]},\"pos\":{\"range_start\":[13,5],\"range_end\":[13,30]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[14,23],\"range_end\":[14,30]}}},\"key_name_location\":{\"range_start\":[14,6],\"range_end\":[14,19]},\"value_location\":{\"range_start\":[14,21],\"range_end\":[14,30]},\"pos\":{\"range_start\":[14,5],\"range_end\":[14,30]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"inner_page_id\":17129635118420124386,\"public\":true,\"name_pos\":{\"range_start\":[15,12],\"range_end\":[15,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[15,24],\"range_end\":[15,30]},\"pos\":{\"range_start\":[15,9],\"range_end\":[17,6]},\"hash\":\"13110241521010915794122884111310718319916132236100102341173157\"}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get size of string\",\"pos\":{\"range_start\":[19,20],\"range_end\":[19,40]}}},\"key_name_location\":{\"range_start\":[19,6],\"range_end\":[19,16]},\"value_location\":{\"range_start\":[19,18],\"range_end\":[19,40]},\"pos\":{\"range_start\":[19,5],\"range_end\":[19,40]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[20,23],\"range_end\":[20,30]}}},\"key_name_location\":{\"range_start\":[20,6],\"range_end\":[20,19]},\"value_location\":{\"range_start\":[20,21],\"range_end\":[20,30]},\"pos\":{\"range_start\":[20,5],\"range_end\":[20,30]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[21,15],\"range_end\":[21,19]}}},\"key_name_location\":{\"range_start\":[21,6],\"range_end\":[21,11]},\"value_location\":{\"range_start\":[21,13],\"range_end\":[21,19]},\"pos\":{\"range_start\":[21,5],\"range_end\":[21,19]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"ellie\\\\\\\"; print(name.len()); //5 \",\"pos\":{\"range_start\":[22,16],\"range_end\":[25,6]}}},\"key_name_location\":{\"range_start\":[22,6],\"range_end\":[22,12]},\"value_location\":{\"range_start\":[22,14],\"range_end\":[25,6]},\"pos\":{\"range_start\":[22,5],\"range_end\":[25,6]}}},{\"NativeFunction\":{\"name\":\"len\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"public\":true,\"name_pos\":{\"range_start\":[26,12],\"range_end\":[26,15]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[26,20],\"range_end\":[26,22]},\"pos\":{\"range_start\":[26,9],\"range_end\":[26,11]},\"hash\":\"2241102125237161631162036544157247130100118141127371013551203113\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Make string upperCASE\",\"pos\":{\"range_start\":[28,20],\"range_end\":[28,43]}}},\"key_name_location\":{\"range_start\":[28,6],\"range_end\":[28,16]},\"value_location\":{\"range_start\":[28,18],\"range_end\":[28,43]},\"pos\":{\"range_start\":[28,5],\"range_end\":[28,43]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[29,23],\"range_end\":[29,30]}}},\"key_name_location\":{\"range_start\":[29,6],\"range_end\":[29,19]},\"value_location\":{\"range_start\":[29,21],\"range_end\":[29,30]},\"pos\":{\"range_start\":[29,5],\"range_end\":[29,30]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[30,15],\"range_end\":[30,19]}}},\"key_name_location\":{\"range_start\":[30,6],\"range_end\":[30,11]},\"value_location\":{\"range_start\":[30,13],\"range_end\":[30,19]},\"pos\":{\"range_start\":[30,5],\"range_end\":[30,19]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"ellie\\\\\\\"; print(name.uprCase()); //ELLIE \",\"pos\":{\"range_start\":[31,16],\"range_end\":[34,6]}}},\"key_name_location\":{\"range_start\":[31,6],\"range_end\":[31,12]},\"value_location\":{\"range_start\":[31,14],\"range_end\":[34,6]},\"pos\":{\"range_start\":[31,5],\"range_end\":[34,6]}}},{\"NativeFunction\":{\"name\":\"uprCase\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"public\":true,\"name_pos\":{\"range_start\":[35,12],\"range_end\":[35,19]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[35,24],\"range_end\":[35,29]},\"pos\":{\"range_start\":[35,9],\"range_end\":[35,11]},\"hash\":\"225183244162111882454281154218194266321121102231324422116155156\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Make string loweRcase\",\"pos\":{\"range_start\":[37,20],\"range_end\":[37,43]}}},\"key_name_location\":{\"range_start\":[37,6],\"range_end\":[37,16]},\"value_location\":{\"range_start\":[37,18],\"range_end\":[37,43]},\"pos\":{\"range_start\":[37,5],\"range_end\":[37,43]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[38,23],\"range_end\":[38,30]}}},\"key_name_location\":{\"range_start\":[38,6],\"range_end\":[38,19]},\"value_location\":{\"range_start\":[38,21],\"range_end\":[38,30]},\"pos\":{\"range_start\":[38,5],\"range_end\":[38,30]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[39,15],\"range_end\":[39,19]}}},\"key_name_location\":{\"range_start\":[39,6],\"range_end\":[39,11]},\"value_location\":{\"range_start\":[39,13],\"range_end\":[39,19]},\"pos\":{\"range_start\":[39,5],\"range_end\":[39,19]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"ELLIE\\\\\\\"; print(name.lwrCase()); //ellie \",\"pos\":{\"range_start\":[40,16],\"range_end\":[43,6]}}},\"key_name_location\":{\"range_start\":[40,6],\"range_end\":[40,12]},\"value_location\":{\"range_start\":[40,14],\"range_end\":[43,6]},\"pos\":{\"range_start\":[40,5],\"range_end\":[43,6]}}},{\"NativeFunction\":{\"name\":\"lwrCase\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"public\":true,\"name_pos\":{\"range_start\":[44,12],\"range_end\":[44,19]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[44,24],\"range_end\":[44,29]},\"pos\":{\"range_start\":[44,9],\"range_end\":[44,11]},\"hash\":\"9021253219137253312078252187141901541313189388106498713021\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Convert single letter to char[?]Gives empty char ('\\\\0') if string is not convertable\",\"pos\":{\"range_start\":[46,20],\"range_end\":[46,106]}}},\"key_name_location\":{\"range_start\":[46,6],\"range_end\":[46,16]},\"value_location\":{\"range_start\":[46,18],\"range_end\":[46,106]},\"pos\":{\"range_start\":[46,5],\"range_end\":[46,106]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[47,15],\"range_end\":[47,19]}}},\"key_name_location\":{\"range_start\":[47,6],\"range_end\":[47,11]},\"value_location\":{\"range_start\":[47,13],\"range_end\":[47,19]},\"pos\":{\"range_start\":[47,5],\"range_end\":[47,19]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[48,23],\"range_end\":[48,30]}}},\"key_name_location\":{\"range_start\":[48,6],\"range_end\":[48,19]},\"value_location\":{\"range_start\":[48,21],\"range_end\":[48,30]},\"pos\":{\"range_start\":[48,5],\"range_end\":[48,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"a\\\\\\\"; v chr : char = name.toChar(); \",\"pos\":{\"range_start\":[49,16],\"range_end\":[52,6]}}},\"key_name_location\":{\"range_start\":[49,6],\"range_end\":[49,12]},\"value_location\":{\"range_start\":[49,14],\"range_end\":[52,6]},\"pos\":{\"range_start\":[49,5],\"range_end\":[52,6]}}},{\"NativeFunction\":{\"name\":\"toChar\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"char\",\"pos\":{\"range_start\":[4,5],\"range_end\":[13,2]},\"hash\":\"103118118911811063118871621871702882041741977917835192117200\"}},\"public\":true,\"name_pos\":{\"range_start\":[53,12],\"range_end\":[53,18]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[53,23],\"range_end\":[53,26]},\"pos\":{\"range_start\":[53,9],\"range_end\":[53,11]},\"hash\":\"12115775226186255131151411012467517122912315031185205157671261202\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Convert string to char vec\",\"pos\":{\"range_start\":[55,20],\"range_end\":[55,48]}}},\"key_name_location\":{\"range_start\":[55,6],\"range_end\":[55,16]},\"value_location\":{\"range_start\":[55,18],\"range_end\":[55,48]},\"pos\":{\"range_start\":[55,5],\"range_end\":[55,48]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[56,23],\"range_end\":[56,30]}}},\"key_name_location\":{\"range_start\":[56,6],\"range_end\":[56,19]},\"value_location\":{\"range_start\":[56,21],\"range_end\":[56,30]},\"pos\":{\"range_start\":[56,5],\"range_end\":[56,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"ahmet\\\\\\\"; v chars = name.chars(); print(name.len())); //5 \",\"pos\":{\"range_start\":[57,16],\"range_end\":[61,6]}}},\"key_name_location\":{\"range_start\":[57,6],\"range_end\":[57,12]},\"value_location\":{\"range_start\":[57,14],\"range_end\":[61,6]},\"pos\":{\"range_start\":[57,5],\"range_end\":[61,6]}}},{\"NativeFunction\":{\"name\":\"chars\",\"parameters\":[],\"return_type\":{\"ParentGeneric\":{\"rtype\":\"vector\",\"parent_pos\":{\"range_start\":[7,5],\"range_end\":[24,2]},\"generics\":[{\"value\":{\"Generic\":{\"rtype\":\"char\",\"pos\":{\"range_start\":[4,5],\"range_end\":[13,2]},\"hash\":\"103118118911811063118871621871702882041741977917835192117200\"}},\"pos\":{\"range_start\":[7,5],\"range_end\":[24,2]}}],\"hash\":\"796044561259456185180188140746757239192134135131702502165918\"}},\"public\":true,\"name_pos\":{\"range_start\":[62,12],\"range_end\":[62,17]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[62,22],\"range_end\":[62,30]},\"pos\":{\"range_start\":[62,9],\"range_end\":[62,11]},\"hash\":\"1091929058139768121515720235170102181219521471621361052157953\",\"no_return\":false}}],\"dependents\":[],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":17129635118420124386,\"inner\":14625023188502919032,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/string.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"string\",\"pos\":{\"range_start\":[16,13],\"range_end\":[16,21]}}},\"keyword_pos\":{\"range_start\":[16,9],\"range_end\":[16,12]},\"value_position\":{\"range_start\":[16,14],\"range_end\":[16,22]},\"pos\":{\"range_start\":[16,12],\"range_end\":[16,22]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":14625023188502919032,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":3495072309614759863,\"inner\":9705453923843755915,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/void.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[9,20],\"range_end\":[9,30]}}},\"key_name_location\":{\"range_start\":[9,6],\"range_end\":[9,16]},\"value_location\":{\"range_start\":[9,18],\"range_end\":[9,30]},\"pos\":{\"range_start\":[9,5],\"range_end\":[9,30]}}},{\"FileKey\":{\"key_name\":\"avoidUsage\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[10,19],\"range_end\":[10,23]}}},\"key_name_location\":{\"range_start\":[10,6],\"range_end\":[10,15]},\"value_location\":{\"range_start\":[10,17],\"range_end\":[10,23]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,23]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"inner_page_id\":9429856330251488458,\"public\":true,\"name_pos\":{\"range_start\":[11,12],\"range_end\":[11,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[11,24],\"range_end\":[11,30]},\"pos\":{\"range_start\":[11,9],\"range_end\":[13,6]},\"hash\":\"191377872202909025421510112121124816325507417017337100146243\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":9705453923843755915,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":9429856330251488458,\"inner\":3495072309614759863,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/void.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"void\",\"pos\":{\"range_start\":[12,13],\"range_end\":[12,19]}}},\"keyword_pos\":{\"range_start\":[12,9],\"range_end\":[12,12]},\"value_position\":{\"range_start\":[12,14],\"range_end\":[12,20]},\"pos\":{\"range_start\":[12,12],\"range_end\":[12,20]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":3495072309614759863,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":9705453923843755915,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":2265775706785941188,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/collective.ei\",\"items\":[{\"Class\":{\"name\":\"collective\",\"public\":true,\"inner_page_id\":11414788415179099479,\"name_pos\":{\"range_start\":[3,11],\"range_end\":[3,21]},\"pos\":{\"range_start\":[3,5],\"range_end\":[3,36]},\"hash\":\"21582110150742503264200139311261302247315218310529021419121687\"}}],\"dependents\":[343],\"dependencies\":[]},{\"hash\":11414788415179099479,\"inner\":2265775706785941188,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/collective.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":2265775706785941188,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":5302116792433123142,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/bool.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"bool\",\"public\":true,\"inner_page_id\":6686950268651799876,\"name_pos\":{\"range_start\":[4,11],\"range_end\":[4,15]},\"pos\":{\"range_start\":[4,5],\"range_end\":[13,2]},\"hash\":\"2135911184221540236159158210147881632372242314812711121317224\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":6686950268651799876,\"inner\":5302116792433123142,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/bool.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[5,20],\"range_end\":[5,30]}}},\"key_name_location\":{\"range_start\":[5,6],\"range_end\":[5,16]},\"value_location\":{\"range_start\":[5,18],\"range_end\":[5,30]},\"pos\":{\"range_start\":[5,5],\"range_end\":[5,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v bool = true; print(bool.getType()); //bool \",\"pos\":{\"range_start\":[6,16],\"range_end\":[9,6]}}},\"key_name_location\":{\"range_start\":[6,6],\"range_end\":[6,12]},\"value_location\":{\"range_start\":[6,14],\"range_end\":[9,6]},\"pos\":{\"range_start\":[6,5],\"range_end\":[9,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"inner_page_id\":2214663366491322820,\"public\":true,\"name_pos\":{\"range_start\":[10,12],\"range_end\":[10,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[10,24],\"range_end\":[10,30]},\"pos\":{\"range_start\":[10,9],\"range_end\":[12,6]},\"hash\":\"23222322823505365227402001517110442178533713826173238711131\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":5302116792433123142,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":2214663366491322820,\"inner\":6686950268651799876,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/bool.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"bool\",\"pos\":{\"range_start\":[11,13],\"range_end\":[11,19]}}},\"keyword_pos\":{\"range_start\":[11,9],\"range_end\":[11,12]},\"value_position\":{\"range_start\":[11,14],\"range_end\":[11,20]},\"pos\":{\"range_start\":[11,12],\"range_end\":[11,20]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":6686950268651799876,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":5302116792433123142,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":2596114674330710893,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/cloak.ei\",\"items\":[{\"Class\":{\"name\":\"cloak\",\"public\":true,\"inner_page_id\":13841180736599236069,\"name_pos\":{\"range_start\":[3,11],\"range_end\":[3,16]},\"pos\":{\"range_start\":[3,5],\"range_end\":[3,19]},\"hash\":\"2515594167677910624925416911492437313014197023110915724735104\"}}],\"dependents\":[343],\"dependencies\":[]},{\"hash\":13841180736599236069,\"inner\":2596114674330710893,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/cloak.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":2596114674330710893,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":7292167443911913662,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/function.ei\",\"items\":[{\"Import\":{\"path\":\"thread\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,13]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,15]},\"hash\":\"6107902802699294681\"}},{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,8],\"range_end\":[5,13]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"function\",\"public\":true,\"inner_page_id\":12182733780946041089,\"name_pos\":{\"range_start\":[7,11],\"range_end\":[7,19]},\"pos\":{\"range_start\":[7,5],\"range_end\":[10,2]},\"hash\":\"1921191591210038230521181062144421135911162151722913013811018731\"}}],\"dependents\":[343,6107902802699294681],\"dependencies\":[{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":6107902802699294681,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/thread.ei\",\"items\":[{\"Import\":{\"path\":\"error\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[0,7],\"range_end\":[0,11]},\"pos\":{\"range_start\":[0,0],\"range_end\":[0,13]},\"hash\":\"11021445597161914801\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[1,8],\"range_end\":[1,10]},\"pos\":{\"range_start\":[1,1],\"range_end\":[1,12]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"function\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[2,8],\"range_end\":[2,15]},\"pos\":{\"range_start\":[2,1],\"range_end\":[2,17]},\"hash\":\"7292167443911913662\"}},{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"callStack\",\"public\":true,\"inner_page_id\":13542887211116671266,\"name_pos\":{\"range_start\":[5,11],\"range_end\":[5,20]},\"pos\":{\"range_start\":[5,5],\"range_end\":[8,2]},\"hash\":\"2127318592275301791620471016810175152236811723217915615229\"}},{\"NativeFunction\":{\"name\":\"panic\",\"parameters\":[{\"name\":\"error\",\"rtype\":{\"Generic\":{\"rtype\":\"error\",\"pos\":{\"range_start\":[9,5],\"range_end\":[17,2]},\"hash\":\"12244136612518841101851037720193158181881742823930386231237\"}},\"pos\":{\"range_start\":[10,14],\"range_end\":[10,19]},\"multi_capture\":false}],\"return_type\":{\"Generic\":{\"rtype\":\"void\",\"pos\":{\"range_start\":[10,8],\"range_end\":[10,13]},\"hash\":\"\"}},\"public\":true,\"name_pos\":{\"range_start\":[10,8],\"range_end\":[10,13]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,7]},\"hash\":\"\",\"no_return\":true}},{\"NativeFunction\":{\"name\":\"sleep\",\"parameters\":[{\"name\":\"ms\",\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"pos\":{\"range_start\":[11,14],\"range_end\":[11,16]},\"multi_capture\":false}],\"return_type\":{\"Generic\":{\"rtype\":\"void\",\"pos\":{\"range_start\":[11,8],\"range_end\":[11,13]},\"hash\":\"\"}},\"public\":true,\"name_pos\":{\"range_start\":[11,8],\"range_end\":[11,13]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[11,5],\"range_end\":[11,7]},\"hash\":\"\",\"no_return\":true}},{\"NativeFunction\":{\"name\":\"create_thread\",\"parameters\":[{\"name\":\"inside\",\"rtype\":{\"Generic\":{\"rtype\":\"function\",\"pos\":{\"range_start\":[7,5],\"range_end\":[10,2]},\"hash\":\"1921191591210038230521181062144421135911162151722913013811018731\"}},\"pos\":{\"range_start\":[12,22],\"range_end\":[12,28]},\"multi_capture\":false}],\"return_type\":{\"Generic\":{\"rtype\":\"void\",\"pos\":{\"range_start\":[12,8],\"range_end\":[12,21]},\"hash\":\"\"}},\"public\":true,\"name_pos\":{\"range_start\":[12,8],\"range_end\":[12,21]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[12,5],\"range_end\":[12,7]},\"hash\":\"\",\"no_return\":true}}],\"dependents\":[7292167443911913662,15576188344227026274,5140352417142422684],\"dependencies\":[{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7292167443911913662,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":11021445597161914801,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[0,7],\"range_end\":[0,9]},\"pos\":{\"range_start\":[0,0],\"range_end\":[0,11]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[1,8],\"range_end\":[1,13]},\"pos\":{\"range_start\":[1,1],\"range_end\":[1,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"cursorPosition\",\"public\":true,\"inner_page_id\":13005709814183640469,\"name_pos\":{\"range_start\":[3,11],\"range_end\":[3,25]},\"pos\":{\"range_start\":[3,5],\"range_end\":[7,2]},\"hash\":\"16063117218154150201239107153218171231262091719032014815678222\"}},{\"Class\":{\"name\":\"error\",\"public\":true,\"inner_page_id\":16244978465180885342,\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,16]},\"pos\":{\"range_start\":[9,5],\"range_end\":[17,2]},\"hash\":\"12244136612518841101851037720193158181881742823930386231237\"}}],\"dependents\":[6107902802699294681,343,5140352417142422684],\"dependencies\":[{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":13005709814183640469,\"inner\":11021445597161914801,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[{\"Constructor\":{\"parameters\":[{\"name\":\"line\",\"pos\":{\"range_start\":[4,8],\"range_end\":[4,12]}},{\"name\":\"column\",\"pos\":{\"range_start\":[4,14],\"range_end\":[4,20]}}],\"inner_page_id\":12745064492113643602,\"name_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[4,5],\"range_end\":[4,22]}}},{\"Variable\":{\"name\":\"line\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[5,9],\"range_end\":[5,22]},\"name_pos\":{\"range_start\":[5,11],\"range_end\":[5,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[5,18],\"range_end\":[5,21]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"hash\":\"1061851101613277147181701085932145212128206198226209238931442107\"}},{\"Variable\":{\"name\":\"column\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[6,9],\"range_end\":[6,24]},\"name_pos\":{\"range_start\":[6,11],\"range_end\":[6,17]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[6,20],\"range_end\":[6,23]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"hash\":\"212276416719314157372291651722673145150252512222456415186119238\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":12745064492113643602,\"inner\":13005709814183640469,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":13005709814183640469,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":16244978465180885342,\"inner\":11021445597161914801,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[{\"Constructor\":{\"parameters\":[{\"name\":\"code\",\"pos\":{\"range_start\":[10,8],\"range_end\":[10,12]}},{\"name\":\"title\",\"pos\":{\"range_start\":[10,14],\"range_end\":[10,19]}},{\"name\":\"message\",\"pos\":{\"range_start\":[10,21],\"range_end\":[10,28]}}],\"inner_page_id\":11827456771894542514,\"name_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,30]}}},{\"Variable\":{\"name\":\"code\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[12,9],\"range_end\":[12,21]},\"name_pos\":{\"range_start\":[12,11],\"range_end\":[12,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[12,17],\"range_end\":[12,20]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"hash\":\"1641901721622496749157103142187215162622321244119109128150244165214\"}},{\"Variable\":{\"name\":\"title\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[13,9],\"range_end\":[13,22]},\"name_pos\":{\"range_start\":[13,11],\"range_end\":[13,16]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[13,18],\"range_end\":[13,21]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"hash\":\"186667665193220319664239251491061409524272174441921021945\"}},{\"Variable\":{\"name\":\"message\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[14,9],\"range_end\":[14,24]},\"name_pos\":{\"range_start\":[14,11],\"range_end\":[14,18]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[14,20],\"range_end\":[14,23]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"hash\":\"19620215829203190155820250110212582087610222778788585196209247\"}},{\"Variable\":{\"name\":\"path\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[15,9],\"range_end\":[15,24]},\"name_pos\":{\"range_start\":[15,11],\"range_end\":[15,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[15,17],\"range_end\":[15,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"hash\":\"197180129167157161144217697136108892041241431328113022218138196252\"}},{\"Variable\":{\"name\":\"pos\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[16,9],\"range_end\":[16,31]},\"name_pos\":{\"range_start\":[16,11],\"range_end\":[16,14]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[16,16],\"range_end\":[16,30]},\"rtype\":{\"Generic\":{\"rtype\":\"cursorPosition\",\"pos\":{\"range_start\":[3,5],\"range_end\":[7,2]},\"hash\":\"16063117218154150201239107153218171231262091719032014815678222\"}},\"hash\":\"89621224101170904393322527121224989911589901432423930\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":11827456771894542514,\"inner\":16244978465180885342,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":16244978465180885342,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":13542887211116671266,\"inner\":6107902802699294681,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/thread.ei\",\"items\":[{\"Variable\":{\"name\":\"location\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[6,9],\"range_end\":[6,36]},\"name_pos\":{\"range_start\":[6,11],\"range_end\":[6,19]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[6,21],\"range_end\":[6,35]},\"rtype\":{\"Generic\":{\"rtype\":\"cursorPosition\",\"pos\":{\"range_start\":[3,5],\"range_end\":[7,2]},\"hash\":\"16063117218154150201239107153218171231262091719032014815678222\"}},\"hash\":\"2492265514923415812137163155985821718341641762821999162562140\"}},{\"Variable\":{\"name\":\"path\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[7,9],\"range_end\":[7,24]},\"name_pos\":{\"range_start\":[7,11],\"range_end\":[7,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[7,17],\"range_end\":[7,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"hash\":\"225242254221321614376187135103652392366153320115414156234107156\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7292167443911913662,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":12182733780946041089,\"inner\":7292167443911913662,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/function.ei\",\"items\":[{\"Variable\":{\"name\":\"name\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[8,9],\"range_end\":[8,24]},\"name_pos\":{\"range_start\":[8,11],\"range_end\":[8,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[8,17],\"range_end\":[8,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"hash\":\"5616452129187254233172114134122202981061901344711351311975819655\"}},{\"Variable\":{\"name\":\"call_stack\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[9,9],\"range_end\":[9,33]},\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,21]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[9,23],\"range_end\":[9,32]},\"rtype\":{\"Generic\":{\"rtype\":\"callStack\",\"pos\":{\"range_start\":[5,5],\"range_end\":[8,2]},\"hash\":\"2127318592275301791620471016810175152236811723217915615229\"}},\"hash\":\"1712121414915942717322720842271175488139442091445019816024091\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":7292167443911913662,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":15576188344227026274,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/nullAble.ei\",\"items\":[{\"Import\":{\"path\":\"thread\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,13]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,15]},\"hash\":\"6107902802699294681\"}},{\"Class\":{\"name\":\"nullAble\",\"public\":true,\"inner_page_id\":15640620394111153870,\"name_pos\":{\"range_start\":[6,11],\"range_end\":[6,19]},\"pos\":{\"range_start\":[6,5],\"range_end\":[14,2]},\"hash\":\"941431919122187218111158100136904514863149311891716949015743\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":15640620394111153870,\"inner\":15576188344227026274,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/nullAble.ei\",\"items\":[{\"Constructor\":{\"parameters\":[{\"name\":\"type\",\"pos\":{\"range_start\":[7,8],\"range_end\":[7,12]}}],\"inner_page_id\":5828853618396129991,\"name_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[7,5],\"range_end\":[7,14]}}},{\"Variable\":{\"name\":\"type\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[8,9],\"range_end\":[8,23]},\"name_pos\":{\"range_start\":[8,11],\"range_end\":[8,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[8,18],\"range_end\":[8,22]},\"rtype\":{\"Generic\":{\"rtype\":\"Type\",\"pos\":{\"range_start\":[6,20],\"range_end\":[6,24]},\"hash\":\"\"}},\"hash\":\"17833209116185196891499628200184124113151961821081421541481498812\"}},{\"Function\":{\"name\":\"resolve\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"Type\",\"pos\":{\"range_start\":[6,20],\"range_end\":[6,24]},\"hash\":\"\"}},\"inner_page_id\":2477233141964072770,\"public\":true,\"name_pos\":{\"range_start\":[9,12],\"range_end\":[9,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[9,24],\"range_end\":[9,28]},\"pos\":{\"range_start\":[9,9],\"range_end\":[13,6]},\"hash\":\"177133622232471781081912719218418918812813513213818865795619013529\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":15576188344227026274,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":5828853618396129991,\"inner\":15640620394111153870,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/nullAble.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":15640620394111153870,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":2477233141964072770,\"inner\":15640620394111153870,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/nullAble.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":15640620394111153870,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":15576188344227026274,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":16316289034799634696,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/class.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"FileKey\":{\"key_name\":\"dont_fix_variant\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[5,19],\"range_end\":[5,23]}}},\"key_name_location\":{\"range_start\":[5,2],\"range_end\":[5,17]},\"value_location\":{\"range_start\":[5,18],\"range_end\":[5,23]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,23]}}},{\"Class\":{\"name\":\"class\",\"public\":true,\"inner_page_id\":3012240258946764013,\"name_pos\":{\"range_start\":[6,11],\"range_end\":[6,16]},\"pos\":{\"range_start\":[6,5],\"range_end\":[9,2]},\"hash\":\"146792542027325478137341581781631951942852255142810010614718258\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":3012240258946764013,\"inner\":16316289034799634696,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/class.ei\",\"items\":[{\"Variable\":{\"name\":\"name\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[7,9],\"range_end\":[7,24]},\"name_pos\":{\"range_start\":[7,11],\"range_end\":[7,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[7,17],\"range_end\":[7,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"hash\":\"743220020611540742822417038971031812341702011479075233184132120\"}},{\"Variable\":{\"name\":\"hash\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[8,9],\"range_end\":[8,24]},\"name_pos\":{\"range_start\":[8,11],\"range_end\":[8,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[8,17],\"range_end\":[8,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"92854516720524821223914193522204711813310415010820311617524981182\"}},\"hash\":\"142258815318314733218410022123222470153489141741724423733153\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":16316289034799634696,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":12732385855440395869,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/dyn.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"dyn\",\"public\":true,\"inner_page_id\":396269493837328536,\"name_pos\":{\"range_start\":[5,11],\"range_end\":[5,14]},\"pos\":{\"range_start\":[5,5],\"range_end\":[5,17]},\"hash\":\"21012913010510548113023277279313115021360156184710313854142194\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":396269493837328536,\"inner\":12732385855440395869,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/dyn.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":12732385855440395869,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":5140352417142422684,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/mem.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,10]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,12]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"vector\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,8],\"range_end\":[5,13]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,15]},\"hash\":\"6944448437676459577\"}},{\"Import\":{\"path\":\"error\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[6,8],\"range_end\":[6,12]},\"pos\":{\"range_start\":[6,1],\"range_end\":[6,14]},\"hash\":\"11021445597161914801\"}},{\"Import\":{\"path\":\"thread\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[7,8],\"range_end\":[7,13]},\"pos\":{\"range_start\":[7,1],\"range_end\":[7,15]},\"hash\":\"6107902802699294681\"}},{\"Class\":{\"name\":\"rawMemoryData\",\"public\":true,\"inner_page_id\":7075679357176968699,\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,24]},\"pos\":{\"range_start\":[9,5],\"range_end\":[12,2]},\"hash\":\"111121719981201322099812644136186923412313020019377199173201\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":7075679357176968699,\"inner\":5140352417142422684,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/mem.ei\",\"items\":[{\"Variable\":{\"name\":\"type_id\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[10,9],\"range_end\":[10,24]},\"name_pos\":{\"range_start\":[10,11],\"range_end\":[10,18]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[10,20],\"range_end\":[10,23]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"hash\":\"24111216843183402035921091231901910324124372222607157174134214\"}},{\"Variable\":{\"name\":\"data\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[11,9],\"range_end\":[11,26]},\"name_pos\":{\"range_start\":[11,11],\"range_end\":[11,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[11,17],\"range_end\":[11,25]},\"rtype\":{\"ParentGeneric\":{\"rtype\":\"vector\",\"parent_pos\":{\"range_start\":[7,5],\"range_end\":[24,2]},\"generics\":[{\"value\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"1211551114620246464797156162165467724611018713020523716816988\"}},\"pos\":{\"range_start\":[7,5],\"range_end\":[24,2]}}],\"hash\":\"796044561259456185180188140746757239192134135131702502165918\"}},\"hash\":\"185171071721331425721205191572458618214249186871961741182117972\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":5140352417142422684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]}],\"version\":{\"minor\":0,\"major\":2,\"bug\":0},\"modules\":[]}"; +//NEVER EDIT THIS FILE WHILE LANGUAGE SERVER IS RUNNING +//@version = "0.2.1"; +pub static BUILDED_ELLIE_VERSION: &'static str = "0.2.0"; +pub static ELLIE_STD_VERSION : crate::defs::Version = crate::defs::Version {minor: 0, major: 2, bug: 1 }; +pub static ELLIE_STANDARD_LIBRARY : &str = "{\"hash\":343,\"name\":\"ellie_std\",\"description\":\"Ellie Standard Types\",\"initial_page\":343,\"ellie_version\":{\"minor\":0,\"major\":2,\"bug\":0},\"pages\":[{\"hash\":343,\"inner\":null,\"path\":\"./lib/ellie.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"0.2.1\",\"pos\":{\"range_start\":[3,12],\"range_end\":[3,19]}}},\"key_name_location\":{\"range_start\":[3,2],\"range_end\":[3,8]},\"value_location\":{\"range_start\":[3,10],\"range_end\":[3,19]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,19]}}},{\"Import\":{\"path\":\"void\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,12],\"range_end\":[4,15]},\"pos\":{\"range_start\":[4,5],\"range_end\":[4,17]},\"hash\":\"9705453923843755915\"}},{\"Import\":{\"path\":\"string\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,12],\"range_end\":[5,17]},\"pos\":{\"range_start\":[5,5],\"range_end\":[5,19]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"char\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[6,12],\"range_end\":[6,15]},\"pos\":{\"range_start\":[6,5],\"range_end\":[6,17]},\"hash\":\"10786911180507227217\"}},{\"Import\":{\"path\":\"collective\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[7,12],\"range_end\":[7,21]},\"pos\":{\"range_start\":[7,5],\"range_end\":[7,23]},\"hash\":\"2265775706785941188\"}},{\"Import\":{\"path\":\"float\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[8,12],\"range_end\":[8,16]},\"pos\":{\"range_start\":[8,5],\"range_end\":[8,18]},\"hash\":\"17002242560366547085\"}},{\"Import\":{\"path\":\"bool\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[9,12],\"range_end\":[9,15]},\"pos\":{\"range_start\":[9,5],\"range_end\":[9,17]},\"hash\":\"5302116792433123142\"}},{\"Import\":{\"path\":\"cloak\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[10,12],\"range_end\":[10,16]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,18]},\"hash\":\"2596114674330710893\"}},{\"Import\":{\"path\":\"array\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[11,12],\"range_end\":[11,16]},\"pos\":{\"range_start\":[11,5],\"range_end\":[11,18]},\"hash\":\"1040919654813280692\"}},{\"Import\":{\"path\":\"vector\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[12,12],\"range_end\":[12,17]},\"pos\":{\"range_start\":[12,5],\"range_end\":[12,19]},\"hash\":\"6944448437676459577\"}},{\"Import\":{\"path\":\"function\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[13,12],\"range_end\":[13,19]},\"pos\":{\"range_start\":[13,5],\"range_end\":[13,21]},\"hash\":\"7292167443911913662\"}},{\"Import\":{\"path\":\"nullAble\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[14,12],\"range_end\":[14,19]},\"pos\":{\"range_start\":[14,5],\"range_end\":[14,21]},\"hash\":\"15576188344227026274\"}},{\"Import\":{\"path\":\"class\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[15,12],\"range_end\":[15,16]},\"pos\":{\"range_start\":[15,5],\"range_end\":[15,18]},\"hash\":\"16316289034799634696\"}},{\"Import\":{\"path\":\"int\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[16,12],\"range_end\":[16,14]},\"pos\":{\"range_start\":[16,5],\"range_end\":[16,16]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"dyn\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[17,12],\"range_end\":[17,14]},\"pos\":{\"range_start\":[17,5],\"range_end\":[17,16]},\"hash\":\"12732385855440395869\"}},{\"Import\":{\"path\":\"error\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[18,12],\"range_end\":[18,16]},\"pos\":{\"range_start\":[18,5],\"range_end\":[18,18]},\"hash\":\"11021445597161914801\"}},{\"Import\":{\"path\":\"mem\",\"public\":true,\"reference\":\"\",\"path_pos\":{\"range_start\":[19,12],\"range_end\":[19,14]},\"pos\":{\"range_start\":[19,5],\"range_end\":[19,16]},\"hash\":\"5140352417142422684\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":9705453923843755915,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":2265775706785941188,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":5302116792433123142,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":2596114674330710893,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":7292167443911913662,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":15576188344227026274,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":16316289034799634696,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":12732385855440395869,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true},{\"hash\":5140352417142422684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":true}]},{\"hash\":9705453923843755915,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/void.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"1.0.0\",\"pos\":{\"range_start\":[5,12],\"range_end\":[5,19]}}},\"key_name_location\":{\"range_start\":[5,2],\"range_end\":[5,8]},\"value_location\":{\"range_start\":[5,10],\"range_end\":[5,19]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,19]}}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"Operator\":{\"cloaked\":false,\"first\":{\"String\":{\"value\":\"Ellie void@notConstructable \",\"pos\":{\"range_start\":[6,16],\"range_end\":[6,28]}}},\"first_pos\":{\"range_start\":[6,16],\"range_end\":[6,28]},\"second_pos\":{\"range_start\":[7,21],\"range_end\":[7,24]},\"second\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[7,21],\"range_end\":[7,25]}}},\"operator\":{\"AssignmentType\":\"Assignment\"},\"pos\":{\"range_start\":[7,19],\"range_end\":[7,20]}}},\"key_name_location\":{\"range_start\":[6,2],\"range_end\":[6,12]},\"value_location\":{\"range_start\":[6,14],\"range_end\":[7,25]},\"pos\":{\"range_start\":[6,1],\"range_end\":[7,25]}}},{\"Class\":{\"name\":\"void\",\"public\":true,\"inner_page_id\":8650034538473625083,\"name_pos\":{\"range_start\":[8,11],\"range_end\":[8,15]},\"pos\":{\"range_start\":[8,5],\"range_end\":[14,2]},\"hash\":\"143195185876122110736245389710166200156129154245197351555748\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":17018069723813511702,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/string.ei\",\"items\":[{\"Import\":{\"path\":\"array\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,12]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,14]},\"hash\":\"1040919654813280692\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,8],\"range_end\":[5,10]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,12]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"char\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[6,8],\"range_end\":[6,11]},\"pos\":{\"range_start\":[6,1],\"range_end\":[6,13]},\"hash\":\"10786911180507227217\"}},{\"Import\":{\"path\":\"vector\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[7,8],\"range_end\":[7,13]},\"pos\":{\"range_start\":[7,1],\"range_end\":[7,15]},\"hash\":\"6944448437676459577\"}},{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"1.0.0\",\"pos\":{\"range_start\":[9,12],\"range_end\":[9,19]}}},\"key_name_location\":{\"range_start\":[9,2],\"range_end\":[9,8]},\"value_location\":{\"range_start\":[9,10],\"range_end\":[9,19]},\"pos\":{\"range_start\":[9,1],\"range_end\":[9,19]}}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"Operator\":{\"cloaked\":false,\"first\":{\"String\":{\"value\":\"Ellie string@notConstructable \",\"pos\":{\"range_start\":[10,16],\"range_end\":[10,30]}}},\"first_pos\":{\"range_start\":[10,16],\"range_end\":[10,30]},\"second_pos\":{\"range_start\":[11,21],\"range_end\":[11,24]},\"second\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[11,21],\"range_end\":[11,25]}}},\"operator\":{\"AssignmentType\":\"Assignment\"},\"pos\":{\"range_start\":[11,19],\"range_end\":[11,20]}}},\"key_name_location\":{\"range_start\":[10,2],\"range_end\":[10,12]},\"value_location\":{\"range_start\":[10,14],\"range_end\":[11,25]},\"pos\":{\"range_start\":[10,1],\"range_end\":[11,25]}}},{\"Class\":{\"name\":\"string\",\"public\":true,\"inner_page_id\":13382091095411917215,\"name_pos\":{\"range_start\":[12,11],\"range_end\":[12,17]},\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}}],\"dependents\":[9705453923843755915,1040919654813280692,7659122406100850684,10786911180507227217,6944448437676459577,343,5302116792433123142,11021445597161914801,6107902802699294681,7292167443911913662,16316289034799634696,12732385855440395869,5140352417142422684],\"dependencies\":[{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":1040919654813280692,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/array.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,10]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,12]},\"hash\":\"7659122406100850684\"}},{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"1.0.0\",\"pos\":{\"range_start\":[6,12],\"range_end\":[6,19]}}},\"key_name_location\":{\"range_start\":[6,2],\"range_end\":[6,8]},\"value_location\":{\"range_start\":[6,10],\"range_end\":[6,19]},\"pos\":{\"range_start\":[6,1],\"range_end\":[6,19]}}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"Operator\":{\"cloaked\":false,\"first\":{\"String\":{\"value\":\"Ellie array@notConstructable \",\"pos\":{\"range_start\":[7,16],\"range_end\":[7,29]}}},\"first_pos\":{\"range_start\":[7,16],\"range_end\":[7,29]},\"second_pos\":{\"range_start\":[8,21],\"range_end\":[8,24]},\"second\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[8,21],\"range_end\":[8,25]}}},\"operator\":{\"AssignmentType\":\"Assignment\"},\"pos\":{\"range_start\":[8,19],\"range_end\":[8,20]}}},\"key_name_location\":{\"range_start\":[7,2],\"range_end\":[7,12]},\"value_location\":{\"range_start\":[7,14],\"range_end\":[8,25]},\"pos\":{\"range_start\":[7,1],\"range_end\":[8,25]}}},{\"Class\":{\"name\":\"array\",\"public\":true,\"inner_page_id\":2443737284348860061,\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,16]},\"pos\":{\"range_start\":[9,5],\"range_end\":[26,2]},\"hash\":\"1586195362111311155027159166929695107194231131203150363768238\"}}],\"dependents\":[17018069723813511702,343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":7659122406100850684,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/int.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"float\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,12]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,14]},\"hash\":\"17002242560366547085\"}},{\"FileKey\":{\"key_name\":\"version\",\"value\":{\"String\":{\"value\":\"1.0.0\",\"pos\":{\"range_start\":[6,12],\"range_end\":[6,19]}}},\"key_name_location\":{\"range_start\":[6,2],\"range_end\":[6,8]},\"value_location\":{\"range_start\":[6,10],\"range_end\":[6,19]},\"pos\":{\"range_start\":[6,1],\"range_end\":[6,19]}}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"Operator\":{\"cloaked\":false,\"first\":{\"String\":{\"value\":\"Ellie integer@notConstructable \",\"pos\":{\"range_start\":[7,16],\"range_end\":[7,31]}}},\"first_pos\":{\"range_start\":[7,16],\"range_end\":[7,31]},\"second_pos\":{\"range_start\":[8,21],\"range_end\":[8,24]},\"second\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[8,21],\"range_end\":[8,25]}}},\"operator\":{\"AssignmentType\":\"Assignment\"},\"pos\":{\"range_start\":[8,19],\"range_end\":[8,20]}}},\"key_name_location\":{\"range_start\":[7,2],\"range_end\":[7,12]},\"value_location\":{\"range_start\":[7,14],\"range_end\":[8,25]},\"pos\":{\"range_start\":[7,1],\"range_end\":[8,25]}}},{\"Class\":{\"name\":\"int\",\"public\":true,\"inner_page_id\":9359408515177576219,\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,14]},\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}}],\"dependents\":[1040919654813280692,17018069723813511702,6944448437676459577,11021445597161914801,6107902802699294681,343,5140352417142422684],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":17002242560366547085,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/float.ei\",\"items\":[{\"Class\":{\"name\":\"float\",\"public\":true,\"inner_page_id\":10285192560054607821,\"name_pos\":{\"range_start\":[3,11],\"range_end\":[3,16]},\"pos\":{\"range_start\":[3,5],\"range_end\":[3,19]},\"hash\":\"18615315518911420720319816430643195889253746719121322877125159\"}}],\"dependents\":[7659122406100850684,343],\"dependencies\":[]},{\"hash\":10285192560054607821,\"inner\":17002242560366547085,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/float.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":9359408515177576219,\"inner\":7659122406100850684,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/int.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Convert integer to string\",\"pos\":{\"range_start\":[10,20],\"range_end\":[10,47]}}},\"key_name_location\":{\"range_start\":[10,6],\"range_end\":[10,16]},\"value_location\":{\"range_start\":[10,18],\"range_end\":[10,47]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,47]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[11,23],\"range_end\":[11,30]}}},\"key_name_location\":{\"range_start\":[11,6],\"range_end\":[11,19]},\"value_location\":{\"range_start\":[11,21],\"range_end\":[11,30]},\"pos\":{\"range_start\":[11,5],\"range_end\":[11,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 19; print(age.toString()); //19 \",\"pos\":{\"range_start\":[12,16],\"range_end\":[15,6]}}},\"key_name_location\":{\"range_start\":[12,6],\"range_end\":[12,12]},\"value_location\":{\"range_start\":[12,14],\"range_end\":[15,6]},\"pos\":{\"range_start\":[12,5],\"range_end\":[15,6]}}},{\"NativeFunction\":{\"name\":\"toString\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"public\":true,\"name_pos\":{\"range_start\":[16,12],\"range_end\":[16,20]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[16,25],\"range_end\":[16,30]},\"pos\":{\"range_start\":[16,9],\"range_end\":[16,11]},\"hash\":\"56161213129711397213415255140123223184154814723814253153392117\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get integer's size\\\\n\",\"pos\":{\"range_start\":[18,20],\"range_end\":[18,42]}}},\"key_name_location\":{\"range_start\":[18,6],\"range_end\":[18,16]},\"value_location\":{\"range_start\":[18,18],\"range_end\":[18,42]},\"pos\":{\"range_start\":[18,5],\"range_end\":[18,42]}}},{\"FileKey\":{\"key_name\":\"volatile\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[19,17],\"range_end\":[19,21]}}},\"key_name_location\":{\"range_start\":[19,6],\"range_end\":[19,13]},\"value_location\":{\"range_start\":[19,15],\"range_end\":[19,21]},\"pos\":{\"range_start\":[19,5],\"range_end\":[19,21]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[20,23],\"range_end\":[20,30]}}},\"key_name_location\":{\"range_start\":[20,6],\"range_end\":[20,19]},\"value_location\":{\"range_start\":[20,21],\"range_end\":[20,30]},\"pos\":{\"range_start\":[20,5],\"range_end\":[20,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 12; print(age.getSize()); //i8 \",\"pos\":{\"range_start\":[21,16],\"range_end\":[24,6]}}},\"key_name_location\":{\"range_start\":[21,6],\"range_end\":[21,12]},\"value_location\":{\"range_start\":[21,14],\"range_end\":[24,6]},\"pos\":{\"range_start\":[21,5],\"range_end\":[24,6]}}},{\"NativeFunction\":{\"name\":\"getSize\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"public\":true,\"name_pos\":{\"range_start\":[25,12],\"range_end\":[25,19]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[25,24],\"range_end\":[25,29]},\"pos\":{\"range_start\":[25,9],\"range_end\":[25,11]},\"hash\":\"492177023022214015547244194163168764092185126163204251223182191211\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get integer as float\",\"pos\":{\"range_start\":[27,20],\"range_end\":[27,42]}}},\"key_name_location\":{\"range_start\":[27,6],\"range_end\":[27,16]},\"value_location\":{\"range_start\":[27,18],\"range_end\":[27,42]},\"pos\":{\"range_start\":[27,5],\"range_end\":[27,42]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[28,23],\"range_end\":[28,30]}}},\"key_name_location\":{\"range_start\":[28,6],\"range_end\":[28,19]},\"value_location\":{\"range_start\":[28,21],\"range_end\":[28,30]},\"pos\":{\"range_start\":[28,5],\"range_end\":[28,30]}}},{\"FileKey\":{\"key_name\":\"avoidUsage\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[29,19],\"range_end\":[29,23]}}},\"key_name_location\":{\"range_start\":[29,6],\"range_end\":[29,15]},\"value_location\":{\"range_start\":[29,17],\"range_end\":[29,23]},\"pos\":{\"range_start\":[29,5],\"range_end\":[29,23]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 12; print(age.asFloat); //12.0 \",\"pos\":{\"range_start\":[30,16],\"range_end\":[33,6]}}},\"key_name_location\":{\"range_start\":[30,6],\"range_end\":[30,12]},\"value_location\":{\"range_start\":[30,14],\"range_end\":[33,6]},\"pos\":{\"range_start\":[30,5],\"range_end\":[33,6]}}},{\"NativeFunction\":{\"name\":\"asFloat\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"float\",\"pos\":{\"range_start\":[3,5],\"range_end\":[3,19]},\"hash\":\"18615315518911420720319816430643195889253746719121322877125159\"}},\"public\":true,\"name_pos\":{\"range_start\":[34,12],\"range_end\":[34,19]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[34,24],\"range_end\":[34,28]},\"pos\":{\"range_start\":[34,9],\"range_end\":[34,11]},\"hash\":\"2152621321925519138153131317723146652006196511591514420110481\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get integer as string\",\"pos\":{\"range_start\":[36,20],\"range_end\":[36,43]}}},\"key_name_location\":{\"range_start\":[36,6],\"range_end\":[36,16]},\"value_location\":{\"range_start\":[36,18],\"range_end\":[36,43]},\"pos\":{\"range_start\":[36,5],\"range_end\":[36,43]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[37,23],\"range_end\":[37,30]}}},\"key_name_location\":{\"range_start\":[37,6],\"range_end\":[37,19]},\"value_location\":{\"range_start\":[37,21],\"range_end\":[37,30]},\"pos\":{\"range_start\":[37,5],\"range_end\":[37,30]}}},{\"FileKey\":{\"key_name\":\"avoidUsage\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[38,19],\"range_end\":[38,23]}}},\"key_name_location\":{\"range_start\":[38,6],\"range_end\":[38,15]},\"value_location\":{\"range_start\":[38,17],\"range_end\":[38,23]},\"pos\":{\"range_start\":[38,5],\"range_end\":[38,23]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 12; print(age.asString()); //12 \",\"pos\":{\"range_start\":[39,16],\"range_end\":[42,6]}}},\"key_name_location\":{\"range_start\":[39,6],\"range_end\":[39,12]},\"value_location\":{\"range_start\":[39,14],\"range_end\":[42,6]},\"pos\":{\"range_start\":[39,5],\"range_end\":[42,6]}}},{\"NativeFunction\":{\"name\":\"asString\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"float\",\"pos\":{\"range_start\":[3,5],\"range_end\":[3,19]},\"hash\":\"18615315518911420720319816430643195889253746719121322877125159\"}},\"public\":true,\"name_pos\":{\"range_start\":[43,12],\"range_end\":[43,20]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[43,25],\"range_end\":[43,29]},\"pos\":{\"range_start\":[43,9],\"range_end\":[43,11]},\"hash\":\"179366019177491421771741128211458583721960217137179211125222\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[45,20],\"range_end\":[45,30]}}},\"key_name_location\":{\"range_start\":[45,6],\"range_end\":[45,16]},\"value_location\":{\"range_start\":[45,18],\"range_end\":[45,30]},\"pos\":{\"range_start\":[45,5],\"range_end\":[45,30]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[46,23],\"range_end\":[46,30]}}},\"key_name_location\":{\"range_start\":[46,6],\"range_end\":[46,19]},\"value_location\":{\"range_start\":[46,21],\"range_end\":[46,30]},\"pos\":{\"range_start\":[46,5],\"range_end\":[46,30]}}},{\"FileKey\":{\"key_name\":\"avoidUsage\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[47,19],\"range_end\":[47,23]}}},\"key_name_location\":{\"range_start\":[47,6],\"range_end\":[47,15]},\"value_location\":{\"range_start\":[47,17],\"range_end\":[47,23]},\"pos\":{\"range_start\":[47,5],\"range_end\":[47,23]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v age = 12; print(age.getType()); //int \",\"pos\":{\"range_start\":[48,16],\"range_end\":[51,6]}}},\"key_name_location\":{\"range_start\":[48,6],\"range_end\":[48,12]},\"value_location\":{\"range_start\":[48,14],\"range_end\":[51,6]},\"pos\":{\"range_start\":[48,5],\"range_end\":[51,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"inner_page_id\":16056975063909241046,\"public\":true,\"name_pos\":{\"range_start\":[52,12],\"range_end\":[52,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[52,24],\"range_end\":[52,30]},\"pos\":{\"range_start\":[52,9],\"range_end\":[54,6]},\"hash\":\"1182532262140210240104208101224542264020623113212046142129237183103\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":16056975063909241046,\"inner\":9359408515177576219,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/int.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"int\",\"pos\":{\"range_start\":[53,13],\"range_end\":[53,18]}}},\"keyword_pos\":{\"range_start\":[53,9],\"range_end\":[53,12]},\"value_position\":{\"range_start\":[53,14],\"range_end\":[53,19]},\"pos\":{\"range_start\":[53,12],\"range_end\":[53,19]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":9359408515177576219,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17002242560366547085,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":2443737284348860061,\"inner\":1040919654813280692,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/array.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[10,20],\"range_end\":[10,30]}}},\"key_name_location\":{\"range_start\":[10,6],\"range_end\":[10,16]},\"value_location\":{\"range_start\":[10,18],\"range_end\":[10,30]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v arr = [12]; print(arr.getType()); //array \",\"pos\":{\"range_start\":[11,16],\"range_end\":[14,6]}}},\"key_name_location\":{\"range_start\":[11,6],\"range_end\":[11,12]},\"value_location\":{\"range_start\":[11,14],\"range_end\":[14,6]},\"pos\":{\"range_start\":[11,5],\"range_end\":[14,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"inner_page_id\":6932768858224482738,\"public\":true,\"name_pos\":{\"range_start\":[15,12],\"range_end\":[15,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[15,24],\"range_end\":[15,30]},\"pos\":{\"range_start\":[15,9],\"range_end\":[17,6]},\"hash\":\"150237139136651316249116772277818221726931011263321315746723\"}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get size of array\",\"pos\":{\"range_start\":[19,20],\"range_end\":[19,39]}}},\"key_name_location\":{\"range_start\":[19,6],\"range_end\":[19,16]},\"value_location\":{\"range_start\":[19,18],\"range_end\":[19,39]},\"pos\":{\"range_start\":[19,5],\"range_end\":[19,39]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[20,13],\"range_end\":[20,17]}}},\"key_name_location\":{\"range_start\":[20,6],\"range_end\":[20,11]},\"value_location\":{\"range_start\":[20,12],\"range_end\":[20,17]},\"pos\":{\"range_start\":[20,5],\"range_end\":[20,17]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v arr = [12]; print(arr.len()); //1 \",\"pos\":{\"range_start\":[21,16],\"range_end\":[24,6]}}},\"key_name_location\":{\"range_start\":[21,6],\"range_end\":[21,12]},\"value_location\":{\"range_start\":[21,14],\"range_end\":[24,6]},\"pos\":{\"range_start\":[21,5],\"range_end\":[24,6]}}},{\"NativeFunction\":{\"name\":\"len\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"public\":true,\"name_pos\":{\"range_start\":[25,12],\"range_end\":[25,15]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[25,20],\"range_end\":[25,22]},\"pos\":{\"range_start\":[25,9],\"range_end\":[25,11]},\"hash\":\"21221222677220561471811991672920238139119135149177958193102166145\",\"no_return\":false}}],\"dependents\":[],\"dependencies\":[{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":6932768858224482738,\"inner\":2443737284348860061,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/array.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"array\",\"pos\":{\"range_start\":[16,13],\"range_end\":[16,20]}}},\"keyword_pos\":{\"range_start\":[16,9],\"range_end\":[16,12]},\"value_position\":{\"range_start\":[16,14],\"range_end\":[16,21]},\"pos\":{\"range_start\":[16,12],\"range_end\":[16,21]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":2443737284348860061,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":10786911180507227217,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/char.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"char\",\"public\":true,\"inner_page_id\":4578547606642746636,\"name_pos\":{\"range_start\":[4,11],\"range_end\":[4,15]},\"pos\":{\"range_start\":[4,5],\"range_end\":[13,2]},\"hash\":\"135219489616312059436318016618111082431821781695824038255\"}}],\"dependents\":[17018069723813511702,343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":4578547606642746636,\"inner\":10786911180507227217,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/char.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[5,20],\"range_end\":[5,30]}}},\"key_name_location\":{\"range_start\":[5,6],\"range_end\":[5,16]},\"value_location\":{\"range_start\":[5,18],\"range_end\":[5,30]},\"pos\":{\"range_start\":[5,5],\"range_end\":[5,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v chr = 'e'; print(chr.getType()); //char \",\"pos\":{\"range_start\":[6,16],\"range_end\":[9,6]}}},\"key_name_location\":{\"range_start\":[6,6],\"range_end\":[6,12]},\"value_location\":{\"range_start\":[6,14],\"range_end\":[9,6]},\"pos\":{\"range_start\":[6,5],\"range_end\":[9,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"inner_page_id\":17788253986724394940,\"public\":true,\"name_pos\":{\"range_start\":[10,12],\"range_end\":[10,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[10,24],\"range_end\":[10,30]},\"pos\":{\"range_start\":[10,9],\"range_end\":[12,6]},\"hash\":\"203552372325019718147182477625525317242907437228111153245494\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":17788253986724394940,\"inner\":4578547606642746636,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/char.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"char\",\"pos\":{\"range_start\":[11,13],\"range_end\":[11,19]}}},\"keyword_pos\":{\"range_start\":[11,9],\"range_end\":[11,12]},\"value_position\":{\"range_start\":[11,14],\"range_end\":[11,20]},\"pos\":{\"range_start\":[11,12],\"range_end\":[11,20]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":4578547606642746636,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":6944448437676459577,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/vector.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,13]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,15]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,8],\"range_end\":[5,10]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,12]},\"hash\":\"7659122406100850684\"}},{\"Class\":{\"name\":\"vector\",\"public\":true,\"inner_page_id\":15948856036329759156,\"name_pos\":{\"range_start\":[7,11],\"range_end\":[7,17]},\"pos\":{\"range_start\":[7,5],\"range_end\":[24,2]},\"hash\":\"29200861763765181284625518410720186190159214578712611267242\"}}],\"dependents\":[17018069723813511702,343,5140352417142422684],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":15948856036329759156,\"inner\":6944448437676459577,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/vector.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[8,20],\"range_end\":[8,30]}}},\"key_name_location\":{\"range_start\":[8,6],\"range_end\":[8,16]},\"value_location\":{\"range_start\":[8,18],\"range_end\":[8,30]},\"pos\":{\"range_start\":[8,5],\"range_end\":[8,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v vec : [int, *] = [12]; print(vec.getType()); //vector \",\"pos\":{\"range_start\":[9,16],\"range_end\":[12,6]}}},\"key_name_location\":{\"range_start\":[9,6],\"range_end\":[9,12]},\"value_location\":{\"range_start\":[9,14],\"range_end\":[12,6]},\"pos\":{\"range_start\":[9,5],\"range_end\":[12,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"inner_page_id\":17047408780552737004,\"public\":true,\"name_pos\":{\"range_start\":[13,12],\"range_end\":[13,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[13,24],\"range_end\":[13,30]},\"pos\":{\"range_start\":[13,9],\"range_end\":[15,6]},\"hash\":\"111177239191211332022482068296619214521818154303957835321018\"}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get size of vector\",\"pos\":{\"range_start\":[17,20],\"range_end\":[17,40]}}},\"key_name_location\":{\"range_start\":[17,6],\"range_end\":[17,16]},\"value_location\":{\"range_start\":[17,18],\"range_end\":[17,40]},\"pos\":{\"range_start\":[17,5],\"range_end\":[17,40]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[18,15],\"range_end\":[18,19]}}},\"key_name_location\":{\"range_start\":[18,6],\"range_end\":[18,11]},\"value_location\":{\"range_start\":[18,13],\"range_end\":[18,19]},\"pos\":{\"range_start\":[18,5],\"range_end\":[18,19]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v vec : [int, *] = [12]; print(vec.len()); //1 \",\"pos\":{\"range_start\":[19,16],\"range_end\":[22,6]}}},\"key_name_location\":{\"range_start\":[19,6],\"range_end\":[19,12]},\"value_location\":{\"range_start\":[19,14],\"range_end\":[22,6]},\"pos\":{\"range_start\":[19,5],\"range_end\":[22,6]}}},{\"NativeFunction\":{\"name\":\"len\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"public\":true,\"name_pos\":{\"range_start\":[23,12],\"range_end\":[23,15]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[23,20],\"range_end\":[23,22]},\"pos\":{\"range_start\":[23,9],\"range_end\":[23,11]},\"hash\":\"2331901921013216918260107183212825219113805213517225186193165183\",\"no_return\":false}}],\"dependents\":[],\"dependencies\":[{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":17047408780552737004,\"inner\":15948856036329759156,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/vector.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"vector\",\"pos\":{\"range_start\":[14,13],\"range_end\":[14,21]}}},\"keyword_pos\":{\"range_start\":[14,9],\"range_end\":[14,12]},\"value_position\":{\"range_start\":[14,14],\"range_end\":[14,22]},\"pos\":{\"range_start\":[14,12],\"range_end\":[14,22]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":15948856036329759156,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":13382091095411917215,\"inner\":17018069723813511702,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/string.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[13,20],\"range_end\":[13,30]}}},\"key_name_location\":{\"range_start\":[13,6],\"range_end\":[13,16]},\"value_location\":{\"range_start\":[13,18],\"range_end\":[13,30]},\"pos\":{\"range_start\":[13,5],\"range_end\":[13,30]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[14,23],\"range_end\":[14,30]}}},\"key_name_location\":{\"range_start\":[14,6],\"range_end\":[14,19]},\"value_location\":{\"range_start\":[14,21],\"range_end\":[14,30]},\"pos\":{\"range_start\":[14,5],\"range_end\":[14,30]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"inner_page_id\":11714629899014445063,\"public\":true,\"name_pos\":{\"range_start\":[15,12],\"range_end\":[15,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[15,24],\"range_end\":[15,30]},\"pos\":{\"range_start\":[15,9],\"range_end\":[17,6]},\"hash\":\"139501846614442501334323141127129155294876017822659322216\"}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get size of string\",\"pos\":{\"range_start\":[19,20],\"range_end\":[19,40]}}},\"key_name_location\":{\"range_start\":[19,6],\"range_end\":[19,16]},\"value_location\":{\"range_start\":[19,18],\"range_end\":[19,40]},\"pos\":{\"range_start\":[19,5],\"range_end\":[19,40]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[20,23],\"range_end\":[20,30]}}},\"key_name_location\":{\"range_start\":[20,6],\"range_end\":[20,19]},\"value_location\":{\"range_start\":[20,21],\"range_end\":[20,30]},\"pos\":{\"range_start\":[20,5],\"range_end\":[20,30]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[21,15],\"range_end\":[21,19]}}},\"key_name_location\":{\"range_start\":[21,6],\"range_end\":[21,11]},\"value_location\":{\"range_start\":[21,13],\"range_end\":[21,19]},\"pos\":{\"range_start\":[21,5],\"range_end\":[21,19]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"ellie\\\\\\\"; print(name.len()); //5 \",\"pos\":{\"range_start\":[22,16],\"range_end\":[25,6]}}},\"key_name_location\":{\"range_start\":[22,6],\"range_end\":[22,12]},\"value_location\":{\"range_start\":[22,14],\"range_end\":[25,6]},\"pos\":{\"range_start\":[22,5],\"range_end\":[25,6]}}},{\"NativeFunction\":{\"name\":\"len\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"public\":true,\"name_pos\":{\"range_start\":[26,12],\"range_end\":[26,15]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[26,20],\"range_end\":[26,22]},\"pos\":{\"range_start\":[26,9],\"range_end\":[26,11]},\"hash\":\"237231103842471297252135128241062251061741601892312485713522234205\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Make string upperCASE\",\"pos\":{\"range_start\":[28,20],\"range_end\":[28,43]}}},\"key_name_location\":{\"range_start\":[28,6],\"range_end\":[28,16]},\"value_location\":{\"range_start\":[28,18],\"range_end\":[28,43]},\"pos\":{\"range_start\":[28,5],\"range_end\":[28,43]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[29,23],\"range_end\":[29,30]}}},\"key_name_location\":{\"range_start\":[29,6],\"range_end\":[29,19]},\"value_location\":{\"range_start\":[29,21],\"range_end\":[29,30]},\"pos\":{\"range_start\":[29,5],\"range_end\":[29,30]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[30,15],\"range_end\":[30,19]}}},\"key_name_location\":{\"range_start\":[30,6],\"range_end\":[30,11]},\"value_location\":{\"range_start\":[30,13],\"range_end\":[30,19]},\"pos\":{\"range_start\":[30,5],\"range_end\":[30,19]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"ellie\\\\\\\"; print(name.uprCase()); //ELLIE \",\"pos\":{\"range_start\":[31,16],\"range_end\":[34,6]}}},\"key_name_location\":{\"range_start\":[31,6],\"range_end\":[31,12]},\"value_location\":{\"range_start\":[31,14],\"range_end\":[34,6]},\"pos\":{\"range_start\":[31,5],\"range_end\":[34,6]}}},{\"NativeFunction\":{\"name\":\"uprCase\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"public\":true,\"name_pos\":{\"range_start\":[35,12],\"range_end\":[35,19]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[35,24],\"range_end\":[35,29]},\"pos\":{\"range_start\":[35,9],\"range_end\":[35,11]},\"hash\":\"2532322031161423613249255178175126122017810104712052046497230242\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Make string loweRcase\",\"pos\":{\"range_start\":[37,20],\"range_end\":[37,43]}}},\"key_name_location\":{\"range_start\":[37,6],\"range_end\":[37,16]},\"value_location\":{\"range_start\":[37,18],\"range_end\":[37,43]},\"pos\":{\"range_start\":[37,5],\"range_end\":[37,43]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[38,23],\"range_end\":[38,30]}}},\"key_name_location\":{\"range_start\":[38,6],\"range_end\":[38,19]},\"value_location\":{\"range_start\":[38,21],\"range_end\":[38,30]},\"pos\":{\"range_start\":[38,5],\"range_end\":[38,30]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[39,15],\"range_end\":[39,19]}}},\"key_name_location\":{\"range_start\":[39,6],\"range_end\":[39,11]},\"value_location\":{\"range_start\":[39,13],\"range_end\":[39,19]},\"pos\":{\"range_start\":[39,5],\"range_end\":[39,19]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"ELLIE\\\\\\\"; print(name.lwrCase()); //ellie \",\"pos\":{\"range_start\":[40,16],\"range_end\":[43,6]}}},\"key_name_location\":{\"range_start\":[40,6],\"range_end\":[40,12]},\"value_location\":{\"range_start\":[40,14],\"range_end\":[43,6]},\"pos\":{\"range_start\":[40,5],\"range_end\":[43,6]}}},{\"NativeFunction\":{\"name\":\"lwrCase\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"public\":true,\"name_pos\":{\"range_start\":[44,12],\"range_end\":[44,19]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[44,24],\"range_end\":[44,29]},\"pos\":{\"range_start\":[44,9],\"range_end\":[44,11]},\"hash\":\"226219108249156902288433236592121351741811288851771561411032125\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Convert single letter to char[?]Gives empty char ('\\\\0') if string is not convertable\",\"pos\":{\"range_start\":[46,20],\"range_end\":[46,106]}}},\"key_name_location\":{\"range_start\":[46,6],\"range_end\":[46,16]},\"value_location\":{\"range_start\":[46,18],\"range_end\":[46,106]},\"pos\":{\"range_start\":[46,5],\"range_end\":[46,106]}}},{\"FileKey\":{\"key_name\":\"native\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[47,15],\"range_end\":[47,19]}}},\"key_name_location\":{\"range_start\":[47,6],\"range_end\":[47,11]},\"value_location\":{\"range_start\":[47,13],\"range_end\":[47,19]},\"pos\":{\"range_start\":[47,5],\"range_end\":[47,19]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[48,23],\"range_end\":[48,30]}}},\"key_name_location\":{\"range_start\":[48,6],\"range_end\":[48,19]},\"value_location\":{\"range_start\":[48,21],\"range_end\":[48,30]},\"pos\":{\"range_start\":[48,5],\"range_end\":[48,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"a\\\\\\\"; v chr : char = name.toChar(); \",\"pos\":{\"range_start\":[49,16],\"range_end\":[52,6]}}},\"key_name_location\":{\"range_start\":[49,6],\"range_end\":[49,12]},\"value_location\":{\"range_start\":[49,14],\"range_end\":[52,6]},\"pos\":{\"range_start\":[49,5],\"range_end\":[52,6]}}},{\"NativeFunction\":{\"name\":\"toChar\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"char\",\"pos\":{\"range_start\":[4,5],\"range_end\":[13,2]},\"hash\":\"135219489616312059436318016618111082431821781695824038255\"}},\"public\":true,\"name_pos\":{\"range_start\":[53,12],\"range_end\":[53,18]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[53,23],\"range_end\":[53,26]},\"pos\":{\"range_start\":[53,9],\"range_end\":[53,11]},\"hash\":\"342531971538421021119913012516473163241561903921212040189010772\",\"no_return\":false}},{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Convert string to char vec\",\"pos\":{\"range_start\":[55,20],\"range_end\":[55,48]}}},\"key_name_location\":{\"range_start\":[55,6],\"range_end\":[55,16]},\"value_location\":{\"range_start\":[55,18],\"range_end\":[55,48]},\"pos\":{\"range_start\":[55,5],\"range_end\":[55,48]}}},{\"FileKey\":{\"key_name\":\"availableSince\",\"value\":{\"String\":{\"value\":\"3.7.3\",\"pos\":{\"range_start\":[56,23],\"range_end\":[56,30]}}},\"key_name_location\":{\"range_start\":[56,6],\"range_end\":[56,19]},\"value_location\":{\"range_start\":[56,21],\"range_end\":[56,30]},\"pos\":{\"range_start\":[56,5],\"range_end\":[56,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v name = \\\\\\\"ahmet\\\\\\\"; v chars = name.chars(); print(name.len())); //5 \",\"pos\":{\"range_start\":[57,16],\"range_end\":[61,6]}}},\"key_name_location\":{\"range_start\":[57,6],\"range_end\":[57,12]},\"value_location\":{\"range_start\":[57,14],\"range_end\":[61,6]},\"pos\":{\"range_start\":[57,5],\"range_end\":[61,6]}}},{\"NativeFunction\":{\"name\":\"chars\",\"parameters\":[],\"return_type\":{\"ParentGeneric\":{\"rtype\":\"vector\",\"parent_pos\":{\"range_start\":[7,5],\"range_end\":[24,2]},\"generics\":[{\"value\":{\"Generic\":{\"rtype\":\"char\",\"pos\":{\"range_start\":[4,5],\"range_end\":[13,2]},\"hash\":\"135219489616312059436318016618111082431821781695824038255\"}},\"pos\":{\"range_start\":[7,5],\"range_end\":[24,2]}}],\"hash\":\"29200861763765181284625518410720186190159214578712611267242\"}},\"public\":true,\"name_pos\":{\"range_start\":[62,12],\"range_end\":[62,17]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[62,22],\"range_end\":[62,30]},\"pos\":{\"range_start\":[62,9],\"range_end\":[62,11]},\"hash\":\"352371853215167221681781371931672168173193412013323716087112204\",\"no_return\":false}}],\"dependents\":[],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":11714629899014445063,\"inner\":13382091095411917215,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/string.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"string\",\"pos\":{\"range_start\":[16,13],\"range_end\":[16,21]}}},\"keyword_pos\":{\"range_start\":[16,9],\"range_end\":[16,12]},\"value_position\":{\"range_start\":[16,14],\"range_end\":[16,22]},\"pos\":{\"range_start\":[16,12],\"range_end\":[16,22]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":13382091095411917215,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":1040919654813280692,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":10786911180507227217,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":8650034538473625083,\"inner\":9705453923843755915,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/void.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[9,20],\"range_end\":[9,30]}}},\"key_name_location\":{\"range_start\":[9,6],\"range_end\":[9,16]},\"value_location\":{\"range_start\":[9,18],\"range_end\":[9,30]},\"pos\":{\"range_start\":[9,5],\"range_end\":[9,30]}}},{\"FileKey\":{\"key_name\":\"avoidUsage\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[10,19],\"range_end\":[10,23]}}},\"key_name_location\":{\"range_start\":[10,6],\"range_end\":[10,15]},\"value_location\":{\"range_start\":[10,17],\"range_end\":[10,23]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,23]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"inner_page_id\":6592215465338084485,\"public\":true,\"name_pos\":{\"range_start\":[11,12],\"range_end\":[11,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[11,24],\"range_end\":[11,30]},\"pos\":{\"range_start\":[11,9],\"range_end\":[13,6]},\"hash\":\"56164154127149291237642187167712041609234208609618516663167144\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":9705453923843755915,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":6592215465338084485,\"inner\":8650034538473625083,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/void.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"void\",\"pos\":{\"range_start\":[12,13],\"range_end\":[12,19]}}},\"keyword_pos\":{\"range_start\":[12,9],\"range_end\":[12,12]},\"value_position\":{\"range_start\":[12,14],\"range_end\":[12,20]},\"pos\":{\"range_start\":[12,12],\"range_end\":[12,20]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":8650034538473625083,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":9705453923843755915,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":2265775706785941188,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/collective.ei\",\"items\":[{\"Class\":{\"name\":\"collective\",\"public\":true,\"inner_page_id\":16351295125231896931,\"name_pos\":{\"range_start\":[3,11],\"range_end\":[3,21]},\"pos\":{\"range_start\":[3,5],\"range_end\":[3,36]},\"hash\":\"20315312623022612352205225823822997892243238249217862451935848\"}}],\"dependents\":[343],\"dependencies\":[]},{\"hash\":16351295125231896931,\"inner\":2265775706785941188,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/collective.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":2265775706785941188,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":5302116792433123142,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/bool.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"bool\",\"public\":true,\"inner_page_id\":2802435740943298023,\"name_pos\":{\"range_start\":[4,11],\"range_end\":[4,15]},\"pos\":{\"range_start\":[4,5],\"range_end\":[13,2]},\"hash\":\"8720318210917122325220254501179322321061976347762010225576252\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":2802435740943298023,\"inner\":5302116792433123142,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/bool.ei\",\"items\":[{\"FileKey\":{\"key_name\":\"description\",\"value\":{\"String\":{\"value\":\"Get type\",\"pos\":{\"range_start\":[5,20],\"range_end\":[5,30]}}},\"key_name_location\":{\"range_start\":[5,6],\"range_end\":[5,16]},\"value_location\":{\"range_start\":[5,18],\"range_end\":[5,30]},\"pos\":{\"range_start\":[5,5],\"range_end\":[5,30]}}},{\"FileKey\":{\"key_name\":\"example\",\"value\":{\"String\":{\"value\":\" v bool = true; print(bool.getType()); //bool \",\"pos\":{\"range_start\":[6,16],\"range_end\":[9,6]}}},\"key_name_location\":{\"range_start\":[6,6],\"range_end\":[6,12]},\"value_location\":{\"range_start\":[6,14],\"range_end\":[9,6]},\"pos\":{\"range_start\":[6,5],\"range_end\":[9,6]}}},{\"Function\":{\"name\":\"getType\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"inner_page_id\":9481166653184688289,\"public\":true,\"name_pos\":{\"range_start\":[10,12],\"range_end\":[10,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[10,24],\"range_end\":[10,30]},\"pos\":{\"range_start\":[10,9],\"range_end\":[12,6]},\"hash\":\"6877611912363510673204152140219891162152823315014020827234144113\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":5302116792433123142,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":9481166653184688289,\"inner\":2802435740943298023,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/bool.ei\",\"items\":[{\"Ret\":{\"value\":{\"String\":{\"value\":\"bool\",\"pos\":{\"range_start\":[11,13],\"range_end\":[11,19]}}},\"keyword_pos\":{\"range_start\":[11,9],\"range_end\":[11,12]},\"value_position\":{\"range_start\":[11,14],\"range_end\":[11,20]},\"pos\":{\"range_start\":[11,12],\"range_end\":[11,20]}}}],\"dependents\":[],\"dependencies\":[{\"hash\":2802435740943298023,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":5302116792433123142,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":2596114674330710893,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/cloak.ei\",\"items\":[{\"Class\":{\"name\":\"cloak\",\"public\":true,\"inner_page_id\":7073241393919624697,\"name_pos\":{\"range_start\":[3,11],\"range_end\":[3,16]},\"pos\":{\"range_start\":[3,5],\"range_end\":[3,19]},\"hash\":\"140396619510419790168777914535254239359242180915486237214\"}}],\"dependents\":[343],\"dependencies\":[]},{\"hash\":7073241393919624697,\"inner\":2596114674330710893,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/cloak.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":2596114674330710893,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":7292167443911913662,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/function.ei\",\"items\":[{\"Import\":{\"path\":\"thread\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,13]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,15]},\"hash\":\"6107902802699294681\"}},{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,8],\"range_end\":[5,13]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"function\",\"public\":true,\"inner_page_id\":10147312302035922304,\"name_pos\":{\"range_start\":[7,11],\"range_end\":[7,19]},\"pos\":{\"range_start\":[7,5],\"range_end\":[10,2]},\"hash\":\"462052099287153234139148111240247209104175875524244642202156010\"}}],\"dependents\":[343,6107902802699294681],\"dependencies\":[{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":6107902802699294681,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/thread.ei\",\"items\":[{\"Import\":{\"path\":\"error\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[0,7],\"range_end\":[0,11]},\"pos\":{\"range_start\":[0,0],\"range_end\":[0,13]},\"hash\":\"11021445597161914801\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[1,8],\"range_end\":[1,10]},\"pos\":{\"range_start\":[1,1],\"range_end\":[1,12]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"function\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[2,8],\"range_end\":[2,15]},\"pos\":{\"range_start\":[2,1],\"range_end\":[2,17]},\"hash\":\"7292167443911913662\"}},{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"callStack\",\"public\":true,\"inner_page_id\":16852568614524072410,\"name_pos\":{\"range_start\":[5,11],\"range_end\":[5,20]},\"pos\":{\"range_start\":[5,5],\"range_end\":[8,2]},\"hash\":\"24019146199223871211005847242225882102311673632110991337669204\"}},{\"NativeFunction\":{\"name\":\"panic\",\"parameters\":[{\"name\":\"error\",\"rtype\":{\"Generic\":{\"rtype\":\"error\",\"pos\":{\"range_start\":[9,5],\"range_end\":[17,2]},\"hash\":\"13123725148250221214199137136211408921910815837165402616013737101\"}},\"pos\":{\"range_start\":[10,14],\"range_end\":[10,19]},\"multi_capture\":false}],\"return_type\":{\"Generic\":{\"rtype\":\"void\",\"pos\":{\"range_start\":[10,8],\"range_end\":[10,13]},\"hash\":\"\"}},\"public\":true,\"name_pos\":{\"range_start\":[10,8],\"range_end\":[10,13]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,7]},\"hash\":\"\",\"no_return\":true}},{\"NativeFunction\":{\"name\":\"sleep\",\"parameters\":[{\"name\":\"ms\",\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"pos\":{\"range_start\":[11,14],\"range_end\":[11,16]},\"multi_capture\":false}],\"return_type\":{\"Generic\":{\"rtype\":\"void\",\"pos\":{\"range_start\":[11,8],\"range_end\":[11,13]},\"hash\":\"\"}},\"public\":true,\"name_pos\":{\"range_start\":[11,8],\"range_end\":[11,13]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[11,5],\"range_end\":[11,7]},\"hash\":\"\",\"no_return\":true}},{\"NativeFunction\":{\"name\":\"create_thread\",\"parameters\":[{\"name\":\"inside\",\"rtype\":{\"Generic\":{\"rtype\":\"function\",\"pos\":{\"range_start\":[7,5],\"range_end\":[10,2]},\"hash\":\"462052099287153234139148111240247209104175875524244642202156010\"}},\"pos\":{\"range_start\":[12,22],\"range_end\":[12,28]},\"multi_capture\":false}],\"return_type\":{\"Generic\":{\"rtype\":\"void\",\"pos\":{\"range_start\":[12,8],\"range_end\":[12,21]},\"hash\":\"\"}},\"public\":true,\"name_pos\":{\"range_start\":[12,8],\"range_end\":[12,21]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[12,5],\"range_end\":[12,7]},\"hash\":\"\",\"no_return\":true}}],\"dependents\":[7292167443911913662,15576188344227026274,5140352417142422684],\"dependencies\":[{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7292167443911913662,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":11021445597161914801,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[0,7],\"range_end\":[0,9]},\"pos\":{\"range_start\":[0,0],\"range_end\":[0,11]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[1,8],\"range_end\":[1,13]},\"pos\":{\"range_start\":[1,1],\"range_end\":[1,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"cursorPosition\",\"public\":true,\"inner_page_id\":18406104460051658334,\"name_pos\":{\"range_start\":[3,11],\"range_end\":[3,25]},\"pos\":{\"range_start\":[3,5],\"range_end\":[7,2]},\"hash\":\"103408846136106187811215316510238181821748196162238625310199\"}},{\"Class\":{\"name\":\"error\",\"public\":true,\"inner_page_id\":15862670132359745056,\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,16]},\"pos\":{\"range_start\":[9,5],\"range_end\":[17,2]},\"hash\":\"13123725148250221214199137136211408921910815837165402616013737101\"}}],\"dependents\":[6107902802699294681,343,5140352417142422684],\"dependencies\":[{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":18406104460051658334,\"inner\":11021445597161914801,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[{\"Constructor\":{\"parameters\":[{\"name\":\"line\",\"pos\":{\"range_start\":[4,8],\"range_end\":[4,12]}},{\"name\":\"column\",\"pos\":{\"range_start\":[4,14],\"range_end\":[4,20]}}],\"inner_page_id\":12022844216843158093,\"name_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[4,5],\"range_end\":[4,22]}}},{\"Variable\":{\"name\":\"line\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[5,9],\"range_end\":[5,22]},\"name_pos\":{\"range_start\":[5,11],\"range_end\":[5,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[5,18],\"range_end\":[5,21]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"hash\":\"2522091804927167188145121138253122184894822237115165166170132095\"}},{\"Variable\":{\"name\":\"column\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[6,9],\"range_end\":[6,24]},\"name_pos\":{\"range_start\":[6,11],\"range_end\":[6,17]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[6,20],\"range_end\":[6,23]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"hash\":\"22010861961252214207163232302441002208615747581151462482449291\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":12022844216843158093,\"inner\":18406104460051658334,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":18406104460051658334,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":15862670132359745056,\"inner\":11021445597161914801,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[{\"Constructor\":{\"parameters\":[{\"name\":\"code\",\"pos\":{\"range_start\":[10,8],\"range_end\":[10,12]}},{\"name\":\"title\",\"pos\":{\"range_start\":[10,14],\"range_end\":[10,19]}},{\"name\":\"message\",\"pos\":{\"range_start\":[10,21],\"range_end\":[10,28]}}],\"inner_page_id\":4027942499613891985,\"name_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[10,5],\"range_end\":[10,30]}}},{\"Variable\":{\"name\":\"code\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[12,9],\"range_end\":[12,21]},\"name_pos\":{\"range_start\":[12,11],\"range_end\":[12,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[12,17],\"range_end\":[12,20]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"hash\":\"166291910519318825244720401953331213256222656127495557\"}},{\"Variable\":{\"name\":\"title\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[13,9],\"range_end\":[13,22]},\"name_pos\":{\"range_start\":[13,11],\"range_end\":[13,16]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[13,18],\"range_end\":[13,21]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"hash\":\"19723111215230558214848232148710461861682422242102248016188167\"}},{\"Variable\":{\"name\":\"message\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[14,9],\"range_end\":[14,24]},\"name_pos\":{\"range_start\":[14,11],\"range_end\":[14,18]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[14,20],\"range_end\":[14,23]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"hash\":\"3243152167957912689241291962499322529248841124916517092731\"}},{\"Variable\":{\"name\":\"path\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[15,9],\"range_end\":[15,24]},\"name_pos\":{\"range_start\":[15,11],\"range_end\":[15,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[15,17],\"range_end\":[15,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"hash\":\"631094933616474197133131215901815914993100134122241217166132179\"}},{\"Variable\":{\"name\":\"pos\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[16,9],\"range_end\":[16,31]},\"name_pos\":{\"range_start\":[16,11],\"range_end\":[16,14]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[16,16],\"range_end\":[16,30]},\"rtype\":{\"Generic\":{\"rtype\":\"cursorPosition\",\"pos\":{\"range_start\":[3,5],\"range_end\":[7,2]},\"hash\":\"103408846136106187811215316510238181821748196162238625310199\"}},\"hash\":\"20720811025416314515062151752241101761222238813933771752033614160\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":4027942499613891985,\"inner\":15862670132359745056,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/error.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":15862670132359745056,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":16852568614524072410,\"inner\":6107902802699294681,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/thread.ei\",\"items\":[{\"Variable\":{\"name\":\"location\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[6,9],\"range_end\":[6,36]},\"name_pos\":{\"range_start\":[6,11],\"range_end\":[6,19]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[6,21],\"range_end\":[6,35]},\"rtype\":{\"Generic\":{\"rtype\":\"cursorPosition\",\"pos\":{\"range_start\":[3,5],\"range_end\":[7,2]},\"hash\":\"103408846136106187811215316510238181821748196162238625310199\"}},\"hash\":\"206911921401481261591981584023323144204170454114332111222101183183\"}},{\"Variable\":{\"name\":\"path\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[7,9],\"range_end\":[7,24]},\"name_pos\":{\"range_start\":[7,11],\"range_end\":[7,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[7,17],\"range_end\":[7,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"hash\":\"0211282472121413523223495821701651991821401231692157123012410699\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7292167443911913662,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":10147312302035922304,\"inner\":7292167443911913662,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/function.ei\",\"items\":[{\"Variable\":{\"name\":\"name\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[8,9],\"range_end\":[8,24]},\"name_pos\":{\"range_start\":[8,11],\"range_end\":[8,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[8,17],\"range_end\":[8,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"hash\":\"103183179253225166179146149101200137246250151929134929511214325345\"}},{\"Variable\":{\"name\":\"call_stack\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[9,9],\"range_end\":[9,33]},\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,21]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[9,23],\"range_end\":[9,32]},\"rtype\":{\"Generic\":{\"rtype\":\"callStack\",\"pos\":{\"range_start\":[5,5],\"range_end\":[8,2]},\"hash\":\"24019146199223871211005847242225882102311673632110991337669204\"}},\"hash\":\"1811632382485565552669251251918622013919420024159471176444146\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":7292167443911913662,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":15576188344227026274,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/nullAble.ei\",\"items\":[{\"Import\":{\"path\":\"thread\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,13]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,15]},\"hash\":\"6107902802699294681\"}},{\"Class\":{\"name\":\"nullAble\",\"public\":true,\"inner_page_id\":697792375620062970,\"name_pos\":{\"range_start\":[6,11],\"range_end\":[6,19]},\"pos\":{\"range_start\":[6,5],\"range_end\":[14,2]},\"hash\":\"107208127281832461381737366232542191811561691341210132274184130\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":697792375620062970,\"inner\":15576188344227026274,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/nullAble.ei\",\"items\":[{\"Constructor\":{\"parameters\":[{\"name\":\"type\",\"pos\":{\"range_start\":[7,8],\"range_end\":[7,12]}}],\"inner_page_id\":13518137614288847450,\"name_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"pos\":{\"range_start\":[7,5],\"range_end\":[7,14]}}},{\"Variable\":{\"name\":\"type\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[8,9],\"range_end\":[8,23]},\"name_pos\":{\"range_start\":[8,11],\"range_end\":[8,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[8,18],\"range_end\":[8,22]},\"rtype\":{\"Generic\":{\"rtype\":\"Type\",\"pos\":{\"range_start\":[6,20],\"range_end\":[6,24]},\"hash\":\"\"}},\"hash\":\"2114220211251342262141901291067817323416324729906091128313261\"}},{\"Function\":{\"name\":\"resolve\",\"parameters\":[],\"return_type\":{\"Generic\":{\"rtype\":\"Type\",\"pos\":{\"range_start\":[6,20],\"range_end\":[6,24]},\"hash\":\"\"}},\"inner_page_id\":6369714049434172094,\"public\":true,\"name_pos\":{\"range_start\":[9,12],\"range_end\":[9,19]},\"body_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"no_return\":false,\"parameters_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"return_pos\":{\"range_start\":[9,24],\"range_end\":[9,28]},\"pos\":{\"range_start\":[9,9],\"range_end\":[13,6]},\"hash\":\"103491482509224125111510059212456897710905315919414199185\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":15576188344227026274,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":13518137614288847450,\"inner\":697792375620062970,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/nullAble.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":697792375620062970,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":6369714049434172094,\"inner\":697792375620062970,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/nullAble.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":697792375620062970,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":15576188344227026274,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":16316289034799634696,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/class.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"FileKey\":{\"key_name\":\"dont_fix_variant\",\"value\":{\"VariableType\":{\"value\":\"true\",\"reference\":\"\",\"pos\":{\"range_start\":[5,19],\"range_end\":[5,23]}}},\"key_name_location\":{\"range_start\":[5,2],\"range_end\":[5,17]},\"value_location\":{\"range_start\":[5,18],\"range_end\":[5,23]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,23]}}},{\"Class\":{\"name\":\"class\",\"public\":true,\"inner_page_id\":9698536704662723522,\"name_pos\":{\"range_start\":[6,11],\"range_end\":[6,16]},\"pos\":{\"range_start\":[6,5],\"range_end\":[9,2]},\"hash\":\"17221819558111292185316160342411452291962279569190721167860173\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":9698536704662723522,\"inner\":16316289034799634696,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/class.ei\",\"items\":[{\"Variable\":{\"name\":\"name\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[7,9],\"range_end\":[7,24]},\"name_pos\":{\"range_start\":[7,11],\"range_end\":[7,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[7,17],\"range_end\":[7,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"hash\":\"1964023176971467120886914712041512511563473172178132138300\"}},{\"Variable\":{\"name\":\"hash\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[8,9],\"range_end\":[8,24]},\"name_pos\":{\"range_start\":[8,11],\"range_end\":[8,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[8,17],\"range_end\":[8,23]},\"rtype\":{\"Generic\":{\"rtype\":\"string\",\"pos\":{\"range_start\":[12,5],\"range_end\":[63,2]},\"hash\":\"14521012681157199101596227710841162331702025021043455524993\"}},\"hash\":\"171109174801721441181802061361298149188606713410520132723578\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":16316289034799634696,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":12732385855440395869,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/dyn.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Class\":{\"name\":\"dyn\",\"public\":true,\"inner_page_id\":16293117744063907158,\"name_pos\":{\"range_start\":[5,11],\"range_end\":[5,14]},\"pos\":{\"range_start\":[5,5],\"range_end\":[5,17]},\"hash\":\"1573652122222616724337114331621942321422131224214511221978228101\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":16293117744063907158,\"inner\":12732385855440395869,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/dyn.ei\",\"items\":[],\"dependents\":[],\"dependencies\":[{\"hash\":12732385855440395869,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":5140352417142422684,\"inner\":null,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/mem.ei\",\"items\":[{\"Import\":{\"path\":\"string\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[3,8],\"range_end\":[3,13]},\"pos\":{\"range_start\":[3,1],\"range_end\":[3,15]},\"hash\":\"17018069723813511702\"}},{\"Import\":{\"path\":\"int\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[4,8],\"range_end\":[4,10]},\"pos\":{\"range_start\":[4,1],\"range_end\":[4,12]},\"hash\":\"7659122406100850684\"}},{\"Import\":{\"path\":\"vector\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[5,8],\"range_end\":[5,13]},\"pos\":{\"range_start\":[5,1],\"range_end\":[5,15]},\"hash\":\"6944448437676459577\"}},{\"Import\":{\"path\":\"error\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[6,8],\"range_end\":[6,12]},\"pos\":{\"range_start\":[6,1],\"range_end\":[6,14]},\"hash\":\"11021445597161914801\"}},{\"Import\":{\"path\":\"thread\",\"public\":false,\"reference\":\"\",\"path_pos\":{\"range_start\":[7,8],\"range_end\":[7,13]},\"pos\":{\"range_start\":[7,1],\"range_end\":[7,15]},\"hash\":\"6107902802699294681\"}},{\"Class\":{\"name\":\"rawMemoryData\",\"public\":true,\"inner_page_id\":2115986960354148963,\"name_pos\":{\"range_start\":[9,11],\"range_end\":[9,24]},\"pos\":{\"range_start\":[9,5],\"range_end\":[12,2]},\"hash\":\"1641711301412065309576237101575141341121449822319129255178\"}}],\"dependents\":[343],\"dependencies\":[{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]},{\"hash\":2115986960354148963,\"inner\":5140352417142422684,\"path\":\"/home/ahmtcn123/Masaüstü/Projects/InBuild/Ellie-Language/lib/mem.ei\",\"items\":[{\"Variable\":{\"name\":\"type_id\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[10,9],\"range_end\":[10,24]},\"name_pos\":{\"range_start\":[10,11],\"range_end\":[10,18]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[10,20],\"range_end\":[10,23]},\"rtype\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"hash\":\"1971831041048620352231124177201118085213301428977188532058647\"}},{\"Variable\":{\"name\":\"data\",\"constant\":false,\"public\":true,\"has_type\":true,\"has_value\":false,\"value\":\"Void\",\"pos\":{\"range_start\":[11,9],\"range_end\":[11,26]},\"name_pos\":{\"range_start\":[11,11],\"range_end\":[11,15]},\"value_pos\":{\"range_start\":[0,0],\"range_end\":[0,0]},\"type_pos\":{\"range_start\":[11,17],\"range_end\":[11,25]},\"rtype\":{\"ParentGeneric\":{\"rtype\":\"vector\",\"parent_pos\":{\"range_start\":[7,5],\"range_end\":[24,2]},\"generics\":[{\"value\":{\"Generic\":{\"rtype\":\"int\",\"pos\":{\"range_start\":[9,5],\"range_end\":[55,2]},\"hash\":\"194120239661551611576014719716122822713727841639747374820883\"}},\"pos\":{\"range_start\":[7,5],\"range_end\":[24,2]}}],\"hash\":\"29200861763765181284625518410720186190159214578712611267242\"}},\"hash\":\"62229196126631392474818481194220302153016019041271818251218165\"}}],\"dependents\":[],\"dependencies\":[{\"hash\":5140352417142422684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":17018069723813511702,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":7659122406100850684,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6944448437676459577,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":11021445597161914801,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false},{\"hash\":6107902802699294681,\"processed\":false,\"module\":null,\"deep_link\":null,\"public\":false}]}],\"version\":{\"minor\":0,\"major\":2,\"bug\":1},\"modules\":[]}"; diff --git a/core/src/defs.rs b/core/src/defs.rs index 1cf11ec3..4f09fd00 100644 --- a/core/src/defs.rs +++ b/core/src/defs.rs @@ -143,6 +143,13 @@ pub struct Version { pub bug: u8, } +impl PartialEq for Version { + fn eq(&self, other: &Self) -> bool { + //Ignore bug + self.minor == other.minor && self.major == other.major + } +} + impl Version { pub fn build_from_string(input: String) -> Version { Version { diff --git a/lib/ellie.ei b/lib/ellie.ei index 39f6299f..ebaa3a02 100644 --- a/lib/ellie.ei +++ b/lib/ellie.ei @@ -1,7 +1,7 @@ /* Copyright (c) 2020 Behemehal. See license file for details */ -@version = "0.2.0"; //Changing this triggers build.rs +@version = "0.2.1"; //Changing this triggers build.rs pub import void; pub import string; pub import char; diff --git a/parser/src/parser.rs b/parser/src/parser.rs index e1573897..a7e152c7 100644 --- a/parser/src/parser.rs +++ b/parser/src/parser.rs @@ -66,7 +66,9 @@ impl ProcessedPage { pub struct Module { pub hash: u64, pub name: String, + pub description: String, pub initial_page: u64, + pub ellie_version: ellie_core::defs::Version, pub pages: Vec, pub version: ellie_core::defs::Version, pub modules: Vec, @@ -147,12 +149,14 @@ impl Parser { hash: p.hash, inner: p.inner, path: p.path.clone(), + module: true, dependents: p.dependents.clone(), dependencies: p.dependencies.clone(), ..Default::default() }) .collect::>(); - self.find_page(self.initial_page).unwrap().dependencies = module + + let imported_dependencies: Vec = module .pages .iter() .map(|x| ellie_tokenizer::tokenizer::Dependency { @@ -163,35 +167,13 @@ impl Parser { public: false, }) .collect(); - self.pages.extend(unprocessed_pages); - } - /* - pub fn import_processed_module(&mut self, processed_pages: Vec) { - let unprocessed_pages = processed_pages - .iter() - .map(|p| ellie_tokenizer::tokenizer::Page { - hash: p.hash, - inner: p.inner, - path: p.path.clone(), - dependents: p.dependents.clone(), - dependencies: p.dependencies.clone(), - ..Default::default() - }) - .collect::>(); - self.find_page(self.initial_page).unwrap().dependencies = unprocessed_pages - .iter() - .map(|x| ellie_tokenizer::tokenizer::Dependency { - hash: x.hash, - processed: true, - deep_link: if x.hash == 343 { None } else { Some(343) }, - public: false, - }) - .collect(); + self.find_page(self.initial_page) + .unwrap() + .dependencies + .extend(imported_dependencies); self.pages.extend(unprocessed_pages); - self.processed_pages.extend(processed_pages); } - */ pub fn resolve_type_name(&self, rtype: ellie_core::definite::types::Types) -> String { match rtype { @@ -330,6 +312,7 @@ impl Parser { if !searched.contains(&target_page) { for dep in self_dependendencies { searched.push(target_page); + if let Some(module_initial_page) = dep.module { let unprocessed_page = self .find_page(dep.hash) @@ -828,14 +811,16 @@ impl Parser { } } - pub fn parse(&mut self, module_name: String) -> Module { + pub fn parse(&mut self, module_name: String, module_description: String, ellie_version: defs::Version) -> Module { self.process_page(self.initial_page); Module { name: module_name, + description: module_description, initial_page: self.initial_page, hash: self.calculate_hash(), pages: self.processed_pages.clone(), version: self.version.clone(), + ellie_version, modules: self .modules .iter() diff --git a/parser/src/processors/type_processor.rs b/parser/src/processors/type_processor.rs index adb4d26a..1e180e54 100644 --- a/parser/src/processors/type_processor.rs +++ b/parser/src/processors/type_processor.rs @@ -22,10 +22,11 @@ pub fn process( Vec::new(), 0, ); + if deep_search_result.found { match deep_search_result.found_item { - crate::parser::DeepSearchItems::Class(_) => todo!(), + crate::parser::DeepSearchItems::Class(_) => todo!("class type not yet implemented"), crate::parser::DeepSearchItems::Variable(e) => { Ok(types::Types::VariableType(types::variable::VariableType { value: e.name, @@ -33,8 +34,8 @@ pub fn process( pos: from.get_pos(), })) } - crate::parser::DeepSearchItems::Function(_) => todo!(), - crate::parser::DeepSearchItems::ImportReference(_) => todo!(), + crate::parser::DeepSearchItems::Function(_) => todo!("function type not yet implemented"), + crate::parser::DeepSearchItems::ImportReference(_) => todo!("import reference type not yet implemented"), crate::parser::DeepSearchItems::BrokenPageGraph => todo!(), crate::parser::DeepSearchItems::MixUp(_) => todo!(), crate::parser::DeepSearchItems::None => todo!(), @@ -68,15 +69,15 @@ pub fn process( Err(errors) } } - Processors::Negative(_) => todo!(), - Processors::Array(_) => todo!(), - Processors::Operator(_) => todo!(), - Processors::Reference(_) => todo!(), - Processors::BraceReference(_) => todo!(), - Processors::FunctionCall(_) => todo!(), - Processors::ClassCall(_) => todo!(), - Processors::Cloak(_) => todo!(), - Processors::Collective(_) => todo!(), + Processors::Negative(_) => todo!("negative type not yet implemented"), + Processors::Array(_) => todo!("array type not yet implemented"), + Processors::Operator(_) => todo!("operator type not yet implemented"), + Processors::Reference(_) => todo!("reference type not yet implemented"), + Processors::BraceReference(_) => todo!("brace_reference_type type not yet implemented"), + Processors::FunctionCall(_) => todo!("functionCall type not yet implemented"), + Processors::ClassCall(_) => todo!("classCall type not yet implemented"), + Processors::Cloak(_) => todo!("cloak type not yet implemented"), + Processors::Collective(_) => todo!("collective type not yet implemented"), Processors::AsKeyword(as_keyword) => { match process(*as_keyword.data.target, parser, page_id, ignore_hash.clone()) { Ok(resolved_types) => { diff --git a/src/bin/elliec.rs b/src/bin/elliec.rs index a51cc43b..8098059f 100644 --- a/src/bin/elliec.rs +++ b/src/bin/elliec.rs @@ -1,623 +1,389 @@ -use ellie_engine::cli_outputs; -use ellie_engine::cli_utils; -use ellie_parser::parser; -use ellie_tokenizer::tokenizer::{self, ResolvedImport}; -use path_absolutize::Absolutize; -use std::collections::hash_map::DefaultHasher; -use std::env; -use std::fs; -use std::hash::{Hash, Hasher}; +use clap::ValueHint; +use clap::{App, AppSettings, Arg}; +use ellie_engine::{cli_outputs, cli_utils}; use std::path::Path; fn main() { - println!("{}]0;{}{}", '\u{001b}', "Ellie", '\u{007}'); - if env::args().any(|x| x == "-v" || x == "--version" || x == "-dv" || x == "--detailed-version") - { - if env::args().any(|x| x == "-dv" || x == "--detailed-version") { - println!( - "Ellie v{} - Code: {}\n\nTokenizer Version: v{}\nParser Version: v{}\nRuntime Version: v{}\nCore version: v{}\nEllie Standard Types Version: v{}\n", - ellie_engine::cli_constants::ELLIE_VERSION, - ellie_engine::cli_constants::ELLIE_VERSION_NAME, - ellie_engine::cli_constants::ELLIE_TOKENIZER_VERSION, - ellie_engine::cli_constants::ELLIE_PARSER_VERSION, - ellie_engine::cli_constants::ELLIE_RUNTIME_VERSION, - ellie_engine::cli_constants::ELLIE_CORE_VERSION, - ellie_engine::cli_constants::ELLIE_STD_VERSION, - ); - } else { - println!( - "Ellie v{} - Code: {}", - ellie_engine::cli_constants::ELLIE_VERSION, - ellie_engine::cli_constants::ELLIE_VERSION_NAME - ); - } - } else if env::args().any(|x| x == "-h" || x == "--help") { - println!("Ellie compiler"); - println!("Usage: elliec [options] [file path | code]"); - println!("Options:"); - println!("\t--version || -v : Show version"); - println!("\t--version || -dv : Show version with internal components"); - println!("\t--help || -h : Show help"); - println!("\t--output || -o : [Required] Desired code output; bin, json, depA"); - println!("\t--output-path || -op : [Required] Compiled output path"); - println!("\t--set-version || -sv : [Required] Set version for workspace"); - println!("\t--json-output || -jo : Make error and warning output as json"); - println!("\t--disable-warnings || -dw : Disable warnings"); - } else { - let args = env::args() - .collect::>() - .drain(1..) - .collect::>(); - - let mut cli_output_type = cli_utils::CliOutputType::ConsoleOutput; - let mut disable_warnings = false; - if args.is_empty() { - println!("No file present\n-h for help"); - std::process::exit(1); - } else if !env::args().any(|x| x == "-o" || x == "--output") { - println!("No ouput present\n-h for help"); - std::process::exit(1); - } else if !env::args().any(|x| x == "-op" || x == "--output-path") { - println!("No ouput path present\n-h for help"); - std::process::exit(1); - } else if !env::args().any(|x| x == "-sv" || x == "--set-version") { - println!("No version name is set\n-h for help"); - std::process::exit(1); - } else { - let output_arg = env::args() - .position(|x| x == "-o" || x == "--output") - .unwrap(); - - let output_path_arg = env::args() - .position(|x| x == "-op" || x == "--output-path") - .unwrap(); - - let version_arg = env::args() - .position(|x| x == "-sv" || x == "--set-version") - .unwrap(); - - if output_arg == env::args().len() { - println!("No ouput type present\n-h for help"); + println!("\x1B]0;{}\x07", "Ellie Compiler"); + + let app = App::new("EllieCompiler") + .setting(AppSettings::SubcommandRequiredElseHelp) + .subcommand( + App::new("compile") + .about("Compile option") + .arg( + Arg::new("jsonLog") + .help("Output json log") + .short('j') + .long("-json-log"), + ) + .arg( + Arg::new("disableWarnings") + .help("Disable warnings") + .short('d') + .long("-disable-warnings"), + ) + .arg( + Arg::new("insertModule") + .help("Insert a module from binary") + .short('i') + .long("--insert-module") + .takes_value(true) + .multiple_values(true) + .value_hint(ValueHint::FilePath), + ) + .arg( + Arg::new("binaryVersion") + .help("Binary version") + .short('b') + .long("--binary-version") + .default_value("1.0.0") + .takes_value(true), + ) + .arg( + Arg::new("description") + .help("Description of module") + .short('c') + .long("--module-description") + .default_value("A ellie package") + .takes_value(true), + ) + .arg( + Arg::new("moduleName") + .help("Name of module") + .short('m') + .long("--module-name") + .takes_value(true), + ) + .arg( + Arg::new("outputPath") + .help("Output path to write") + .short('p') + .long("--output-path") + .takes_value(true) + .value_hint(ValueHint::DirPath), + ) + .arg( + Arg::new("outputType") + .help("Output type") + .short('o') + .long("--output-type") + .takes_value(true) + .default_value("bin"), + ) + .arg( + Arg::new("target") + .help("Target file to compile") + .takes_value(true) + .required(true) + .value_hint(ValueHint::FilePath), + ), + ) + .subcommand( + App::new("viewModule") + .about("Analyze given module information") + .arg( + Arg::new("jsonLog") + .help("Output json log") + .short('j') + .long("-json-log"), + ) + .arg( + Arg::new("target") + .help("Target module to analyze") + .required(true) + .value_hint(ValueHint::FilePath), + ), + ) + .subcommand( + App::new("version") + .about("Get version") + .arg( + Arg::new("jsonLog") + .help("Output json log") + .short('j') + .long("-json-log"), + ) + .arg(Arg::new("detailed").short('d').long("--detailed-version")), + ); + + let matches = app.get_matches(); + match matches.subcommand() { + Some(("compile", matches)) => { + let version = ellie_core::defs::Version::build_from_string_checked( + matches.value_of("binaryVersion").unwrap().to_string(), + ) + .unwrap_or_else(|_| { + println!( + "{}Error:{} Given binary version does not fit to versioning format", + cli_utils::Colors::Red, + cli_utils::Colors::Reset + ); std::process::exit(1); - } - - if output_path_arg == env::args().len() { - println!("No ouput name present\n-h for help"); - std::process::exit(1); - } - - if version_arg == env::args().len() { - println!("No version data presented to be set as workspace version\n-h for help"); - std::process::exit(1); - } - - let output_type = env::args().nth(output_arg + 1).unwrap(); - let output_path = env::args().nth(output_path_arg + 1).unwrap(); - let version_str = env::args().nth(version_arg + 1).unwrap(); - let given_workspace_version = match ellie_core::defs::Version::build_from_string_checked( - version_str, - ) { - Ok(version) => version, - Err(_) => { - println!("Presented version data is not correct, expected version type: '1.1.1'; Minor.Major.Bug\n-h for help"); + }); + let target_path = { + let path = Path::new(matches.value_of("target").unwrap().clone()); + if path.exists() { + matches.value_of("target").unwrap().to_string() + } else { + println!( + "{}Error:{} Target path does not exist", + cli_utils::Colors::Red, + cli_utils::Colors::Reset + ); std::process::exit(1); } }; - - let prefered_output_type = if output_type == "bin" - || output_type == "json" - || output_type == "depA" - { - match output_type.as_str() { - "bin" => cli_utils::OutputTypes::Bin, - "json" => cli_utils::OutputTypes::Json, - "depA" => cli_utils::OutputTypes::DependencyAnalysis, - _ => unreachable!(), + let output_path = if let Some(output) = matches.value_of("outputPath") { + let path = Path::new(output.clone()); + + //Check the output path is exists or check path is file and parent directory exists + if path.exists() + || (path.is_file() && path.parent().is_some() + || path.parent().unwrap().exists()) + { + output.to_string() + } else { + println!( + "{}Error:{} Output path does not exist", + cli_utils::Colors::Red, + cli_utils::Colors::Reset + ); + std::process::exit(1); } } else { - println!("Unknown ouput type present\nAvailable:\n\tbin, json, depA\n-h for help"); - std::process::exit(1); + Path::new(&target_path) + .parent() + .unwrap() + .to_str() + .unwrap() + .to_string() }; - let file_args = args - .into_iter() - .enumerate() - .filter(|(index, path)| { - Path::new(path).is_file() && index != &(output_path_arg) - }) - .map(|x| x.1) - .collect::>(); - - match file_args.first() { - Some(main_path) => match cli_utils::read_file(main_path) { - Ok(file_content) => { - let mut pager = tokenizer::Pager::new( - file_content, - Path::new(main_path).to_str().unwrap().to_string(), - |path, file_name| { - let path = Path::new(&path) - .parent() - .unwrap() - .to_str() - .unwrap() - .to_string(); - let file = if cli_utils::file_exists( - path.clone() + "/" + &file_name.clone(), - ) { - Some(path.clone() + "/" + &file_name.clone()) - } else if cli_utils::file_exists( - path.clone() + "/" + &file_name.clone() + ".ei", - ) { - Some(path.clone() + "/" + &file_name.clone() + ".ei") - } else { - None - }; - - if file_name == "ellie" { - ResolvedImport { - found: true, - matched: tokenizer::ImportType::Module(tokenizer::Module { - hash: 343, - initial_page: 343, - version: - ellie_core::builded_libraries::ELLIE_STD_VERSION - .clone(), - name: "ellie".to_owned(), - }), - hash: 343, - path: "".to_string(), - ..Default::default() - } - } else { - match file { - Some(file) => { - let file = Path::new(&file).absolutize().unwrap(); - match cli_utils::read_file( - &file.to_str().unwrap().to_string(), - ) { - Ok(ext) => { - let mut hasher = DefaultHasher::new(); - ext.hash(&mut hasher); - ResolvedImport { - found: true, - matched: ellie_tokenizer::tokenizer::ImportType::Code(ext), - hash: hasher.finish(), - path: file.to_str().unwrap().to_string(), - ..Default::default() - } - } - Err(err) => ResolvedImport { - found: false, - resolve_error: err, - ..Default::default() - }, - } - } - None => ResolvedImport { - found: false, - ..Default::default() - }, - } - } - }, - None, - ); + let modules = if let Some(modules) = matches.values_of("insertModule") { + let mut parsed_modules = vec![]; - match pager.run() { - Err(pager_errors) => { - if cli_output_type == cli_utils::CliOutputType::Json { - for error in pager_errors.clone() { - let mut output = cli_outputs::COMPILER_ERROR.clone(); - output.extra.push(cli_outputs::CliOuputExtraData { - key: "error".to_string(), - value: error, - }); + //Iter through all modules + for module in modules { + let path = Path::new(module); - println!("{}", serde_json::to_string(&output).unwrap()); - } - } else { - cli_utils::print_errors(&pager_errors, |path| { - match cli_utils::read_file(&path) { - Ok(e) => e, - Err(err) => { + //If module path is file + if path.is_file() { + //If module path is file + match cli_utils::read_file_bin(path) { + Ok(file_content) => { + match bincode::deserialize::( + file_content.as_slice(), + ) { + Ok(module) => { + let current_ellie_version = + ellie_core::defs::Version::build_from_string( + ellie_engine::engine_constants::ELLIE_VERSION + .to_owned(), + ); + if current_ellie_version != module.ellie_version { + if matches.is_present("jsonLog") { + let mut cli_module_output = + crate::cli_outputs::LEGACY_MODULE.clone(); + cli_module_output.extra.push( + cli_outputs::CliOuputExtraData { + key: 0, + value: module.ellie_version.clone(), + }, + ) + } else { println!( - "Cannot read file '{}' {}[{}]{}", - path, - cli_utils::Colors::Red, - err, - cli_utils::Colors::Reset + "\n{}Info{}: This module is legacy, used ellie_version: {}{}.{}.{}{} current ellie_version: {}{}.{}.{}{}", + cli_utils::Colors::Cyan, + cli_utils::Colors::Reset, + cli_utils::Colors::Yellow, + module.ellie_version.major, + module.ellie_version.minor, + module.ellie_version.bug, + cli_utils::Colors::Reset, + cli_utils::Colors::Yellow, + current_ellie_version.major, + current_ellie_version.minor, + current_ellie_version.bug, + cli_utils::Colors::Reset, ); - std::process::exit(1); } } - }); - } - } - Ok(_) => { - let mut parser = parser::Parser::new( - pager.pages.clone(), - None, - given_workspace_version, - ); - - if !env::args().any(|x| x == "-es" || x == "--exclude-std") { - let ellie_module: parser::Module = serde_json::from_str( - ellie_core::builded_libraries::ELLIE_STANDARD_LIBRARY, - ) - .unwrap(); - - parser.import_module(ellie_module) - //parser.import_processed_module(std_pages); - } - - if env::args().any(|x| x == "-jo" || x == "--json-output") { - cli_output_type = cli_utils::CliOutputType::Json; - } - - if env::args().any(|x| x == "-dw" || x == "--disable-warnings") { - disable_warnings = true; - } - - let workspace = parser.parse( - Path::new(main_path) - .file_name() - .unwrap() - .to_str() - .unwrap() - .to_owned(), - ); - - if !parser.informations.has_no_warnings() && !disable_warnings { - if cli_output_type == cli_utils::CliOutputType::Json { - for warning in parser.informations.warnings.clone() { + parsed_modules.push(module); + } + Err(e) => { + if matches.is_present("jsonLog") { + let mut cli_module_output = + cli_outputs::READ_BINARY_MODULE_ERROR.clone(); + cli_module_output.extra.push( + cli_outputs::CliOuputExtraData { key: 0, value: 0 }, + ); println!( "{}", - serde_json::to_string(&warning).unwrap() + serde_json::to_string_pretty(&cli_module_output) + .unwrap() ); - } - } else { - cli_utils::print_warnings( - &parser.informations.warnings, - |path| match cli_utils::read_file(&path) { - Ok(e) => e, - Err(err) => { - println!( - "Cannot read file '{}' {}[{}]{}", - path, - cli_utils::Colors::Red, - err, - cli_utils::Colors::Reset - ); - std::process::exit(1); - } - }, - ); - } - } - - if !parser.informations.has_no_errors() { - if cli_output_type == cli_utils::CliOutputType::Json { - for error in parser.informations.errors.clone() { - println!("{}", serde_json::to_string(&error).unwrap()); - } - } else { - cli_utils::print_errors( - &parser.informations.errors, - |path| match cli_utils::read_file(&path) { - Ok(e) => e, - Err(err) => { - println!( - "Failed to ouput error. Cannot read file '{}' {}[{}]{}", - path, - cli_utils::Colors::Red, - err, - cli_utils::Colors::Reset - ); - std::process::exit(1); - } - }, - ); - } - - if parser.informations.warnings.len() == 0 { - if cli_output_type == cli_utils::CliOutputType::Json { - let mut output = cli_outputs::COMPILE_FAILED_WITH_ERRORS_WITH_NO_WARNINGS.clone(); - output.extra.push(cli_outputs::CliOuputExtraData { - key: "errors".to_string(), - value: parser - .informations - .errors - .len() - .clone() - .to_string(), - }); - println!("{}", serde_json::to_string(&output).unwrap()) } else { println!( - "\nCompiling {}failed{} with {}{} errors{}", - cli_utils::Colors::Red, - cli_utils::Colors::Reset, - cli_utils::Colors::Red, - parser.informations.errors.len(), - cli_utils::Colors::Reset, - ); - } - } else { - if cli_output_type == cli_utils::CliOutputType::Json { - let mut output = cli_outputs::COMPILE_FAILED_WITH_ERRORS_WITH_WARNINGS.clone(); - output.extra.push(cli_outputs::CliOuputExtraData { - key: "errors".to_string(), - value: parser - .informations - .errors - .len() - .clone() - .to_string(), - }); - output.extra.push(cli_outputs::CliOuputExtraData { - key: "warnings".to_string(), - value: parser.informations.errors.len().to_string(), - }); - println!("{}", serde_json::to_string(&output).unwrap()) - } else { - println!("\nCompiling {}failed{} with {}{} errors{} and {}{} warnings{}.", - cli_utils::Colors::Red, - cli_utils::Colors::Reset, + "{}Error{}: Failed to decode module '{}{}{}' [{}{}{}]].", cli_utils::Colors::Red, - parser.informations.errors.len(), cli_utils::Colors::Reset, cli_utils::Colors::Yellow, - parser.informations.warnings.len(), - cli_utils::Colors::Reset, - ); - } - } - } else { - if parser.informations.warnings.len() == 0 { - if cli_output_type == cli_utils::CliOutputType::Json { - println!( - "{}", - serde_json::to_string( - &cli_outputs::COMPILE_SUCCESS_WITH_NO_WARNINGS - .clone() - ) - .unwrap() - ) - } else { - println!( - "\nCompiling {}succeeded{}.", - cli_utils::Colors::Green, - cli_utils::Colors::Reset, - ); - } - } else { - if cli_output_type == cli_utils::CliOutputType::Json { - let mut output = - cli_outputs::COMPILE_SUCCESS_WITH_WARNINGS.clone(); - output.extra.push(cli_outputs::CliOuputExtraData { - key: "warnings".to_string(), - value: parser.informations.errors.len().to_string(), - }); - println!("{}", serde_json::to_string(&output).unwrap()) - } else { - println!( - "\nCompiling {}succeeded{} with {}{} warnings{}.", - cli_utils::Colors::Green, + module, cli_utils::Colors::Reset, cli_utils::Colors::Yellow, - parser.informations.warnings.len(), + e, cli_utils::Colors::Reset, ); } - } - - match prefered_output_type { - cli_utils::OutputTypes::Bin => { - let bytes = bincode::serialize(&workspace).unwrap(); - - match Path::new(&output_path).absolutize() { - Ok(resolved_path) => { - if let Err(write_error) = - fs::write(resolved_path, bytes) - { - if cli_output_type - == cli_utils::CliOutputType::Json - { - let mut output = - cli_outputs::WRITE_FILE_ERROR - .clone(); - - output.extra.push( - cli_outputs::CliOuputExtraData { - key: "path".to_string(), - value: format!( - "{:?}", - write_error - ), - }, - ); - - println!( - "{}", - serde_json::to_string(&output) - .unwrap() - ) - } else { - println!( - "\nFailed to write output. [{}{:?}{}]", - cli_utils::Colors::Red, - write_error, - cli_utils::Colors::Reset, - ); - } - } - } - Err(path_error) => { - if cli_output_type - == cli_utils::CliOutputType::Json - { - let mut output = - cli_outputs::PATH_ERROR.clone(); - - output.extra.push( - cli_outputs::CliOuputExtraData { - key: "path".to_string(), - value: format!("{:?}", path_error), - }, - ); - - println!( - "{}", - serde_json::to_string(&output).unwrap() - ) - } else { - println!( - "\nFailed to find output path. [{}{:?}{}]", - cli_utils::Colors::Red, - path_error, - cli_utils::Colors::Reset, - ); - } - } - } - } - cli_utils::OutputTypes::DependencyAnalysis => todo!(), - cli_utils::OutputTypes::Json => { - let json = serde_json::to_string(&workspace).unwrap(); - - match Path::new(&output_path).absolutize() { - Ok(resolved_path) => { - if let Err(write_error) = - fs::write(resolved_path, json) - { - if cli_output_type - == cli_utils::CliOutputType::Json - { - let mut output = - cli_outputs::WRITE_FILE_ERROR - .clone(); - - output.extra.push( - cli_outputs::CliOuputExtraData { - key: "path".to_string(), - value: format!( - "{:?}", - write_error - ), - }, - ); - - println!( - "{}", - serde_json::to_string(&output) - .unwrap() - ) - } else { - println!( - "\nFailed to write output. [{}{:?}{}]", - cli_utils::Colors::Red, - write_error, - cli_utils::Colors::Reset, - ); - } - } - } - Err(path_error) => { - if cli_output_type - == cli_utils::CliOutputType::Json - { - let mut output = - cli_outputs::PATH_ERROR.clone(); - - output.extra.push( - cli_outputs::CliOuputExtraData { - key: "path".to_string(), - value: format!("{:?}", path_error), - }, - ); - - println!( - "{}", - serde_json::to_string(&output).unwrap() - ) - } else { - println!( - "\nFailed to find output path. [{}{:?}{}]", - cli_utils::Colors::Red, - path_error, - cli_utils::Colors::Reset, - ); - } - } - } - } - } - - if env::args().any(|x| x == "-rt" || x == "--render-tokenized") - { - let json = serde_json::to_string(&pager.pages).unwrap(); - let output_file_name = Path::new(main_path) - .file_name() - .unwrap() - .to_str() - .unwrap() - .to_owned(); - let output_file = - format!("{}_tokenized.json", output_file_name); - match fs::write(format!("./{}", output_file), json) { - Ok(_) => { - println!( - "\nTokenized output successfully wrote to {}", - output_file - ); - } - Err(e) => { - println!("\nFailed to write to file {}", e); - } - } - } - - if env::args().any(|x| x == "-rp" || x == "--render-parsed") { - let json = - serde_json::to_string(&parser.processed_pages).unwrap(); - let output_file_name = Path::new(main_path) - .file_name() - .unwrap() - .to_str() - .unwrap() - .to_owned(); - let output_file = - format!("{}_parsed.json", output_file_name); - match fs::write(format!("./{}", output_file), json) { - Ok(_) => { - println!( - "\nParsed output successfully wrote to {}", - output_file - ); - } - Err(e) => { - println!("Failed to write to file {}", e); - } - } + std::process::exit(1); } } } - } - } - Err(err) => { - println!("Unable to read file ~{} [{}]", main_path.clone(), err); - std::process::exit(1); - } - }, - None => { - if env::args().any(|x| x == "-ec" || x == "--eval-code") { - println!("Evaluating code is not yet supported"); + Err(e) => { + println!( + "{}Error:{} Cannot read module file '{}{}{}' {}[{}]{}", + cli_utils::Colors::Red, + cli_utils::Colors::Reset, + cli_utils::Colors::Yellow, + module, + cli_utils::Colors::Reset, + cli_utils::Colors::Red, + e, + cli_utils::Colors::Reset, + ); + std::process::exit(1); + } + }; } else { - println!("No file present\n-h for help"); + println!( + "{}Error:{} Module '{}{}{}' does not exist", + cli_utils::Colors::Red, + cli_utils::Colors::Reset, + cli_utils::Colors::Yellow, + module, + cli_utils::Colors::Reset, + ); + std::process::exit(1); } - std::process::exit(1); + } + parsed_modules + } else { + vec![] + }; + + let compiler_settings = ellie_engine::compile_file::CompilerSettings { + json_log: matches.is_present("jsonLog"), + description: matches.value_of("description").unwrap().to_string(), + name: matches + .value_of("moduleName") + .unwrap_or(&target_path) + .to_string(), + version, + output_type: matches.value_of("outputType").unwrap().to_string(), + warnings: !matches.is_present("disableWarnings"), + }; + + ellie_engine::compile_file::compile( + Path::new(&target_path), + Path::new(&output_path), + modules, + compiler_settings, + ); + } + Some(("version", matches)) => { + if matches.is_present("detailed") { + if matches.is_present("jsonLog") { + let mut output = cli_outputs::VERSION_DETAILED.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "version".to_string(), + value: ellie_engine::engine_constants::ELLIE_VERSION.to_owned(), + }); + + output.extra.push(cli_outputs::CliOuputExtraData { + key: "code".to_string(), + value: ellie_engine::engine_constants::ELLIE_VERSION_NAME.to_owned(), + }); + + output.extra.push(cli_outputs::CliOuputExtraData { + key: "tokenizer_version".to_string(), + value: ellie_engine::engine_constants::ELLIE_TOKENIZER_VERSION.to_owned(), + }); + + output.extra.push(cli_outputs::CliOuputExtraData { + key: "parser_version".to_string(), + value: ellie_engine::engine_constants::ELLIE_PARSER_VERSION.to_owned(), + }); + + output.extra.push(cli_outputs::CliOuputExtraData { + key: "runtime_version".to_string(), + value: ellie_engine::engine_constants::ELLIE_RUNTIME_VERSION.to_owned(), + }); + + output.extra.push(cli_outputs::CliOuputExtraData { + key: "core_version".to_string(), + value: ellie_engine::engine_constants::ELLIE_CORE_VERSION.to_owned(), + }); + + output.extra.push(cli_outputs::CliOuputExtraData { + key: "std_version".to_string(), + value: ellie_engine::engine_constants::ELLIE_STD_VERSION.to_owned(), + }); + println!("{}", serde_json::to_string(&output).unwrap()); + } else { + println!( + "Ellie v{} - Code: {}\n\nTokenizer Version: v{}\nParser Version: v{}\nRuntime Version: v{}\nCore version: v{}\nEllie Standard Types Version: v{}\n", + ellie_engine::engine_constants::ELLIE_VERSION, + ellie_engine::engine_constants::ELLIE_VERSION_NAME, + ellie_engine::engine_constants::ELLIE_TOKENIZER_VERSION, + ellie_engine::engine_constants::ELLIE_PARSER_VERSION, + ellie_engine::engine_constants::ELLIE_RUNTIME_VERSION, + ellie_engine::engine_constants::ELLIE_CORE_VERSION, + ellie_engine::engine_constants::ELLIE_STD_VERSION, + ); + } + } else { + if matches.is_present("jsonLog") { + let mut output = cli_outputs::VERSION.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "version".to_string(), + value: ellie_engine::engine_constants::ELLIE_VERSION.to_owned(), + }); + + output.extra.push(cli_outputs::CliOuputExtraData { + key: "code".to_string(), + value: ellie_engine::engine_constants::ELLIE_VERSION_NAME.to_owned(), + }); + println!("{}", serde_json::to_string(&output).unwrap()); + } else { + println!( + "Ellie v{} - Code: {}", + ellie_engine::engine_constants::ELLIE_VERSION, + ellie_engine::engine_constants::ELLIE_VERSION_NAME + ); } } } + Some(("viewModule", matches)) => { + let target_path = { + let path = Path::new(matches.value_of("target").unwrap().clone()); + if path.exists() { + matches.value_of("target").unwrap().to_string() + } else { + println!( + "{}Error:{} Target path does not exist", + cli_utils::Colors::Red, + cli_utils::Colors::Reset + ); + std::process::exit(1); + } + }; + + ellie_engine::view_module::parse( + Path::new(&target_path), + matches.is_present("jsonLog"), + ); + } + _ => unreachable!("clap should ensure we don't get here"), } } diff --git a/src/cli_outputs.rs b/src/cli_outputs.rs index e73f7507..d90d6049 100644 --- a/src/cli_outputs.rs +++ b/src/cli_outputs.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; pub enum CliOuputType { Warning, Error, - Info + Info, } #[derive(Serialize, Deserialize, Clone)] @@ -19,64 +19,120 @@ pub struct CliOuput { pub code: u8, pub rtype: CliOuputType, pub message: String, - pub extra: Vec> + pub extra: Vec>, +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct CliInnerModuleOutput { + pub name: String, + pub version: String, +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct CliModuleOutput { + pub name: String, + pub description: String, + pub version: String, + pub modules: Vec, } lazy_static! { - pub static ref COMPILE_SUCCESS_WITH_NO_WARNINGS : CliOuput = CliOuput { + pub static ref COMPILE_SUCCESS_WITH_NO_WARNINGS: CliOuput = CliOuput { code: 0, rtype: CliOuputType::Info, message: "Compiling succeeded with no warnings".to_string(), extra: Vec::new(), }; - - pub static ref COMPILE_SUCCESS_WITH_WARNINGS : CliOuput = CliOuput { + pub static ref COMPILE_SUCCESS_WITH_WARNINGS: CliOuput = CliOuput { code: 1, rtype: CliOuputType::Info, message: "Compiling succeeded with warnings".to_string(), extra: Vec::new(), }; - - pub static ref COMPILE_FAILED_WITH_ERRORS_WITH_NO_WARNINGS : CliOuput = CliOuput { - code: 2, - rtype: CliOuputType::Info, - message: "Compiling failed with errors".to_string(), - extra: Vec::new(), - }; - - pub static ref COMPILE_FAILED_WITH_ERRORS_WITH_WARNINGS : CliOuput = CliOuput { + pub static ref COMPILE_FAILED_WITH_ERRORS_WITH_NO_WARNINGS: CliOuput = + CliOuput { + code: 2, + rtype: CliOuputType::Error, + message: "Compiling failed with errors".to_string(), + extra: Vec::new(), + }; + pub static ref COMPILE_FAILED_WITH_ERRORS_WITH_WARNINGS: CliOuput = CliOuput { code: 3, - rtype: CliOuputType::Info, + rtype: CliOuputType::Error, message: "Compiling failed with errors and warnings".to_string(), extra: Vec::new(), }; - - pub static ref COMPILER_ERROR : CliOuput = CliOuput { + pub static ref COMPILER_ERRORS: CliOuput> = CliOuput { code: 4, rtype: CliOuputType::Error, message: String::new(), extra: Vec::new(), }; - - pub static ref COMPILER_WARNING : CliOuput = CliOuput { - code: 5, - rtype: CliOuputType::Warning, - message: String::new(), + pub static ref COMPILER_WARNINGS: CliOuput> = + CliOuput { + code: 5, + rtype: CliOuputType::Warning, + message: String::new(), + extra: Vec::new(), + }; + pub static ref WRITE_FILE_ERROR: CliOuput = CliOuput { + code: 6, + rtype: CliOuputType::Error, + message: "Failed to write output file".to_string(), extra: Vec::new(), }; - - pub static ref WRITE_FILE_ERROR : CliOuput = CliOuput { - code: 3, + pub static ref PATH_ERROR: CliOuput = CliOuput { + code: 7, + rtype: CliOuputType::Error, + message: "Failed to resolve path".to_string(), + extra: Vec::new(), + }; + pub static ref READ_BINARY_MODULE_ERROR: CliOuput = CliOuput { + code: 8, + rtype: CliOuputType::Error, + message: "Failed to read binary module".to_string(), + extra: Vec::new(), + }; + pub static ref READ_BINARY_MODULE_SUCCEDED: CliOuput = CliOuput { + code: 9, rtype: CliOuputType::Info, - message: "Failed to write output file".to_string(), + message: "Binary read completed successfully".to_string(), extra: Vec::new(), }; - - pub static ref PATH_ERROR : CliOuput = CliOuput { - code: 3, + pub static ref READ_FILE_ERROR: CliOuput = CliOuput { + code: 10, + rtype: CliOuputType::Error, + message: "Failed to read file".to_string(), + extra: Vec::new(), + }; + pub static ref WRITE_BINARY_SUCCEDED: CliOuput = CliOuput { + code: 11, rtype: CliOuputType::Info, - message: "Failed to resolve path".to_string(), + message: "Output write succeded as binary".to_string(), extra: Vec::new(), }; - -} \ No newline at end of file + pub static ref WRITE_JSON_SUCCEDED: CliOuput = CliOuput { + code: 12, + rtype: CliOuputType::Info, + message: "Output write succeded as json".to_string(), + extra: Vec::new(), + }; + pub static ref VERSION: CliOuput = CliOuput { + code: 13, + rtype: CliOuputType::Info, + message: "".to_string(), + extra: Vec::new(), + }; + pub static ref VERSION_DETAILED: CliOuput = CliOuput { + code: 14, + rtype: CliOuputType::Info, + message: "".to_string(), + extra: Vec::new(), + }; + pub static ref LEGACY_MODULE: CliOuput = CliOuput { + code: 15, + rtype: CliOuputType::Warning, + message: "This module is legacy but used anyway".to_string(), + extra: Vec::new(), + }; +} diff --git a/src/cli_utils.rs b/src/cli_utils.rs index fcd7c89a..068ba4e7 100644 --- a/src/cli_utils.rs +++ b/src/cli_utils.rs @@ -41,7 +41,7 @@ impl Display for Colors { } } -#[derive(Debug)] +#[derive(Debug, Clone)] pub enum OutputTypes { Bin, DependencyAnalysis, @@ -175,7 +175,7 @@ pub fn file_exists(path: String) -> bool { Path::new(&path).exists() } -pub fn read_file(file_dir: &str) -> Result { +pub fn read_file>(file_dir: P) -> Result { let file_read = File::open(file_dir); match file_read { Err(r) => Err(r.to_string()), @@ -190,6 +190,14 @@ pub fn read_file(file_dir: &str) -> Result { } } +pub fn read_file_bin>(file_dir: P) -> Result, String> { + let file_read = File::open(file_dir); + match file_read { + Err(r) => Err(r.to_string()), + Ok(file) => Ok(file.bytes().collect::, _>>().unwrap()), + } +} + pub fn hash_error(error: &error::Error) -> String { let mut hasher = DefaultHasher::new(); format!("E{:?}", error).hash(&mut hasher); @@ -524,7 +532,7 @@ pub fn render_code_block( }, arrow( (item_pos.range_start.1) as usize, - item_pos.range_end.1 - item_pos.range_start.1 + (item_pos.range_end.1 + 1) - item_pos.range_start.1 ), Colors::Reset, ); @@ -550,7 +558,7 @@ pub fn render_code_block( }, arrow( (item_pos.range_start.1) as usize, - item_pos.range_end.1 - item_pos.range_start.1 + (item_pos.range_end.1 + 1) - item_pos.range_start.1 ), Colors::Reset, ); diff --git a/src/compile_file.rs b/src/compile_file.rs new file mode 100644 index 00000000..6ff6b4ca --- /dev/null +++ b/src/compile_file.rs @@ -0,0 +1,460 @@ +use std::fs; +use std::path::Path; +use std::path::PathBuf; +use std::sync::Mutex; + +use ellie_core::defs::Version; + +use crate::cli_outputs; +use crate::cli_utils; +use ellie_parser::parser; +use ellie_tokenizer::tokenizer::{self, ResolvedImport}; +use path_absolutize::Absolutize; +use std::collections::hash_map::DefaultHasher; +use std::hash::{Hash, Hasher}; + +pub struct CompilerSettings { + pub json_log: bool, + pub name: String, + pub description: String, + pub version: Version, + pub output_type: String, + pub warnings: bool, +} + +pub fn get_output_path( + target_path: &Path, + output_path: &Path, + output_type: cli_utils::OutputTypes, +) -> PathBuf { + if output_path.is_dir() { + let path = output_path + .absolutize() + .unwrap() + .to_str() + .unwrap() + .to_string(); + let mut file_name = target_path.file_name().unwrap().to_str().unwrap(); + + if file_name.contains(".") { + file_name = file_name.split(".").nth(0).unwrap(); + } + + Path::new( + &(path + + "/" + + file_name + + match output_type { + cli_utils::OutputTypes::Bin => ".bin", + _ => ".json", + }), + ) + .to_owned() + } else { + output_path.to_owned() + } +} + +pub fn compile( + target_path: &Path, + output_path: &Path, + modules: Vec, + compiler_settings: CompilerSettings, +) { + let prefered_output_type = match compiler_settings.output_type.as_str() { + "bin" => cli_utils::OutputTypes::Bin, + "json" => cli_utils::OutputTypes::Json, + "depA" => cli_utils::OutputTypes::DependencyAnalysis, + _ => unreachable!(), + }; + + match cli_utils::read_file(target_path) { + Ok(main_file_content) => { + //Auto import 'ellieStd' + let used_modules = Mutex::new(vec!["ellieStd".to_string()]); + let mut pager = tokenizer::Pager::new( + main_file_content, + target_path.to_str().unwrap().to_string(), + |path, file_name| { + let path = Path::new(&path) + .parent() + .unwrap() + .to_str() + .unwrap() + .to_string(); + let file = if cli_utils::file_exists(path.clone() + "/" + &file_name.clone()) { + Some(path.clone() + "/" + &file_name.clone()) + } else if cli_utils::file_exists( + path.clone() + "/" + &file_name.clone() + ".ei", + ) { + Some(path.clone() + "/" + &file_name.clone() + ".ei") + } else { + None + }; + + if !compiler_settings.json_log && compiler_settings.warnings { + println!( + "{}[Warning]{}: A import used but resolver is not 100% ready. Be aware of {}errors{}", + cli_utils::Colors::Yellow, + cli_utils::Colors::Reset, + cli_utils::Colors::Red, + cli_utils::Colors::Reset + ); + } + + if let Some(module) = modules.iter().find(|x| x.name == file_name) { + if module.name != "ellieStd" { + used_modules.lock().unwrap().push(module.name.clone()); + } + ResolvedImport { + found: true, + matched: tokenizer::ImportType::Module( + ellie_tokenizer::tokenizer::Module { + hash: module.hash, + initial_page: module.initial_page, + version: module.version.clone(), + name: module.name.clone(), + }, + ), + hash: module.hash, + path: "".to_string(), + ..Default::default() + } + } else { + match file { + Some(file) => { + let file = Path::new(&file).absolutize().unwrap(); + match cli_utils::read_file(&file.to_str().unwrap().to_string()) { + Ok(ext) => { + let mut hasher = DefaultHasher::new(); + ext.hash(&mut hasher); + ResolvedImport { + found: true, + matched: ellie_tokenizer::tokenizer::ImportType::Code( + ext, + ), + hash: hasher.finish(), + path: file.to_str().unwrap().to_string(), + ..Default::default() + } + } + Err(err) => ResolvedImport { + found: false, + resolve_error: err, + ..Default::default() + }, + } + } + None => ResolvedImport { + found: false, + ..Default::default() + }, + } + } + }, + None, + ); + + match pager.run() { + Ok(_) => { + let mut parser = + parser::Parser::new(pager.pages.clone(), None, compiler_settings.version); + for i in modules.iter() { + if used_modules.lock().unwrap().contains(&(&i.name)) { + parser.import_module(i.clone()); + } + } + + let workspace = parser.parse( + compiler_settings.name, + compiler_settings.description, + ellie_core::defs::Version::build_from_string( + crate::engine_constants::ELLIE_VERSION.to_owned(), + ), + ); + + if !parser.informations.has_no_warnings() && compiler_settings.warnings { + if compiler_settings.json_log { + let mut output = cli_outputs::COMPILER_WARNINGS.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "warnings".to_string(), + value: parser.informations.warnings.clone(), + }); + println!("{}", serde_json::to_string(&output).unwrap()); + } else { + cli_utils::print_warnings(&parser.informations.warnings, |path| { + match cli_utils::read_file(&path) { + Ok(e) => e, + Err(err) => { + println!( + "Cannot read file '{}' {}[{}]{}", + path, + cli_utils::Colors::Red, + err, + cli_utils::Colors::Reset + ); + std::process::exit(1); + } + } + }); + } + } + + if !parser.informations.has_no_errors() { + if compiler_settings.json_log { + let mut output = cli_outputs::COMPILER_ERRORS.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "errors".to_string(), + value: parser.informations.errors.clone(), + }); + println!("{}", serde_json::to_string(&output).unwrap()); + } else { + cli_utils::print_errors(&parser.informations.errors, |path| { + match cli_utils::read_file(&path) { + Ok(e) => e, + Err(err) => { + println!( + "Failed to ouput error. Cannot read file '{}' {}[{}]{}", + path, + cli_utils::Colors::Red, + err, + cli_utils::Colors::Reset + ); + std::process::exit(1); + } + } + }); + } + + if parser.informations.warnings.len() == 0 { + if compiler_settings.json_log { + let mut output = + cli_outputs::COMPILE_FAILED_WITH_ERRORS_WITH_NO_WARNINGS + .clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "errors".to_string(), + value: parser.informations.errors.len().clone().to_string(), + }); + println!("{}", serde_json::to_string(&output).unwrap()) + } else { + println!( + "\nCompiling {}failed{} with {}{} errors{}", + cli_utils::Colors::Red, + cli_utils::Colors::Reset, + cli_utils::Colors::Red, + parser.informations.errors.len(), + cli_utils::Colors::Reset, + ); + } + } else { + if compiler_settings.json_log { + let mut output = + cli_outputs::COMPILE_FAILED_WITH_ERRORS_WITH_WARNINGS.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "errors".to_string(), + value: parser.informations.errors.len().clone().to_string(), + }); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "warnings".to_string(), + value: parser.informations.warnings.len().to_string(), + }); + println!("{}", serde_json::to_string(&output).unwrap()) + } else { + println!("\nCompiling {}failed{} with {}{} errors{} and {}{} warnings{}.", + cli_utils::Colors::Red, + cli_utils::Colors::Reset, + cli_utils::Colors::Red, + parser.informations.errors.len(), + cli_utils::Colors::Reset, + cli_utils::Colors::Yellow, + parser.informations.warnings.len(), + cli_utils::Colors::Reset, + ); + } + } + } else { + if parser.informations.warnings.len() == 0 { + if compiler_settings.json_log { + println!( + "{}", + serde_json::to_string( + &cli_outputs::COMPILE_SUCCESS_WITH_NO_WARNINGS.clone() + ) + .unwrap() + ) + } else { + println!( + "\nCompiling {}succeeded{}.", + cli_utils::Colors::Green, + cli_utils::Colors::Reset, + ); + } + } else { + if compiler_settings.json_log { + let mut output = cli_outputs::COMPILE_SUCCESS_WITH_WARNINGS.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "warnings".to_string(), + value: parser.informations.warnings.len().to_string(), + }); + println!("{}", serde_json::to_string(&output).unwrap()) + } else { + println!( + "\nCompiling {}succeeded{} with {}{} warnings{}.", + cli_utils::Colors::Green, + cli_utils::Colors::Reset, + cli_utils::Colors::Yellow, + parser.informations.warnings.len(), + cli_utils::Colors::Reset, + ); + } + } + + let output_path = &get_output_path( + target_path, + output_path, + prefered_output_type.clone(), + ); + match prefered_output_type { + cli_utils::OutputTypes::Bin => { + let bytes = bincode::serialize(&workspace).unwrap(); + if let Err(write_error) = fs::write(output_path, bytes) { + if compiler_settings.json_log { + let mut output = cli_outputs::WRITE_FILE_ERROR.clone(); + + output.extra.push(cli_outputs::CliOuputExtraData { + key: "path".to_string(), + value: format!("{:?}", write_error), + }); + println!("{}", serde_json::to_string(&output).unwrap()) + } else { + println!( + "\nFailed to write output. [{}{:?}{}]", + cli_utils::Colors::Red, + write_error, + cli_utils::Colors::Reset, + ); + } + } else { + if compiler_settings.json_log { + let mut output = cli_outputs::WRITE_BINARY_SUCCEDED.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: 0, + value: output_path + .absolutize() + .unwrap() + .to_str() + .unwrap() + .to_owned(), + }); + println!("{}", serde_json::to_string(&output).unwrap()) + } else { + println!( + "\nBinary output written to {}{}{}", + cli_utils::Colors::Yellow, + output_path.absolutize().unwrap().to_str().unwrap(), + cli_utils::Colors::Reset + ); + } + } + } + cli_utils::OutputTypes::DependencyAnalysis => todo!(), + cli_utils::OutputTypes::Json => { + let json = serde_json::to_string(&workspace).unwrap(); + if let Err(write_error) = fs::write(&output_path, json) { + if compiler_settings.json_log { + let mut output = cli_outputs::WRITE_FILE_ERROR.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "path".to_string(), + value: format!("{:?}", write_error), + }); + + println!("{}", serde_json::to_string(&output).unwrap()) + } else { + println!( + "\nFailed to write output. [{}{:?}{}]", + cli_utils::Colors::Red, + write_error, + cli_utils::Colors::Reset, + ); + } + } else { + if compiler_settings.json_log { + let mut output = cli_outputs::WRITE_JSON_SUCCEDED.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: 0, + value: output_path + .absolutize() + .unwrap() + .to_str() + .unwrap() + .to_owned(), + }); + println!("{}", serde_json::to_string(&output).unwrap()) + } else { + println!( + "\nJSON output written to {}{}{}", + cli_utils::Colors::Yellow, + output_path.absolutize().unwrap().to_str().unwrap(), + cli_utils::Colors::Reset, + ); + } + } + } + } + } + } + Err(pager_errors) => { + if compiler_settings.json_log { + let mut output = cli_outputs::COMPILER_ERRORS.clone(); + output.extra.push(cli_outputs::CliOuputExtraData { + key: "errors".to_string(), + value: pager_errors, + }); + println!("{}", serde_json::to_string(&output).unwrap()); + } else { + cli_utils::print_errors(&pager_errors, |path| { + match cli_utils::read_file(&path) { + Ok(e) => e, + Err(err) => { + println!( + "Cannot read file '{}' {}[{}]{}", + path, + cli_utils::Colors::Red, + err, + cli_utils::Colors::Reset + ); + std::process::exit(1); + } + } + }); + } + } + } + } + Err(err) => { + if compiler_settings.json_log { + let mut cli_module_output = cli_outputs::READ_FILE_ERROR.clone(); + cli_module_output + .extra + .push(cli_outputs::CliOuputExtraData { key: 0, value: err }); + cli_module_output + .extra + .push(cli_outputs::CliOuputExtraData { + key: 1, + value: target_path.to_str().unwrap().to_string(), + }); + println!( + "{}", + serde_json::to_string_pretty(&cli_module_output).unwrap() + ); + } else { + println!( + "Unable to read file ~{} [{}]", + target_path.to_str().unwrap().to_string(), + err + ); + std::process::exit(1); + } + } + } +} diff --git a/src/cli_constants.rs b/src/engine_constants.rs similarity index 74% rename from src/cli_constants.rs rename to src/engine_constants.rs index fbd7614f..5374ce47 100644 --- a/src/cli_constants.rs +++ b/src/engine_constants.rs @@ -1,7 +1,7 @@ -pub static ELLIE_VERSION: &'static str = &"0.1.0"; +pub static ELLIE_VERSION: &'static str = &"0.2.0"; pub static ELLIE_VERSION_NAME: &'static str = &"BeautifulTropicalFish"; pub static ELLIE_TOKENIZER_VERSION: &'static str = &"0.2.0"; pub static ELLIE_PARSER_VERSION: &'static str = &"0.2.0"; pub static ELLIE_RUNTIME_VERSION: &'static str = &"0.1.0"; pub static ELLIE_CORE_VERSION: &'static str = &"0.2.0"; -pub static ELLIE_STD_VERSION: &'static str = &"0.2.0"; +pub static ELLIE_STD_VERSION: &'static str = &"0.2.1"; diff --git a/src/lib.rs b/src/lib.rs index a9bcc079..047e7703 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -35,6 +35,8 @@ extern crate ellie_tokenizer; #[cfg(feature = "build-cli")] #[macro_use] extern crate lazy_static; -pub mod cli_constants; +pub mod engine_constants; pub mod cli_outputs; pub mod cli_utils; +pub mod compile_file; +pub mod view_module; \ No newline at end of file diff --git a/src/view_module.rs b/src/view_module.rs new file mode 100644 index 00000000..6f71593b --- /dev/null +++ b/src/view_module.rs @@ -0,0 +1,154 @@ +use std::path::Path; + +use crate::cli_outputs; +use crate::cli_utils; +use crate::engine_constants; +use ellie_parser::parser; + +pub fn parse(target_path: &Path, json_log: bool) { + match cli_utils::read_file_bin(target_path) { + Ok(file_content) => match bincode::deserialize::(file_content.as_slice()) { + Ok(module) => { + let current_ellie_version = ellie_core::defs::Version::build_from_string( + engine_constants::ELLIE_VERSION.to_owned(), + ); + if current_ellie_version != module.ellie_version { + if json_log { + let mut cli_module_output = crate::cli_outputs::LEGACY_MODULE.clone(); + cli_module_output + .extra + .push(cli_outputs::CliOuputExtraData { + key: 0, + value: module.ellie_version.clone(), + }) + } else { + println!( + "\n{}Info{}: This module is legacy, used ellie_version: {}{}.{}.{}{} current ellie_version: {}{}.{}.{}{}", + cli_utils::Colors::Cyan, + cli_utils::Colors::Reset, + cli_utils::Colors::Yellow, + module.ellie_version.major, + module.ellie_version.minor, + module.ellie_version.bug, + cli_utils::Colors::Reset, + cli_utils::Colors::Yellow, + current_ellie_version.major, + current_ellie_version.minor, + current_ellie_version.bug, + cli_utils::Colors::Reset, + ); + } + } + + if json_log { + let mut cli_module_output = + crate::cli_outputs::READ_BINARY_MODULE_SUCCEDED.clone(); + + cli_module_output + .extra + .push(cli_outputs::CliOuputExtraData { + key: 0, + value: cli_outputs::CliModuleOutput { + name: module.name, + description: module.description, + version: format!( + "{}.{}.{}", + module.version.minor, module.version.major, module.version.bug + ), + modules: module + .modules + .iter() + .map(|x| cli_outputs::CliInnerModuleOutput { + name: x.name.clone(), + version: format!( + "{}.{}.{}", + x.version.minor, x.version.minor, x.version.bug + ), + }) + .collect(), + }, + }); + + println!( + "{}", + serde_json::to_string_pretty(&cli_module_output).unwrap() + ); + } else { + let mut output = format!("ModuleName = {}\nModuleDescription = {}\nModuleVersion = {}.{}.{}\nEllieVersion = {}.{}.{}", module.name, module.description, module.version.major, module.version.minor, module.version.bug, module.ellie_version.major, module.ellie_version.minor, module.ellie_version.bug); + if module.modules.len() > 0 { + output.push_str("\\nInnerModules :\n"); + for module in module.modules.iter() { + output.push_str(&format!( + "\t{} {}.{}.{}\n", + module.name, + module.version.major, + module.version.minor, + module.version.bug + )); + } + } + + for inner_module in module.modules { + output += format!( + "\tModuleName =\t{}\n\tModuleVersion =\t{}.{}.{}\n", + inner_module.name, + inner_module.version.major, + inner_module.version.minor, + inner_module.version.bug + ) + .as_str(); + } + println!("{}", output); + println!( + "\n{}Success{}: {}Decoding complete{}", + cli_utils::Colors::Green, + cli_utils::Colors::Reset, + cli_utils::Colors::Cyan, + cli_utils::Colors::Reset + ); + } + } + Err(e) => { + if json_log { + let mut cli_module_output = cli_outputs::READ_BINARY_MODULE_ERROR.clone(); + cli_module_output + .extra + .push(cli_outputs::CliOuputExtraData { key: 0, value: 0 }); + println!( + "{}", + serde_json::to_string_pretty(&cli_module_output).unwrap() + ); + } else { + println!( + "{}Error{}: {}Failed to decode module [{}]].{}", + cli_utils::Colors::Red, + cli_utils::Colors::Reset, + cli_utils::Colors::Cyan, + e, + cli_utils::Colors::Reset + ); + } + std::process::exit(1); + } + }, + Err(err) => { + if json_log { + let mut cli_module_output = cli_outputs::READ_BINARY_MODULE_ERROR.clone(); + cli_module_output + .extra + .push(cli_outputs::CliOuputExtraData { key: 1, value: 1 }); + println!( + "{}", + serde_json::to_string_pretty(&cli_module_output).unwrap() + ); + } else { + println!( + "Unable to read file ~{} [{}]", + target_path.to_str().unwrap().to_string(), + err + ); + } + std::process::exit(1); + } + } +} diff --git a/tokenizer/src/processors/items/class_processor.rs b/tokenizer/src/processors/items/class_processor.rs index c46dd735..d12807d9 100644 --- a/tokenizer/src/processors/items/class_processor.rs +++ b/tokenizer/src/processors/items/class_processor.rs @@ -25,7 +25,7 @@ impl crate::processors::Processor for class::Class { defs::Cursor::build_with_skip_char(cursor), )); } - self.name_pos.range_end = cursor.clone().skip_char(1); + self.name_pos.range_end = cursor; self.name += &letter_char.to_string(); } else if letter_char == '{' { self.name_collected = true; @@ -67,22 +67,19 @@ impl crate::processors::Processor for class::Class { defs::Cursor::build_with_skip_char(cursor), )); } - self.generic_definings[generic_len - 1].pos.range_end = - cursor.clone().skip_char(1); + self.generic_definings[generic_len - 1].pos.range_end = cursor; self.generic_definings[generic_len - 1].name += &letter_char.to_string(); } } else if letter_char == ',' && generic_len > 0 && self.generic_definings[generic_len - 1].name != "" { - self.generic_definings[generic_len - 1].pos.range_end = cursor; self.generic_definings .push(class::GenericDefining::default()); } else if letter_char == '>' && generic_len > 0 && self.generic_definings[generic_len - 1].name != "" { - self.generic_definings[generic_len - 1].pos.range_end = cursor; self.generics_collected = true; } else if letter_char != ' ' { errors.push(error::error_list::ERROR_S1.clone().build( @@ -109,7 +106,7 @@ impl crate::processors::Processor for class::Class { } } else if letter_char == '}' && self.brace_count == 0 { self.hash = ellie_core::utils::generate_hash(); - self.pos.range_end = cursor.clone().skip_char(1); + self.pos.range_end = cursor; self.complete = true; self.iterator.finalize(); errors.extend(self.iterator.errors.clone()); diff --git a/tokenizer/src/processors/items/definer_processor.rs b/tokenizer/src/processors/items/definer_processor.rs index 8e93027f..7ef676ac 100644 --- a/tokenizer/src/processors/items/definer_processor.rs +++ b/tokenizer/src/processors/items/definer_processor.rs @@ -201,7 +201,7 @@ impl crate::processors::Processor for DefinerCollector { generic_type.pos.range_start = cursor; self.complete = true; } - generic_type.pos.range_end = cursor.clone().skip_char(1); + generic_type.pos.range_end = cursor; generic_type.rtype += &letter_char.to_string(); } } else { diff --git a/tokenizer/src/processors/items/variable_processor.rs b/tokenizer/src/processors/items/variable_processor.rs index f4889765..a40e0581 100644 --- a/tokenizer/src/processors/items/variable_processor.rs +++ b/tokenizer/src/processors/items/variable_processor.rs @@ -25,7 +25,7 @@ impl crate::processors::Processor for VariableCollector { defs::Cursor::build_with_skip_char(cursor), )); } - self.data.name_pos.range_end = cursor.clone().skip_char(1); + self.data.name_pos.range_end = cursor; self.data.name += &letter_char.to_string(); } else if letter_char == ':' { self.data.has_type = true; @@ -46,7 +46,7 @@ impl crate::processors::Processor for VariableCollector { } } else if !self.type_collected { if self.type_cache.complete && letter_char == ';' { - self.data.pos.range_end = cursor.clone().skip_char(1); + self.data.pos.range_end = cursor; self.data.hash = ellie_core::utils::generate_hash(); self.type_collected = true; self.data.rtype = self.type_cache.clone(); @@ -56,12 +56,11 @@ impl crate::processors::Processor for VariableCollector { self.type_collected = true; self.data.rtype = self.type_cache.clone(); } else { - if self.data.type_pos.range_start.is_zero() { - self.data.type_pos.range_start = cursor.clone().skip_char(1) + if self.data.type_pos.range_start.is_zero() && letter_char != ' ' { + self.data.type_pos.range_start = cursor; } - if letter_char != ' ' { - self.data.type_pos.range_end = cursor.clone().skip_char(1); + self.data.type_pos.range_end = cursor; } self.type_cache .iterate(errors, cursor, last_char, letter_char) @@ -73,12 +72,10 @@ impl crate::processors::Processor for VariableCollector { self.complete = true; self.data.value = self.value_cache.current.clone(); } else { - if self.data.value_pos.range_start.is_zero() { - self.data.value_pos.range_start = cursor.clone().skip_char(1); - } - if letter_char != ' ' { - self.data.value_pos.range_end = cursor.clone().skip_char(1); + if self.data.value_pos.range_start.is_zero() && letter_char != ' ' { + self.data.value_pos.range_start = cursor; } + self.data.value_pos.range_end = cursor; self.value_cache .iterate(errors, cursor, last_char, letter_char) } diff --git a/tokenizer/src/tokenizer.rs b/tokenizer/src/tokenizer.rs index 186b6c08..120a287a 100644 --- a/tokenizer/src/tokenizer.rs +++ b/tokenizer/src/tokenizer.rs @@ -283,27 +283,12 @@ where } } }, - ImportType::Module(module) => { - match self.find_module(resolved.hash) { - Some(module) => {} - None => { - self.modules.push(module); - /* - match self.resolve_page(resolved.hash, code_str) { - Ok(inner_child) => { - let public_dependencies = inner_child - .into_iter() - .clone() - .filter(|d| d.public) - .collect::>(); - data.extend(public_dependencies); - } - Err(e) => errors.extend(e), - } - */ - } + ImportType::Module(module) => match self.find_module(resolved.hash) { + Some(_) => {} + None => { + self.modules.push(module); } - } + }, } } else { if resolved.resolve_error == "" { diff --git a/tree_maker.js b/tree_maker.js index efb7c5e2..c4329eb6 100644 --- a/tree_maker.js +++ b/tree_maker.js @@ -7,19 +7,21 @@ output += "\n ratio=fill;"; output += "\n node [style=filled];\n"; //http://webgraphviz.com/ -for (var i = 0; i < tree.length; i++) { - var item = tree[i]; +for (var i = 0; i < tree.pages.length; i++) { + var item = tree.pages[i]; for (var j = 0; j < item.dependencies.length; j++) { var dep = item.dependencies[j]; if (item.inner == null) { - if (dep.deep_link == null) { + if (dep.deep_link == null && dep.module == null) { var cr = path.basename(item.path).split(".")[0]; //Ellie - var tg = path.basename(tree.find(x => x.hash == dep.hash).path).split(".")[0]; + var tg = path.basename(tree.pages.find(x => x.hash == dep.hash).path).split(".")[0]; if (cr == tg) { console.error("ERROR:", cr, tg, i, item); - process.exit() + process.exit(); } output += ` ${cr} -> ${tg} [ label= "depends to"]\n` + } else if (dep.module != null) { + //output += ` ${tree.name} -> ${tree.modules.find(x => x.hash == dep.module).name} [ label= "requires module"]\n` } else if (process.argv.length == 4) { var cr = path.basename(item.path).split(".")[0]; var tg = path.basename(tree.find(x => x.hash == dep.hash).path).split(".")[0];