Hi, all, Some time ago, I asked your sugestions on what should be a parser we could use for shell scripting:
http://lists.suckless.org/dev/0908/0822.html Now I would like to show you this tool I wrote. It does exactly what was discussed in those messages, i.e., it's something like yacc that can be used for shell scripting. I call it 'noam': http://bitbucket.org/mauricio/noam http://bitbucket.org/mauricio/noam/downloads noam reads a grammar with rules associated to actions defined as shell commands. As an example, this script (taken from current documentation) implements a "plus only" calculator: #!/usr/bin/noam layout : /[[:space:]]+/ * ; number : /[0-9]+/ ; plus : /\+/ layout number {echo $3 > $OUTPUT} ; plus : plus layout number {echo $1 + $3 | bc > $OUTPUT} ; number : /\(/ layout plus layout /\)/ {echo $3 > $OUTPUT} ; main : layout number layout {echo Result: $2} ; If you name it 'calc.noam' and type: echo '(+ 1 2 (+ 3 4) (+ 5 6) 7)' | calc.noam you'll get: Result: 28 I've had a lot of fun with this, and hope it's useful to you. Best, Maurício