rinonaito / minishell

0 stars 0 forks source link

01_tokenization #1

Open rinonaito opened 1 year ago

rinonaito commented 1 year ago

<トークンへの分割単位> ① クオテーションのセットがあれば、その内部文字列(クオテーションを含む) ② メタキャラクタ(|, <, <<, >, >>) ③ スペース・タブ区切りの文字列(①、②に該当しない場合)

<トークンの種類> ① TK_WORD :上記の①、③。 ② TK_OPERATOR:上記の②。

taarakii commented 1 year ago

Memo: Lexerでクオーテーションが奇数個しかない場合、単語として登録するのではなく入力待ちにした方がいいかもしれない (Not interpret unclosed quotes or special characters which are not required by the subject such as \ (backslash) or ; (semicolon).)

rinonaito commented 1 year ago

<< Syntax Error Check >> ▶︎現段階でエラーとして処理した内容 ① クオテーションが閉じていない場合 ② TK_PIPEタイプの前のトークンがTK_WORDで無い場合 ③ TK_REDIRまたはTK_PIPEタイプの後のトークンがTK_WORDで無い場合

▶︎要検討

rinonaito commented 1 year ago

↑修正 ③ TK_REDIRまたはTK_PIPEタイプの後のトークンがTKWORDで無い場合 →TK_PIPEタイプのトークンの後はTKREDIRの可能性もある