Minishell 1.0
42 School Minishell Project - A simple shell implementation
Yüklüyor...
Arıyor...
Eşleşme Yok
lexer.c Dosya Referansı

Lexer (Sözcüksel Analiz) modülü Ayrıntılar...

#include "../../include/minishell.h"
#include <stdio.h>
lexer.c için içerme bağımlılık grafiği:

Bu dosyanın kaynak koduna git.

Fonksiyonlar

int process_next_token (t_shell *shell, int i)
 Bir sonraki token'ı işler.
static int handle_newline (t_shell *shell, int *i, int *token_end)
 Ardışık newline ve whitespace'leri atlayıp TOKEN_NEWLINE üretir.
int lexer (t_shell *shell)
 Lexer ana fonksiyonu — komut satırını token'lara ayırır.

Ayrıntılı tanımlama

Lexer (Sözcüksel Analiz) modülü

Kullanıcı girişini token'lara ayırır. Shell pipeline'ının ilk aşaması. Girdi: shell->cmd_line (string) Çıktı: shell->token_list (linked list of t_token)

lexer.c dosyasında tanımlanmıştır.

Fonksiyon Dokümantasyonu

◆ process_next_token()

int process_next_token ( t_shell * shell,
int i )

Bir sonraki token'ı işler.

Parametreler
shellShell yapısı
iMevcut indeks
Döndürdüğü değer
int Tüketilen karakter sayısı veya hata için -1

lexer.c dosyasının 31 numaralı satırında tanımlanmıştır.

Referanslar assess_char_category(), category_dispatcher() ve s_shell::cmd_line.

Referans veren lexer().

Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

◆ handle_newline()

int handle_newline ( t_shell * shell,
int * i,
int * token_end )
static

Ardışık newline ve whitespace'leri atlayıp TOKEN_NEWLINE üretir.

Döndürdüğü değer
int Başarı: 1, Hata: 0

lexer.c dosyasının 45 numaralı satırında tanımlanmıştır.

Referanslar append_token(), s_shell::cmd_line, QUOTE_NONE ve TOKEN_NEWLINE.

Referans veren lexer().

Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

◆ lexer()

int lexer ( t_shell * shell)

Lexer ana fonksiyonu — komut satırını token'lara ayırır.

Döndürdüğü değer
int Başarı: 1, Hata: 0

lexer.c dosyasının 60 numaralı satırında tanımlanmıştır.

Referanslar append_token(), s_shell::cmd_line, handle_newline(), mark_last_token_adjacent(), process_next_token(), QUOTE_NONE, skip_whitespace() ve TOKEN_EOF.

Referans veren process_line().

Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması: