|
Minishell 1.0
42 School Minishell Project - A simple shell implementation
|
Bu dosyanın kaynak koduna git.
Fonksiyonlar | |
| t_env * | extract_variable_info (t_shell *shell, char *str) |
| Değişken ismini ve değerini bulup bir t_env paketi içinde döndürür. | |
| int | check_var_extraction (t_env *var, int *i) |
| Çıkarılan değişken paketinin durumunu kontrol eder. | |
| int | apply_variable_replacement (t_token *token, t_env *var, int *i) |
| Değişken değişimini token üzerinde uygular ve indeksi günceller. | |
| int | process_variable_replacement (t_shell *shell, t_token *token, int *i) |
| Tek bir genişletme işleminin tüm sürecini yöneten orkestra şefi. | |
Değişken ismini ve değerini bulup bir t_env paketi içinde döndürür.
'$' işaretinden sonra gelen stringi analiz eder. Geçerli değişken ismini (key) çıkarır ve shell'in env listesinden değerini (value) bulur. Bu verileri geçici bir t_env yapısında saklar.
| shell | Ana yapı (env listesine erişim için). |
| str | Dolar işaretinden hemen sonra başlayan string. |
expander_env_replacement.c dosyasının 27 numaralı satırında tanımlanmıştır.
Referanslar free_env_node(), get_var_name_len(), get_var_value(), s_env::key ve s_env::value.
Referans veren process_variable_replacement().
| int check_var_extraction | ( | t_env * | var, |
| int * | i ) |
Çıkarılan değişken paketinin durumunu kontrol eder.
Bu fonksiyon bir "Kapı Bekçisi" (Gatekeeper) gibidir. Ana fonksiyona ne yapması gerektiğini söyleyen bir durum kodu döndürür.
| var | extract_variable_info'dan dönen paket. |
| i | Ana döngüdeki indeksin adresi (güncellemek için). |
expander_env_replacement.c dosyasının 71 numaralı satırında tanımlanmıştır.
Referanslar free_env_node() ve s_env::key.
Referans veren process_variable_replacement().
Değişken değişimini token üzerinde uygular ve indeksi günceller.
replace_token_value fonksiyonunu çağırarak string manipülasyonunu yapar. Ardından ana döngünün sonsuz döngüye girmemesi veya yeni eklenen değerin tekrar genişletilmemesi için indeksi (*i) ayarlar.
| token | Üzerinde işlem yapılan token. |
| var | Değişken bilgilerini tutan paket. |
| i | Ana döngüdeki indeksin adresi. |
expander_env_replacement.c dosyasının 100 numaralı satırında tanımlanmıştır.
Referanslar s_env::key, replace_token_value() ve s_env::value.
Referans veren process_variable_replacement().
Tek bir genişletme işleminin tüm sürecini yöneten orkestra şefi.
| shell | Ana yapı. |
| token | İşlenen token. |
| i | Ana döngüdeki indeksin adresi. |
expander_env_replacement.c dosyasının 130 numaralı satırında tanımlanmıştır.
Referanslar apply_variable_replacement(), check_var_extraction(), extract_variable_info(), free_env_node() ve s_token::value.
Referans veren expand_variable().