This example presents a simple hierarchical menu interpreter.

Each menu and submenu are in a file suffixed by .mnu and is constituted
by directives and menu entries/preudo-entries. Each of them are in its
proper line.

Comment lines are allowed and are introduced by a '#' in the first column

The directives are:

.columns:    Set the number of columns in the menu
.centered:   Tell if the menu must be centered
.eraseafter: Tell if the menu window must be destroyed after the selection
             and the old cursor location restored.
.title:      Set the menu tittle.

The item lines has at least two fields: a tag and a menu item which will
be displayed.

The tag is normally the returned value when an item is selected but may
also be part of a pseudo-entry.

These special tags are:

>xxx : Loads the submenu file xxx.mnu and interprets it.
<    : Reload the previous menu file and interprets it
---  : Inserts an empty item in the menu
===  : Inserts an empty line in the menu (useful when there is more than
       1 column)
EXIT : Exits the menu without outputting anything.

As usual, 'ENTER' triggers the selection and 'q' quits the menu without
outputting anything.

To launch the demo, first, make sure to make simple_menu.sh executable
(chmod +x simple_menu.sh actions.sh) and enter:

./simple_menu.sh main.mnu ./actions.sh

The first argument is the main menu file and the second one is the path
of the program which will be called each time a selection is made. This
program will be given the selected tag as argument.
