#include <stdio.h> #include <stdlib.h> #include <string.h> char expr [] = "(a(((bc(d))lll)de(faaa)))zzz"; int i = 0; char gettoken () { return expr [i++]; } void tokenback () { i--; } /* aaaa aaaaaa aaaaaaa aaaaaaaa() */ int stream (); int followed (); int compound (); int stream () { compound (); followed (); } int followed () { int ch = gettoken (); if ((ch >= 'a') \&\& (ch <= 'z')) { printf ("%c ", ch); stream (); } else tokenback (); } int compound () { if (gettoken () == '(') { stream (); if (gettoken () != ')') { fprintf (stderr, "fehler klammer vergessen %c %in", expr [i], i); exit (1); } } else tokenback (); } int main (void) { stream (); }Meine güte, war ich dämlich, ich habe ein else vergessen.