\r
int level = 1;\r
\r
- char words[10][128];\r
+ struct Word {\r
+ char str[128];\r
+ int len;\r
+ };\r
+ struct Word words[128];\r
int numWords = 1;\r
- words[0][0] = '(';\r
+ words[0].str[0] = '(';\r
+ words[0].len = 1;\r
\r
while (true) {\r
+ move(0, 0);\r
+ clear();\r
+ refresh();\r
+\r
+ for (int i = 0; i < numWords; i++) {\r
+ printw("%.*s\n", words[i].len, words[i].str);\r
+ }\r
+\r
+\r
int key = getch();\r
\r
/**/ if (key == ' ') {\r
if (index == 0) {\r
if (level > 0) {\r
// end list\r
- printw(")");\r
+ words[numWords].str[0] = ')';\r
+ words[numWords].len = 1;\r
+ numWords++;\r
level--;\r
}\r
}\r
else {\r
// add to list\r
- printw("%.*s ", index, word);\r
+ // for (int i = 0; i < index; i++) {\r
+ // words[numWords].str[i] = word[i];\r
+ // }\r
+ // words[numWords].len = index;\r
index = 0;\r
+ // numWords++;\r
}\r
}\r
else if (key == '\n') {\r
- if (index == 0) {\r
- // add to list\r
- printw("%.*s ", index, word);\r
- index = 0;\r
+ // if (index == 0) {\r
+ // // add to list\r
+ // for (int i = 0; i < index; i++) {\r
+ // words[numWords].str[i] = word[i];\r
+ // }\r
+ // words[numWords].len = index;\r
+ // index = 0;\r
+ // numWords++;\r
\r
// add list\r
- printw("\n");\r
- for (int i = 0; i < level; i++)\r
- printw(" ");\r
- printw("(");\r
+ words[numWords].str[0] = '(';\r
+ words[numWords].len = 1;\r
+ numWords++;\r
level++;\r
+ // }\r
+ index = 0;\r
+ }\r
+ else if (key == 8) {\r
+ if (numWords > 0) {\r
+ if (words[numWords-1].len == 1 && words[numWords-1].str[0] == '(') level--;\r
+ if (words[numWords-1].len == 1 && words[numWords-1].str[0] == ')') level++;\r
+ numWords--;\r
}\r
}\r
else {\r
- word[index++] = (char)key;\r
+ if (index == 0) {\r
+ numWords++;\r
+ words[numWords-1].len = 0;\r
+ }\r
+ words[numWords-1].str[index++] = (char)key;\r
+ words[numWords-1].len++;\r
}\r
}\r
\r