c-smie is an attempt to port SMIE, an indentation engine in Emacs, aiming for the use in other editing programs.
$ gnome-autogen.sh CFLAGS="-O0 -g3 -Wall"
$ make
$ make check
To run an interactive demo (requires GtkSourceView):
$ ./editor --grammar tests/test.grammar tests/test.input
tests/test.grammar defines a shell-script like grammar. Hit TAB on a line to indent.