関数の流れだけ書いていく!

今はパース部だけ深掘る。実行部はあとで。

shell.c/main

main/init_ 初期化とか

main/set_  初期化とか

main/reader_loop 入力を受け取るメインの処理

reader_loop/signal_ シグナルハンドラの設定

reader_loop/read_command

read_command/set_current_prompt_level PS1かPS2かを決める

read_command/parse_command

parse_command/yyparse

yyparse/yylex トークン種別を返す

yylex/read_token 一文字ずつみてトークン種別を判定。

read_token/shell_getc バッファから一文字取ってくる

shell_getc/print_prompt プロンプトをsrderrに表示

shell_getc/yy_getc 入力から一文字受け取る

read_token/shell_ungetc バッファに一文字戻す

read_token/read_token_word トークンの種類を取得する