diff options
author | 2003-06-06 12:04:40 +0000 | |
---|---|---|
committer | 2003-06-06 12:04:40 +0000 | |
commit | 045f398e6ad72d32199d77c9794f4b3e118f196a (patch) | |
tree | fe5f99104cf4b5eacc653a062d34dd0311948011 /doc/check-grammar | |
parent | 0235a3306a996a85119a92697431e11a35f093fd (diff) |
Added new syntax definition
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@4100 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'doc/check-grammar')
-rwxr-xr-x | doc/check-grammar | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/doc/check-grammar b/doc/check-grammar new file mode 100755 index 000000000..67da1bc51 --- /dev/null +++ b/doc/check-grammar @@ -0,0 +1,50 @@ +#!/bin/bash +# This scripts checks that the new grammar of Coq as defined in syntax-v8.tex +# is consistent in the sense that all invoked non-terminals are defined + +defined-nt() { + grep "\\DEFNT{.*}" syntax-v8.tex | sed -e "s|.*DEFNT{\([^}]*\)}.*|\1|"|\ + sort | sort -u +} + +used-nt() { + cat syntax-v8.tex | tr \\\\ \\n | grep "^NT{.*}" |\ + sed -e "s|^NT{\([^}]*\)}.*|\1|" | egrep -v ^\#1\|non-terminal | sort -u +} + +used-term() { + cat syntax-v8.tex | tr \\\\ \\n | grep "^TERM{.*}" |\ + sed -e "s|^TERM{\([^}]*\)}.*|\1|" -e "s|\\$||g" | egrep -v ^\#1\|terminal | sort -u +} + +used-kwd() { + cat syntax-v8.tex | tr \\\\ \\n | grep "^KWD{.*}" |\ + sed -e "s|^KWD{\([^}]*\)}.*|\1|" -e "s|\\$||g" | egrep -v ^\#1 | sort -u +} + +defined-nt > def +used-nt > use +used-term > use-t +used-kwd > use-k +diff def use > df + +############################### +echo +if grep ^\> df > /dev/null 2>&1 ; then + echo Undefined non-terminals: + echo ======================== + echo + grep ^\> df | sed -e "s|^> ||" + echo +fi +if grep ^\< df > /dev/null 2>&1 ; then + echo Unused non-terminals: + echo ===================== + echo + grep ^\< df | sed -e "s|^< ||" + echo +fi +#echo Used terminals: +#echo =============== +#echo +#cat use-t
\ No newline at end of file |