Skip to content

Commit

Permalink
more detailed checkBGF; tops & bottoms in ANTLR Java extraction
Browse files Browse the repository at this point in the history
git-svn-id: https://slps.svn.sourceforge.net/svnroot/slps@1005 ab42f6e0-554d-0410-b580-99e487e6eeb2
  • Loading branch information
grammarware committed Apr 5, 2011
1 parent 3b89741 commit f49cfd8
Show file tree
Hide file tree
Showing 4 changed files with 167 additions and 6 deletions.
14 changes: 12 additions & 2 deletions shared/tools/checkbgf
Expand Up @@ -7,5 +7,15 @@ cd ../..
SLPS=${PWD}
cd ${LOCAL1}

python ${SLPS}/topics/investigation/analysis/present_bgf.py $1
rm -f TMP-res
if [ $# -ne 1 ]; then
echo "Usage: checkbgf <BGF-input>"
exit 1
elif [ ! -r $1 ]; then
echo "Oops: $1 not found or not readable."
exit 1
else
python ${SLPS}/topics/investigation/analysis/present_bgf.py $1
fi



91 changes: 89 additions & 2 deletions topics/grammars/java/antlr-java-5/stahl/post-extraction.xbgf
Expand Up @@ -27,7 +27,7 @@
<epsilon/>
</bgf:expression>
</xbgf:replace>
<!-- this is an error 1 in the grammar (!!!) -->
<!-- this nonterminal was introduced by a semantic action hack -->
<xbgf:define>
<bgf:production>
<nonterminal>ENUM</nonterminal>
Expand All @@ -36,7 +36,7 @@
</bgf:expression>
</bgf:production>
</xbgf:define>
<!-- this is an error 2 in the grammar (!!!) -->
<!-- this nonterminal was introduced by a semantic action hack -->
<xbgf:define>
<bgf:production>
<nonterminal>ASSERT</nonterminal>
Expand All @@ -45,4 +45,91 @@
</bgf:expression>
</bgf:production>
</xbgf:define>
<!-- this is a minor simplification, otherwise a proper definition -->
<xbgf:define>
<bgf:production>
<nonterminal>NUM_LONG</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<value>int</value>
</bgf:expression>
<bgf:expression>
<choice>
<bgf:expression>
<terminal>l</terminal>
</bgf:expression>
<bgf:expression>
<terminal>L</terminal>
</bgf:expression>
</choice>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</xbgf:define>
<!-- simplification because NUM_INT is too complicated and idiosyncratic -->
<xbgf:define>
<bgf:production>
<nonterminal>NUM_FLOAT</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<value>int</value>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<nonterminal>EXPONENT</nonterminal>
</bgf:expression>
</optional>
</bgf:expression>
<bgf:expression>
<choice>
<bgf:expression>
<terminal>f</terminal>
</bgf:expression>
<bgf:expression>
<terminal>F</terminal>
</bgf:expression>
</choice>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</xbgf:define>
<!-- simplification because NUM_INT is too complicated and idiosyncratic -->
<xbgf:define>
<bgf:production>
<nonterminal>NUM_DOUBLE</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<value>int</value>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<nonterminal>EXPONENT</nonterminal>
</bgf:expression>
</optional>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<choice>
<bgf:expression>
<terminal>d</terminal>
</bgf:expression>
<bgf:expression>
<terminal>D</terminal>
</bgf:expression>
</choice>
</bgf:expression>
</optional>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</xbgf:define>
</xbgf:sequence>
65 changes: 64 additions & 1 deletion topics/grammars/java/antlr-java-5/studman/post-extraction.xbgf
Expand Up @@ -36,7 +36,6 @@
</bgf:expression>
</bgf:production>
</xbgf:define>

<!-- this is a minor simplification (as for NUM_INT), otherwise a proper definition -->
<xbgf:define>
<bgf:production>
Expand All @@ -60,4 +59,68 @@
</bgf:expression>
</bgf:production>
</xbgf:define>
<!-- simplification because NUM_INT is too complicated and idiosyncratic -->
<xbgf:define>
<bgf:production>
<nonterminal>NUM_FLOAT</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<value>int</value>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<nonterminal>EXPONENT</nonterminal>
</bgf:expression>
</optional>
</bgf:expression>
<bgf:expression>
<choice>
<bgf:expression>
<terminal>f</terminal>
</bgf:expression>
<bgf:expression>
<terminal>F</terminal>
</bgf:expression>
</choice>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</xbgf:define>
<!-- simplification because NUM_INT is too complicated and idiosyncratic -->
<xbgf:define>
<bgf:production>
<nonterminal>NUM_DOUBLE</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<value>int</value>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<nonterminal>EXPONENT</nonterminal>
</bgf:expression>
</optional>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<choice>
<bgf:expression>
<terminal>d</terminal>
</bgf:expression>
<bgf:expression>
<terminal>D</terminal>
</bgf:expression>
</choice>
</bgf:expression>
</optional>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</xbgf:define>
</xbgf:sequence>
3 changes: 2 additions & 1 deletion topics/investigation/analysis/present_bgf.py
Expand Up @@ -12,7 +12,8 @@
grammar = BGF.Grammar()
grammar.parse(sys.argv[1])
mb = bench.MeasurementBench(grammar)
print 'Productions: ',mb.PROD()
print 'Productions: ',len(grammar.prods)
print 'Top alternatives: ',mb.PROD()
print 'Nonterminals defined:',mb.DEFD()
pa = lambda a:reduce(lambda x,y:x+', '+str(y),a[1:],'('+str(a[0]))+')'
if mb.UNDEF():
Expand Down

0 comments on commit f49cfd8

Please sign in to comment.