diff --git a/README.md b/README.md index 9b191df..cdbddc9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,20 @@ -## todo list : +## sommaire : +- [1. todo list :](#markdown-header-todo-list) +- 2. parsing : +- 2.1 methode arbre binaire : +- 3. gerer les quotes et la separation des arguments : +- 3.1 tentative methode 1 : +- 3.1.1 pseudo code : +- 3.1.2 application : +- 3.1.3 erreur : +- 3.2 tentative methode 2 : +- 3.2.1 deroulement : +- 3.2.2 application : +- 3.3 comportement reel chelou : +- 4. notes : + +--- +## 1. todo list : - **global features :** - `prompt` *show a prompt* @@ -37,21 +53,13 @@ --- -## parsing : +## 2. parsing : -[methode arbre binaire :](https://fr.wikipedia.org/wiki/Arbre_binaire#Transformation_d'un_arbre_quelconque_en_un_arbre_binaire) +### 2.1 methode arbre binaire : + +[transformer arbre normal en arbre binaire](https://fr.wikipedia.org/wiki/Arbre_binaire#Transformation_d'un_arbre_quelconque_en_un_arbre_binaire) ``` -EXEMPLE : - 'something "is 'new'" here' - something is new here - is new - new - 'something "is"'new' here' - something is - new - here - ARCHITECTURE : all expend $ @@ -79,16 +87,12 @@ EXEMPLE : . . . . [file] ``` ---- +## 3. gerer les quotes et la separation des arguments : -## separer arguments : +### 3.1 tentative methode 1 : -- 'arg1 'arg2" arg3" -- 'a"r'g'"1' -- 'arg"1"'arg2'arg3' +#### 3.1.1 pseudo code : -### tentative methode 1 -#### pseudo code : ``` int q; // first quote int c; // count @@ -138,7 +142,7 @@ while (str[i]) i++; } ``` -### application : +#### 3.1.2 application : ``` ['][a][r][g][1][ ]['][a][r][g][2]["][ ][a][r][g][3]["] c = 0 . . . . . . . . . . . . . . . . . . @@ -179,14 +183,15 @@ c = . . . . . . . . 1 . str[i] != ' | " ; -> c = . . . . . . . . . 0 str[i] != ' | " ; -> ``` -#### erreur : +#### 3.1.3 erreur : -> comment le programme sait que cette fois il doit decrementer "c" ? en retenant dans l'ordre toutes les dernieres valeurs de "q" ! -> donc plutot partir sur une recursive -### tentative methode 2 : -#### exemple : +### 3.2 tentative methode 2 : + +#### 3.2.1 deroulement : ``` .--------------------------------------------. : .--------------------------------------. : @@ -196,7 +201,7 @@ c = . . . . . . . . . 0 str[i] != ' | " ; -> '__"__'__"__"__"__'__'__"__"__'__'__"__'__"__' 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 ``` --> repérer les paires de quotes ou dquotes +-> identifier les paires de quotes ou dquotes -> piège : ``` | | @@ -212,7 +217,7 @@ c = . . . . . . . . . 0 str[i] != ' | " ; -> 4. stop quand la premier quote a trouvé sa paire 5. renvoyer l'emplacement de la pair -exemple : +#### 3.2.2 application : ``` .--. 1 : '__"__'__"__"__"__'__'__"__"__'__'__"__'__"__' @@ -240,10 +245,7 @@ exemple : ``` - - -comportement reel : - +### 3.3 comportement reel chelou : ``` echo "_" _ @@ -287,6 +289,7 @@ _'___"___'___"_"___'___"___'_ ``` --- +## 4. notes : Ordre Interpreteur : 1) Couper les mots (comment faire ? je ne vois pas comment gerer ce genre de bordel ci dessous)