A..2 Interpreters

Four different configuration programs read Config Language:

scripts/Configure make config, make oldconfig
scripts/Menuconfig make menuconfig
scripts/tkparse make xconfig
mconfig ftp.kernel.org/pub/linux/kernel/people/hch/mconfig/

'Configure' is a bash script which interprets Config.in files by sourcing them. Some of the Config Language commands are native bash commands; simple bash functions implement the rest of the commands.

'Menuconfig' is another bash script. It scans the input files with a small awk script, builds a shell function for each menu, sources the shell functions that it builds, and then executes the shell functions in a user-driven order. Menuconfig uses 'lxdialog', a back-end utility program, to perform actual screen output. 'lxdialog' is a C program which uses curses.

'scripts/tkparse' is a C program with an ad hoc parser which translates a Config Language script to a huge TCL/TK program. 'make xconfig' then hands this TCL/TK program to 'wish', which executes it.

'mconfig' is the next generation of Config Language interpreters. It is a C program with a bison parser which translates a Config Language script into an internal syntax tree and then hands the syntax tree to one of several user-interface front ends.

L4 Checker 2012-04-11