{"id":323213,"date":"2021-05-16T21:00:27","date_gmt":"2021-05-16T21:00:27","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=323213"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=323213","title":{"rendered":"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<h2>\u041a\u0430\u043a \u0432\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c<\/h2>\n<p>\u0421\u0438\u0434\u0435\u043b \u044f \u043d\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u043a\u0443\u0440\u0441\u0435 \u043a\u043e\u043b\u043b\u0435\u0434\u0436\u0430 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u043b, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u043f\u044f\u0442\u0435\u0440\u043a\u0438. \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u044f \u0443\u0441\u0432\u0430\u0438\u0432\u0430\u043b \u0431\u044b\u0441\u0442\u0440\u043e (\u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0444\u043e\u0440\u0443\u043c\u0430\u043c \u0438 \u0445\u0430\u0431\u0440\u0443), \u043d\u043e \u0447\u0435\u0433\u043e-\u0442\u043e \u043c\u043d\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0438 \u0442\u043e\u0433\u0434\u0430 \u044f \u0432\u0437\u044f\u043b\u0441\u044f \u0437\u0430 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u043d\u0430\u0434\u0435\u044f\u0441\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a \u0434\u0438\u043f\u043b\u043e\u043c\u0443. \u0412\u0440\u0435\u043c\u044f \u0448\u043b\u043e, \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0438 \u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u0443\u0440\u0441.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u044f \u043d\u0430\u0447\u0430\u043b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0432\u0441\u0451 \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u043b\u043e\u0441\u044c \u041e\u0421\u0438, \u043d\u043e \u0442\u043e\u043b\u043a\u043e\u043c \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u043b\u0441\u044f. \u0422\u043e\u0433\u0434\u0430 \u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0443 \u043c\u0435\u043d\u044f \u0438\u0434\u0435\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u042f\u041f. <\/p>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u044b\u043b\u043e \u043c\u0430\u043b\u043e, \u0430 \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044b\u043b\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0438 \u044f \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043e\u0442 \u0443\u0434\u0430\u043b\u0451\u043d\u043a\u0438 (\u0441 \u0441\u0435\u0440\u043e\u0439 \u0417\u041f) \u0447\u0442\u043e-\u0442\u043e \u043f\u0438\u0441\u0430\u043b.<\/p>\n<p>\u042f\u0437\u044b\u043a \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u0437\u0432\u0430\u0442\u044c The Gorge.<\/p>\n<h2>\u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f. \u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044f\u0437\u044b\u043a \u0438 \u0433\u0434\u0435 \u0435\u0433\u043e \u043d\u0430\u0439\u0442\u0438<\/h2>\n<p>\u0411\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044f\u0437\u044b\u043a \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u0433\u0438\u0442\u0445\u0430\u0431 \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c.<br \/>\u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0438\u043c\u0435\u043b \u0432 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u043e\u0434\u0430\u0440\u0435\u043d\u043d\u044b\u0439 \u043c\u043d\u0435 \u0430\u043a\u043a, \u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043b \u0441\u0432\u043e\u0439 \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a: (\u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0430\u0439\u0442)\/pcPowerJG\/natural-network.<\/p>\n<p>\u0412 \u043f\u0430\u043f\u043a\u0435 src \u0432 \u0444\u0430\u0439\u043b\u0435 lib.rs \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0443\u0434\u043e, \u044f\u0437\u044b\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 \u0440\u0430\u0441\u0442 (\u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u0447\u0442\u0438? \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0432 \u0434\u0430\u043b\u0451\u043a\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 2019 \u0433\u043e\u0434\u0430 \u0440\u0430\u0441\u0442 \u043d\u0435 \u0434\u0430\u0432\u0430\u043b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u043d\u0430 \u043c\u043e\u0435\u0439 \u043b\u044e\u0431\u0438\u043c\u043e\u0439 \u043c\u0430\u043d\u0436\u0430\u0440\u0435 \u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u0421\u0438). <\/p>\n<p>\u041d\u0443 \u0442\u0430\u043a \u0432\u043e\u0442, \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432.<\/p>\n<pre><code class=\"rust\">words.push(\"object\".to_string());\/\/1\t \/\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438\t words.push(\"if\".to_string());\/\/2\t\/\/ \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0414\u0412\u0423\u0425 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\t\t words.push(\"exit_()\".to_string());\/\/3\/\/\u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f words.push(\"func\".to_string());     \/\/4\/\/\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438  words.push(\"print\".to_string());\/\/5 \/\/ \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\t\t words.push(\"remove\".to_string());\/\/6 \/\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 words.push(\"array\".to_string());\/\/7 \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 words.push(\"struct\".to_string()); \/\/8 \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b words.push(\"end\".to_string());\/\/9\/\/end operation words.push(\"end_func\".to_string()); \/\/ 10 \/\/ \u043a\u043e\u043d\u0435\u0446 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\t words.push(\"return\".to_string()); \/\/  11 words.push(\"!eq\".to_string());\/\/  12 words.push(\"&gt;\".to_string());  \/\/  13 words.push(\"&lt;\".to_string());  \/\/  14 words.push(\"loop\".to_string());\/\/ 15 words.push(\"end_loop\".to_string());\/\/ 16\t\t words.push(\"_\".to_string()); \/\/ 17 \/\/ \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u041d\u0415 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 words.push(\"break\".to_string()); \/\/ 18 words.push(\"true\".to_string()); \/\/ 19 words.push(\"false\".to_string()); \/\/ 20<\/code><\/pre>\n<p>\u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0443 \u0441\u043b\u043e\u0432 \u0435\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f (\u0438 \u043d\u0435 \u0441 \u043d\u0443\u043b\u044f. <strong>\u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e<\/strong>).<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0442\u0430\u0440\u0442.<\/p>\n<pre><code class=\"rust\">pub fn start_(&amp;mut self, text: String) -&gt; u8<\/code><\/pre>\n<p>\u0412 \u043d\u0435\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u0441\u044f \u043c\u0430\u0433\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0435\u0433\u043e \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c, \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043a\u0430\u043a-\u0442\u043e \u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043d\u043e \u043c\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c.<\/p>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (\u0442\u0435\u043b\u043e \u0446\u0438\u043a\u043b\u0430 \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0438\u043b\u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0442.\u0434.).<\/p>\n<p>\u041f\u0440\u0438\u0432\u043e\u0436\u0443 \u043a\u043e\u0434.<\/p>\n<pre><code class=\"rust\">let mut temp_values: String = String::new();\t\t\t\/\/\t\u0412\u0420\u0415\u041c\u0415\u041d\u041d\u042b\u0415 \u041f\u0415\u0420\u0415\u041c\u0415\u041d\u041d\u042b\u0415 let mut temp_name: String = String::new();\t\t        \/\/\t... let mut temp_buffer: String = String::new();\t\t\t\/\/\t... let mut func_text: String = String::new(); let mut last_op: [usize; 3] = [0; 3]; \/\/ \u0445\u0440\u0430\u043d\u0438\u043c \u0442\u0440\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \/\/ ---------------------------------------------- let mut if_count: usize = 0; let mut if_result: bool = true; \/\/ \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 let mut struct_flag: bool = false; \/\/ \u044d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 let mut function_inactive_flag: bool = false; \/\/ \u0435\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u0430 let mut loop_flag: bool = false; \/\/ \u043f\u043e\u043f\u0430\u043b\u0438 \u043d\u0430 \u0446\u0438\u043a\u043b let mut index_loop: usize = 0; \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u043a\u043b\u043e\u0432 (\u0434\u043b\u044f \u0446\u0438\u043a\u043b\u0430 \u0432 \u0446\u0438\u043a\u043b\u0435)<\/code><\/pre>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u043e\u0432, \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u043a\u0430\u043a-\u0440\u0430\u0437 \u0442\u0430\u043a\u0438 \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412\u0441\u0435\u0433\u043e \u043d\u0430\u0448 \u043a\u043e\u0434 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430<\/p>\n<pre><code class=\"rust\">if ch == ' ' || ch == '\\t' {   \/\/................... } else if ch == '\\n' {   \/\/................... } else if ch == '=' {   \/\/................... } } else {   temp_values.push(ch); }<\/code><\/pre>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0437\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u043a\u0430\u0440\u0442\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439). \u0412\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u043e\u0441\u043b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438, \u0442\u0443\u0442 \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0418 \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0438.<br \/>\u0411\u043b\u043e\u043a else \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u044b\u0440\u044f\u0435\u043c \u043f\u043e \u043a\u043e\u0434\u0443, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<pre><code class=\"rust\">if function_inactive_flag {   \/\/ ...\t\t\t\t\t\t } if loop_flag {   \/\/ ... } match temp_values.trim() {   \/\/ ... }<\/code><\/pre>\n<p>\u041c\u044b \u0432\u0438\u0434\u0438\u043c \u0432 \u0431\u043b\u043e\u043a\u0435 \u0435\u0449\u0451 \u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0432 \u043d\u0451\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u0445 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e (\u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e).<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0446\u0438\u043a\u043b\u043e\u043c, \u0437\u0430\u043f\u0438\u0441\u044c \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0446\u0438\u043a\u043b\u0430.<br \/>\u0422\u0440\u0435\u0442\u0438\u0439 \u0436\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u0432 \u043a\u0430\u0440\u0442\u0443.<\/p>\n<p>\u0412\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0436\u0435 \u0438\u0434\u0451\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0430\u043c \u043b\u043e\u0433\u0438\u043a\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>\u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443: a  = b + c <br \/>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432: last_op[0] = 1 last_op[1] = 17  <br \/>\u0418 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u0441\u044f: \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 math_work .<\/p>\n<h2>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430<\/h2>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"rust\">fn math_work(&amp;self, text: String) -&gt; String {   let text: String = Words::trim(text.clone());   let mut result_string: String = String::new();   let mut temp_string: String = String::new();   for ch in text.chars() {     match ch {       '+' | '-' | '\/' | '*' | '(' | ')' | '&amp;' | '|' | '!' | '=' | '&lt;' | '&gt;' =&gt; {         if Words::is_digit(temp_string.clone()) {           result_string += temp_string.clone().as_str();\t\t\t\t\t\t\t         } else {           result_string += self.search_var(temp_string).0.clone().as_str();         }         result_string.push(ch.clone());         temp_string = String::new();       },       _ =&gt; {         temp_string.push(ch.clone());       },     }   }    let (value, type_, _temp) = self.search_var(temp_string.clone());   if _temp {     result_string += value.as_str();   } else {     result_string += temp_string.clone().as_str();   } result_string }<\/code><\/pre>\n<p>\u0412\u0441\u0451 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0435\u0441\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u043a\u0432\u043e\u0439 (\u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445) &#8212; \u0441\u0440\u0430\u0437\u0443 \u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e, \u0435\u0441\u043b\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0449\u0435\u043c \u043a\u043e\u043d\u0435\u0446 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (\u043e\u0431\u044b\u0447\u043d\u043e \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u0430, \u043b\u0438\u0431\u043e \u0441\u0438\u043c\u0432\u043e\u043b \u043a\u043e\u043d\u0446\u0430 \u0441\u0442\u0440\u043e\u043a\u0438) \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0451 \u0438\u043c\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0432\u0441\u0451 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"rust\">fn eval(str_: Vec&lt;char&gt;) -&gt; f32 {   let mut i: usize = 0;   Words::expr(str_, &amp;mut i) }<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0412\u0441\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0430\u0433\u0438\u044f<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"rust\">fn eval(str_: Vec&lt;char&gt;) -&gt; f32 {   let mut i: usize = 0;   Words::expr(str_, &amp;mut i) }  fn plus_one(u: &amp;mut usize) {   *u += 1; }  fn number(ch_: Vec&lt;char&gt;, idx: &amp;mut usize) -&gt; f32 {   let mut result: f32 = 0.0;   \/\/float result = 0.0;   let mut div: f32 = 10.0;   let mut sign: f32 = 1.0;   if ch_[*idx] == '-'{     sign = -1.0;     *idx += 1;   }    while *idx &lt; ch_.len() &amp;&amp;   match ch_[*idx] {     '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' =&gt; { true },     _ =&gt; { false }   }   {     result = result * 10.0 + (f32::from_str(&amp;ch_[*idx].to_string()).expect(\"\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443\"));      *idx += 1;   }    if *idx &lt; ch_.len() &amp;&amp; (ch_[*idx] == '.'){     *idx += 1;             while *idx &lt; ch_.len() &amp;&amp;     match ch_[*idx] {       '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' =&gt; { true },       _ =&gt; { false }     }      {       result = result + (f32::from_str(&amp;ch_[*idx].to_string()).expect(\"\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443\")) \/ div;       div *= 10.0;       *idx += 1;     }   }   sign * result }  fn expr(ch_: Vec&lt;char&gt;, idx: &amp;mut usize) -&gt; f32 {   let mut result: f32 = Words::term(ch_.clone(), idx);       while *idx &lt; ch_.len() &amp;&amp; (ch_[*idx] == '+' || ch_[*idx] == '-') {     match ch_[*idx] {       '+' =&gt; {         *idx += 1;         result += Words::term(ch_.clone(), idx);       },       '-' =&gt; {         *idx += 1;             result -= Words::term(ch_.clone(), idx);       },       _ =&gt; {},     }    } result }  fn term(ch_: Vec&lt;char&gt;, idx: &amp;mut usize) -&gt; f32 {   let mut result: f32 = Words::factor(ch_.clone(), idx);   let mut div: f32 = 0.0;    while *idx &lt; ch_.len() &amp;&amp; (ch_[*idx] == '*' || ch_[*idx] == '\/') {     match ch_[*idx] {       '*' =&gt; {         *idx += 1;         result *= Words::factor(ch_.clone(), idx);       },       '\/' =&gt; {         *idx += 1;             div = Words::factor(ch_.clone(), idx);             if (div != 0.0) {           result \/= div;         } else {           panic!(\"Division by zero!\\n\");                             }       },       _ =&gt; {},     }   } result }  fn factor(ch_: Vec&lt;char&gt;, idx: &amp;mut usize) -&gt; f32 {   let mut result: f32 = 0.0;   let mut sign: f32 = 1.0;    if (ch_[*idx] == '-') {     sign = -1.0;     *idx += 1;   }    if (ch_[*idx] == '(') {     *idx += 1;     result = Words::expr(ch_.clone(), idx);      if (ch_[*idx] != ')') {       panic!(\"Brackets unbalanced!\\n\");     }     *idx += 1;   } else { result = Words::number(ch_, idx); }   sign * result }<\/code><\/pre>\n<\/div>\n<\/details>\n<h2>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h2>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043e\u043d\u0438 \u043a\u0440\u0430\u0439\u043d\u0435 \u0441\u043b\u0430\u0431\u043e \u0438 \u0438\u0445 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u0443\u044e \u043a\u0443\u0447\u0443 \u043c\u0435\u0441\u0442\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u0440\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0412\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043c\u0435\u0441\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0432 \u0434\u0432\u0443\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u0445, \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043c\u0451\u043d \u0438 \u0442\u0438\u043f\u043e\u0432:<\/p>\n<pre><code class=\"rust\">object_buffer: Vec&lt;(String, usize)&gt;<\/code><\/pre>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<pre><code class=\"rust\">value_buffer: Vec&lt;String&gt;<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f add_vars:<\/p>\n<pre><code class=\"rust\">fn add_vars(&amp;mut self, vars_name: String, mut vars_value: String, vars_type: usize) {   \/\/object_buffer: Vec&lt;(String, usize)&gt;   \/\/value_buffer: Vec&lt;String&gt;   if vars_value.clone().split('\\\"').collect::&lt;Vec&lt;&amp;str&gt;&gt;().len() &gt; 1 {     vars_value = vars_value.split('\\\"').collect::&lt;Vec&lt;&amp;str&gt;&gt;()[1].to_string();   } else {     vars_value = vars_value.clone().trim().to_string();   }   self.object_buffer.push((vars_name, vars_type));   self.value_buffer.push(vars_value); }<\/code><\/pre>\n<p>\u0412 \u043d\u0435\u0439 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0435\u0441\u0442\u044c \u043b\u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 (\u0447\u0442\u043e \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445 \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0438 \u043d\u0435 \u043e\u0442\u0440\u0435\u0437\u0430\u0435\u043c \u043f\u0440\u043e\u0431\u0435\u043b\u044b).<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439:<\/p>\n<pre><code class=\"rust\">fn remove_vars(&amp;mut self, vars_name: String) {   for i in 0..self.object_buffer.len() {     if self.object_buffer[i].0.clone() == vars_name {       self.object_buffer.remove(i);       self.value_buffer.remove(i);       return;     }   } }<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0438\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a:<\/p>\n<pre><code class=\"rust\">fn set_value(&amp;mut self, vars_name: String, mut vars_value: String) {   for i in 0..self.object_buffer.len() {     if self.object_buffer[i].0 == vars_name {       if vars_value.clone().split('\\\"').collect::&lt;Vec&lt;&amp;str&gt;&gt;().len() &gt; 1 {         vars_value = vars_value.split('\\\"').collect::&lt;Vec&lt;&amp;str&gt;&gt;()[1].to_string();       } else {         vars_value = vars_value.clone().trim().to_string();       }       self.value_buffer[i] = vars_value.clone();       return;     }   }  } pub fn search_var(&amp;self, vars_name: String) -&gt; (String, usize, bool) {   for i in 0..self.object_buffer.len() {     if self.object_buffer[i].0 == vars_name {       let value: String = self.value_buffer[i].clone();       let type_: usize = self.object_buffer[i].1.clone();       return (value, type_, true);      }   }   (String::new(), 0, false) }<\/code><\/pre>\n<p>\u0422\u0430\u043a \u0436\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u0441\u0442\u0430\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a.<\/p>\n<pre><code>import(\"\/lib.so\") \textern_func(\"lib.so\", func_name)   extern_func(\"lib.so\", func_name, arg1, arg2) close_import(\"lib.so\")<\/code><\/pre>\n<p>\u042f \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0438\u0437 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0443\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438. \u0412\u0435\u0441\u044c \u043a\u043e\u0434 (\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 (\u0431\u043e\u0436\u0435 \u043d\u0435 \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u0435 \u0442\u0443\u0434\u0430, \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044e \u043a\u0430\u043a \u0440\u0443\u043a\u0438 \u0434\u043e\u0439\u0434\u0443\u0442), \u0446\u0438\u043a\u043b\u043e\u0432 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439) \u0437\u0430\u043d\u044f\u043b \u0431\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430, \u0430 \u044f \u0445\u043e\u0447\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u0443\u0442\u044c \u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0443-\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0433\u0447\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u042f\u041f \u043f\u043e \u043c\u043e\u0438\u043c \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c, \u0430 \u0432 \u0446\u0435\u043b\u043e\u043c \u0432\u044d\u043b\u043a\u043e\u043c.<\/p>\n<p>\u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c?<\/p>\n<ol>\n<li>\n<p>\u0418\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 (\u043d\u0435 \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u0435 \u0442\u0443\u0434\u0430, \u044f \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e);<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0432\u0441\u0451 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u0435? \u0418\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0431\u0430\u0439\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0443 \u0441\u0438\u0448\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438\u0437 \u0441\u0442\u0430\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 <\/p>\n<\/li>\n<\/ol>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/557674\/\"> https:\/\/habr.com\/ru\/post\/557674\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<h2>\u041a\u0430\u043a \u0432\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c<\/h2>\n<p>\u0421\u0438\u0434\u0435\u043b \u044f \u043d\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u043a\u0443\u0440\u0441\u0435 \u043a\u043e\u043b\u043b\u0435\u0434\u0436\u0430 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u043b, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u043f\u044f\u0442\u0435\u0440\u043a\u0438. \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u044f \u0443\u0441\u0432\u0430\u0438\u0432\u0430\u043b \u0431\u044b\u0441\u0442\u0440\u043e (\u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0444\u043e\u0440\u0443\u043c\u0430\u043c \u0438 \u0445\u0430\u0431\u0440\u0443), \u043d\u043e \u0447\u0435\u0433\u043e-\u0442\u043e \u043c\u043d\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0438 \u0442\u043e\u0433\u0434\u0430 \u044f \u0432\u0437\u044f\u043b\u0441\u044f \u0437\u0430 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u043d\u0430\u0434\u0435\u044f\u0441\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a \u0434\u0438\u043f\u043b\u043e\u043c\u0443. \u0412\u0440\u0435\u043c\u044f \u0448\u043b\u043e, \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0438 \u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u0443\u0440\u0441.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u044f \u043d\u0430\u0447\u0430\u043b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0432\u0441\u0451 \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u043b\u043e\u0441\u044c \u041e\u0421\u0438, \u043d\u043e \u0442\u043e\u043b\u043a\u043e\u043c \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u043b\u0441\u044f. \u0422\u043e\u0433\u0434\u0430 \u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0443 \u043c\u0435\u043d\u044f \u0438\u0434\u0435\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u042f\u041f. <\/p>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u044b\u043b\u043e \u043c\u0430\u043b\u043e, \u0430 \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044b\u043b\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0438 \u044f \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043e\u0442 \u0443\u0434\u0430\u043b\u0451\u043d\u043a\u0438 (\u0441 \u0441\u0435\u0440\u043e\u0439 \u0417\u041f) \u0447\u0442\u043e-\u0442\u043e \u043f\u0438\u0441\u0430\u043b.<\/p>\n<p>\u042f\u0437\u044b\u043a \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u0437\u0432\u0430\u0442\u044c The Gorge.<\/p>\n<h2>\u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f. \u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044f\u0437\u044b\u043a \u0438 \u0433\u0434\u0435 \u0435\u0433\u043e \u043d\u0430\u0439\u0442\u0438<\/h2>\n<p>\u0411\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044f\u0437\u044b\u043a \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u0433\u0438\u0442\u0445\u0430\u0431 \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c.<br \/>\u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0438\u043c\u0435\u043b \u0432 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u043e\u0434\u0430\u0440\u0435\u043d\u043d\u044b\u0439 \u043c\u043d\u0435 \u0430\u043a\u043a, \u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043b \u0441\u0432\u043e\u0439 \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a: (\u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0430\u0439\u0442)\/pcPowerJG\/natural-network.<\/p>\n<p>\u0412 \u043f\u0430\u043f\u043a\u0435 src \u0432 \u0444\u0430\u0439\u043b\u0435 lib.rs \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0443\u0434\u043e, \u044f\u0437\u044b\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 \u0440\u0430\u0441\u0442 (\u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u0447\u0442\u0438? \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0432 \u0434\u0430\u043b\u0451\u043a\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 2019 \u0433\u043e\u0434\u0430 \u0440\u0430\u0441\u0442 \u043d\u0435 \u0434\u0430\u0432\u0430\u043b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u043d\u0430 \u043c\u043e\u0435\u0439 \u043b\u044e\u0431\u0438\u043c\u043e\u0439 \u043c\u0430\u043d\u0436\u0430\u0440\u0435 \u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u0421\u0438). <\/p>\n<p>\u041d\u0443 \u0442\u0430\u043a \u0432\u043e\u0442, \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432.<\/p>\n<pre><code class=\"rust\">words.push(\"object\".to_string());\/\/1\t \/\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438\t words.push(\"if\".to_string());\/\/2\t\/\/ \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0414\u0412\u0423\u0425 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\t\t words.push(\"exit_()\".to_string());\/\/3\/\/\u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f words.push(\"func\".to_string());     \/\/4\/\/\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438  words.push(\"print\".to_string());\/\/5 \/\/ \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\t\t words.push(\"remove\".to_string());\/\/6 \/\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 words.push(\"array\".to_string());\/\/7 \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 words.push(\"struct\".to_string()); \/\/8 \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b words.push(\"end\".to_string());\/\/9\/\/end operation words.push(\"end_func\".to_string()); \/\/ 10 \/\/ \u043a\u043e\u043d\u0435\u0446 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\t words.push(\"return\".to_string()); \/\/  11 words.push(\"!eq\".to_string());\/\/  12 words.push(\"&gt;\".to_string());  \/\/  13 words.push(\"&lt;\".to_string());  \/\/  14 words.push(\"loop\".to_string());\/\/ 15 words.push(\"end_loop\".to_string());\/\/ 16\t\t words.push(\"_\".to_string()); \/\/ 17 \/\/ \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u041d\u0415 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 words.push(\"break\".to_string()); \/\/ 18 words.push(\"true\".to_string()); \/\/ 19 words.push(\"false\".to_string()); \/\/ 20<\/code><\/pre>\n<p>\u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0443 \u0441\u043b\u043e\u0432 \u0435\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f (\u0438 \u043d\u0435 \u0441 \u043d\u0443\u043b\u044f. <strong>\u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e<\/strong>).<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0442\u0430\u0440\u0442.<\/p>\n<pre><code class=\"rust\">pub fn start_(&amp;mut self, text: String) -&gt; u8<\/code><\/pre>\n<p>\u0412 \u043d\u0435\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u0441\u044f \u043c\u0430\u0433\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0435\u0433\u043e \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c, \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043a\u0430\u043a-\u0442\u043e \u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043d\u043e \u043c\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c.<\/p>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (\u0442\u0435\u043b\u043e \u0446\u0438\u043a\u043b\u0430 \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0438\u043b\u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0442.\u0434.).<\/p>\n<p>\u041f\u0440\u0438\u0432\u043e\u0436\u0443 \u043a\u043e\u0434.<\/p>\n<pre><code class=\"rust\">let mut temp_values: String = String::new();\t\t\t\/\/\t\u0412\u0420\u0415\u041c\u0415\u041d\u041d\u042b\u0415 \u041f\u0415\u0420\u0415\u041c\u0415\u041d\u041d\u042b\u0415 let mut temp_name: String = String::new();\t\t        \/\/\t... let mut temp_buffer: String = String::new();\t\t\t\/\/\t... let mut func_text: String = String::new(); let mut last_op: [usize; 3] = [0; 3]; \/\/ \u0445\u0440\u0430\u043d\u0438\u043c \u0442\u0440\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \/\/ ---------------------------------------------- let mut if_count: usize = 0; let mut if_result: bool = true; \/\/ \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 let mut struct_flag: bool = false; \/\/ \u044d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 let mut function_inactive_flag: bool = false; \/\/ \u0435\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u0430 let mut loop_flag: bool = false; \/\/ \u043f\u043e\u043f\u0430\u043b\u0438 \u043d\u0430 \u0446\u0438\u043a\u043b let mut index_loop: usize = 0; \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u043a\u043b\u043e\u0432 (\u0434\u043b\u044f \u0446\u0438\u043a\u043b\u0430 \u0432 \u0446\u0438\u043a\u043b\u0435)<\/code><\/pre>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u043e\u0432, \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u043a\u0430\u043a-\u0440\u0430\u0437 \u0442\u0430\u043a\u0438 \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412\u0441\u0435\u0433\u043e \u043d\u0430\u0448 \u043a\u043e\u0434 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430<\/p>\n<pre><code class=\"rust\">if ch == ' ' || ch == '\\t' {   \/\/................... } else if ch == '\\n' {   \/\/................... } else if ch == '=' {   \/\/................... } } else {   temp_values.push(ch); }<\/code><\/pre>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0437\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u043a\u0430\u0440\u0442\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439). \u0412\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u043e\u0441\u043b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438, \u0442\u0443\u0442 \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0418 \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0438.<br \/>\u0411\u043b\u043e\u043a else \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u044b\u0440\u044f\u0435\u043c \u043f\u043e \u043a\u043e\u0434\u0443, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<pre><code class=\"rust\">if function_inactive_flag {   \/\/ ...\t\t\t\t\t\t } if loop_flag {   \/\/ ... } match temp_values.trim() {   \/\/ ... }<\/code><\/pre>\n<p>\u041c\u044b \u0432\u0438\u0434\u0438\u043c \u0432 \u0431\u043b\u043e\u043a\u0435 \u0435\u0449\u0451 \u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0432 \u043d\u0451\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u0445 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e (\u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e).<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0446\u0438\u043a\u043b\u043e\u043c, \u0437\u0430\u043f\u0438\u0441\u044c \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0446\u0438\u043a\u043b\u0430.<br \/>\u0422\u0440\u0435\u0442\u0438\u0439 \u0436\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u0432 \u043a\u0430\u0440\u0442\u0443.<\/p>\n<p>\u0412\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0436\u0435 \u0438\u0434\u0451\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0430\u043c \u043b\u043e\u0433\u0438\u043a\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>\u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443: a  = b + c <br \/>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432: last_op[0] = 1 last_op[1] = 17  <br \/>\u0418 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u0441\u044f: \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 math_work .<\/p>\n<h2>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430<\/h2>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"rust\">fn math_work(&amp;self, text: String) -&gt; String {   let text: String = Words::trim(text.clone());   let mut result_string: String = String::new();   let mut temp_string: String = String::new();   for ch in text.chars() {     match ch {       '+' | '-' | '\/' | '*' | '(' | ')' | '&amp;' | '|' | '!' | '=' | '&lt;' | '&gt;' =&gt; {         if Words::is_digit(temp_string.clone()) {           result_string += temp_string.clone().as_str();\t\t\t\t\t\t\t         } else {           result_string += self.search_var(temp_string).0.clone().as_str();         }         result_string.push(ch.clone());         temp_string = String::new();       },       _ =&gt; {         temp_string.push(ch.clone());       },     }   }    let (value, type_, _temp) = self.search_var(temp_string.clone());   if _temp {     result_string += value.as_str();   } else {     result_string += temp_string.clone().as_str();   } result_string }<\/code><\/pre>\n<p>\u0412\u0441\u0451 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0435\u0441\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u043a\u0432\u043e\u0439 (\u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445) &#8212; \u0441\u0440\u0430\u0437\u0443 \u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e, \u0435\u0441\u043b\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0449\u0435\u043c \u043a\u043e\u043d\u0435\u0446 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (\u043e\u0431\u044b\u0447\u043d\u043e \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u0430, \u043b\u0438\u0431\u043e \u0441\u0438\u043c\u0432\u043e\u043b \u043a\u043e\u043d\u0446\u0430 \u0441\u0442\u0440\u043e\u043a\u0438) \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0451 \u0438\u043c\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0432\u0441\u0451 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"rust\">fn eval(str_: Vec&lt;char&gt;) -&gt; f32 {   let mut i: usize = 0;   Words::expr(str_, &amp;mut i) }<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0412\u0441\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0430\u0433\u0438\u044f<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"rust\">fn eval(str_: Vec&lt;char&gt;) -&gt; f32 {   let mut i: usize = 0;   Words::expr(str_, &amp;mut i) }  fn plus_one(u: &amp;mut usize) {   *u += 1; }  fn number(ch_: Vec&lt;char&gt;, idx: &amp;mut usize) -&gt; f32 {   let mut result: f32 = 0.0;   \/\/float result = 0.0;   let mut div: f32 = 10.0;   let mut sign: f32 = 1.0;   if ch_[*idx] == '-'{     sign = -1.0;     *idx += 1;   }    while *idx &lt; ch_.len() &amp;&amp;   match ch_[*idx] {     '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' =&gt; { true },     _ =&gt; { false }   }   {     result = result * 10.0 + (f32::from_str(&amp;ch_[*idx].to_string()).expect(\"\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443\"));      *idx += 1;   }    if *idx &lt; ch_.len() &amp;&amp; (ch_[*idx] == '.'){     *idx += 1;             while *idx &lt; ch_.len() &amp;&amp;     match ch_[*idx] {       '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' =&gt; { true },       _ =&gt; { false }     }      {       result = result + (f32::from_str(&amp;ch_[*idx].to_string()).expect(\"\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443\")) \/ div;       div *= 10.0;       *idx += 1;     }   }   sign * result }  fn expr(ch_: Vec&lt;char&gt;, idx: &amp;mut usize) -&gt; f32 {   let mut result: f32 = Words::term(ch_.clone(), idx);       while *idx &lt; ch_.len() &amp;&amp; (ch_[*idx] == '+' || ch_[*idx] == '-') {     match ch_[*idx] {       '+' =&gt; {         *idx += 1;         result += Words::term(ch_.clone(), idx);       },       '-' =&gt; {         *idx += 1;             result -= Words::term(ch_.clone(), idx);       },       _ =&gt; {},     }    } result }  fn term(ch_: Vec&lt;char&gt;, idx: &amp;mut usize) -&gt; f32 {   let mut result: f32 = Words::factor(ch_.clone(), idx);   let mut div: f32 = 0.0;    while *idx &lt; ch_.len() &amp;&amp; (ch_[*idx] == '*' || ch_[*idx] == '\/') {     match ch_[*idx] {       '*' =&gt; {         *idx += 1;         result *= Words::factor(ch_.clone(), idx);       },       '\/' =&gt; {         *idx += 1;             div = Words::factor(ch_.clone(), idx);             if (div != 0.0) {           result \/= div;         } else {           panic!(\"Division by zero!\\n\");                             }       },       _ =&gt; {},     }   } result }  fn factor(ch_: Vec&lt;char&gt;, idx: &amp;mut usize) -&gt; f32 {   let mut result: f32 = 0.0;   let mut sign: f32 = 1.0;    if (ch_[*idx] == '-') {     sign = -1.0;     *idx += 1;   }    if (ch_[*idx] == '(') {     *idx += 1;     result = Words::expr(ch_.clone(), idx);      if (ch_[*idx] != ')') {       panic!(\"Brackets unbalanced!\\n\");     }     *idx += 1;   } else { result = Words::number(ch_, idx); }   sign * result }<\/code><\/pre>\n<\/div>\n<\/details>\n<h2>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h2>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043e\u043d\u0438 \u043a\u0440\u0430\u0439\u043d\u0435 \u0441\u043b\u0430\u0431\u043e \u0438 \u0438\u0445 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u0443\u044e \u043a\u0443\u0447\u0443 \u043c\u0435\u0441\u0442\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u0440\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0412\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043c\u0435\u0441\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0432 \u0434\u0432\u0443\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u0445, \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043c\u0451\u043d \u0438 \u0442\u0438\u043f\u043e\u0432:<\/p>\n<pre><code class=\"rust\">object_buffer: Vec&lt;(String, usize)&gt;<\/code><\/pre>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<pre><code class=\"rust\">value_buffer: Vec&lt;String&gt;<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f add_vars:<\/p>\n<pre><code class=\"rust\">fn add_vars(&amp;mut self, vars_name: String, mut vars_value: String, vars_type: usize) {   \/\/object_buffer: Vec&lt;(String, usize)&gt;   \/\/value_buffer: Vec&lt;String&gt;   if vars_value.clone().split('\\\"').collect::&lt;Vec&lt;&amp;str&gt;&gt;().len() &gt; 1 {     vars_value = vars_value.split('\\\"').collect::&lt;Vec&lt;&amp;str&gt;&gt;()[1].to_string();   } else {     vars_value = vars_value.clone().trim().to_string();   }   self.object_buffer.push((vars_name, vars_type));   self.value_buffer.push(vars_value); }<\/code><\/pre>\n<p>\u0412 \u043d\u0435\u0439 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0435\u0441\u0442\u044c \u043b\u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 (\u0447\u0442\u043e \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445 \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0438 \u043d\u0435 \u043e\u0442\u0440\u0435\u0437\u0430\u0435\u043c \u043f\u0440\u043e\u0431\u0435\u043b\u044b).<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439:<\/p>\n<pre><code class=\"rust\">fn remove_vars(&amp;mut self, vars_name: String) {   for i in 0..self.object_buffer.len() {     if self.object_buffer[i].0.clone() == vars_name {       self.object_buffer.remove(i);       self.value_buffer.remove(i);       return;     }   } }<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0438\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a:<\/p>\n<pre><code class=\"rust\">fn set_value(&amp;mut self, vars_name: String, mut vars_value: String) {   for i in 0..self.object_buffer.len() {     if<\/code><\/pre>\n<p><\/br><\/p>\n<\/p>\n<\/p>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-323213","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/323213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=323213"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/323213\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=323213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=323213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=323213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}