diff --git a/topics/grammars/hunter.py b/topics/grammars/hunter.py index e05b9fef..65c8a658 100755 --- a/topics/grammars/hunter.py +++ b/topics/grammars/hunter.py @@ -550,7 +550,7 @@ def map2expr(ss): return elif len(ess) == 1: if len(ess[0]) == 0: - print('Serialisation error: empty internal output sequence!') + print('Serialisation warning: empty internal output sequence, treating like epsilon!') return BGF3.Expression(BGF3.Epsilon()) elif len(ess[0]) == 1: return BGF3.Expression(ess[0][0]) @@ -563,7 +563,7 @@ def map2expr(ss): e = BGF3.Choice() for es in ess: if len(es) == 0: - print('Serialisation error: empty internal output sequence!') + print('Serialisation warning: empty internal output sequence, treating like epsilon!') return BGF3.Expression(BGF3.Epsilon()) elif len(es) == 1: e.add(BGF3.Expression(es[0])) @@ -1116,7 +1116,7 @@ def considerIndentation(ts): # RESULT if 'nonterminals-may-contain-spaces' in config.keys(): # - prods = [[x.replace(' ','_') for x in p] for p in prods] + prods = [[x.replace(' ','_') if len(x)<3 or (x[0]!=config['start-terminal-symbol'] and x[-1]!=config['end-terminal-symbol']) else x for x in p] for p in prods] print('LAST STEP: replacing spaces with underscores for BGF compatibility and readability.') if debug: print('RESULT:') diff --git a/topics/grammars/metasyntax/bgf/Makefile b/topics/grammars/metasyntax/bgf/Makefile index 694b0dff..6d9af6d6 100644 --- a/topics/grammars/metasyntax/bgf/Makefile +++ b/topics/grammars/metasyntax/bgf/Makefile @@ -1,4 +1,4 @@ extract: - ${tooldir}/xsd2bgf ../../../../shared/xsd/bgf.xsd bgf.bgf + ${tooldir}/xsd2bgf ../../../../shared/xsd/bgf.xsd grammar.bgf -include ../../Makefile.include +include ../../Makefile.grammar diff --git a/topics/grammars/metasyntax/bnf-sdf/Makefile b/topics/grammars/metasyntax/bnf-sdf/Makefile index c0b867b0..5fdf2e55 100644 --- a/topics/grammars/metasyntax/bnf-sdf/Makefile +++ b/topics/grammars/metasyntax/bnf-sdf/Makefile @@ -1,6 +1,6 @@ extract: - ${tooldir}/sdf2bgf ${sdflibdir}/bnf/syntax/*.sdf bnf-sdf.ext.bgf - ${tooldir}/xbgf correct.xbgf bnf-sdf.ext.bgf bnf-sdf.ext.2.bgf - ${tooldir}/subgrammar bnf-sdf.ext.2.bgf Rules bnf-sdf.bgf + ${tooldir}/sdf2bgf ${sdflibdir}/bnf/syntax/*.sdf raw.bgf + ${tooldir}/xbgf correct.xbgf raw.bgf ext.bgf + ${tooldir}/subgrammar ext.bgf Rules grammar.bgf -include ../../Makefile.include +include ../../Makefile.grammar diff --git a/topics/grammars/metasyntax/bnf-bgf/Makefile b/topics/grammars/metasyntax/ebnf-bgf/Makefile similarity index 77% rename from topics/grammars/metasyntax/bnf-bgf/Makefile rename to topics/grammars/metasyntax/ebnf-bgf/Makefile index 8dce0505..5df8c410 100644 --- a/topics/grammars/metasyntax/bnf-bgf/Makefile +++ b/topics/grammars/metasyntax/ebnf-bgf/Makefile @@ -2,7 +2,7 @@ extract: @echo Manually crafted grammar, no need to extract test: - validate bgf bnf-bgf.bgf + validate bgf grammar.bgf clean: rm -f ~* *.bnf diff --git a/topics/grammars/metasyntax/bnf-bgf/bnf-bgf.bgf b/topics/grammars/metasyntax/ebnf-bgf/grammar.bgf similarity index 100% rename from topics/grammars/metasyntax/bnf-bgf/bnf-bgf.bgf rename to topics/grammars/metasyntax/ebnf-bgf/grammar.bgf diff --git a/topics/grammars/metasyntax/ebnf-iso-1/Makefile b/topics/grammars/metasyntax/ebnf-iso-1/Makefile index 4b3c9928..a5228947 100644 --- a/topics/grammars/metasyntax/ebnf-iso-1/Makefile +++ b/topics/grammars/metasyntax/ebnf-iso-1/Makefile @@ -2,8 +2,8 @@ extract: cp src.8.1.txt src.prepared.txt perl -pi -w -e 's/˜/~/g;' src.prepared.txt perl -pi -w -e 's/ˆ/^/g;' src.prepared.txt - ../../hunter.py src.prepared.txt config.edd ebnf-iso-1.raw.bgf - ${tooldir}/xbgf post-extract.xbgf ebnf-iso-1.raw.bgf ebnf-iso-1.ext.bgf - ${tooldir}/xbgf refactor.xbgf ebnf-iso-1.ext.bgf ebnf-iso-1.bgf + ${hunter} src.prepared.txt config.edd raw.bgf + ${tooldir}/xbgf post-extract.xbgf raw.bgf ext.bgf + ${tooldir}/xbgf refactor.xbgf ext.bgf grammar.bgf -include ../../Makefile.include +include ../../Makefile.grammar diff --git a/topics/grammars/metasyntax/ebnf-iso-1/post-extract.xbgf b/topics/grammars/metasyntax/ebnf-iso-1/post-extract.xbgf index 93d32cf8..fdd79304 100644 --- a/topics/grammars/metasyntax/ebnf-iso-1/post-extract.xbgf +++ b/topics/grammars/metasyntax/ebnf-iso-1/post-extract.xbgf @@ -72,15 +72,4 @@ terminal_character - - - ’’ - - - - - - space_character - - diff --git a/topics/grammars/metasyntax/ebnf-iso-2/Makefile b/topics/grammars/metasyntax/ebnf-iso-2/Makefile index 7c5dda28..6a85671a 100644 --- a/topics/grammars/metasyntax/ebnf-iso-2/Makefile +++ b/topics/grammars/metasyntax/ebnf-iso-2/Makefile @@ -1,6 +1,6 @@ extract: - ../../hunter.py src.8.2.txt config.edd ebnf-iso-2.raw.bgf - ${tooldir}/xbgf post-extract.xbgf ebnf-iso-2.raw.bgf ebnf-iso-2.ext.bgf - ${tooldir}/xbgf refactor.xbgf ebnf-iso-2.ext.bgf ebnf-iso-2.bgf + ../../hunter.py src.8.2.txt config.edd raw.bgf + ${tooldir}/xbgf post-extract.xbgf raw.bgf ext.bgf + ${tooldir}/xbgf refactor.xbgf ext.bgf grammar.bgf -include ../../Makefile.include +include ../../Makefile.grammar diff --git a/topics/grammars/metasyntax/ebnf-iso-2/post-extract.xbgf b/topics/grammars/metasyntax/ebnf-iso-2/post-extract.xbgf index a9c3c99a..10fb2ce7 100644 --- a/topics/grammars/metasyntax/ebnf-iso-2/post-extract.xbgf +++ b/topics/grammars/metasyntax/ebnf-iso-2/post-extract.xbgf @@ -2,7 +2,7 @@ - character_-_’’’ + character - ’’’ character @@ -10,7 +10,7 @@ - character_-_’"’ + character - ’"’ character @@ -18,7 +18,7 @@ - character_-_’?’ + character - ’?’ character diff --git a/topics/grammars/metasyntax/ebnf-iso-3/Makefile b/topics/grammars/metasyntax/ebnf-iso-3/Makefile index 37ea243a..9fb1a340 100644 --- a/topics/grammars/metasyntax/ebnf-iso-3/Makefile +++ b/topics/grammars/metasyntax/ebnf-iso-3/Makefile @@ -1,6 +1,6 @@ extract: - ../../hunter.py src.8.3.txt config.edd ebnf-iso-3.raw.bgf - ${tooldir}/xbgf post-extract.xbgf ebnf-iso-3.raw.bgf ebnf-iso-3.ext.bgf - ${tooldir}/xbgf refactor.xbgf ebnf-iso-3.ext.bgf ebnf-iso-3.bgf + ../../hunter.py src.8.3.txt config.edd raw.bgf + ${tooldir}/xbgf post-extract.xbgf raw.bgf ext.bgf + ${tooldir}/xbgf refactor.xbgf ext.bgf grammar.bgf -include ../../Makefile.include +include ../../Makefile.grammar diff --git a/topics/grammars/metasyntax/ebnf-iso-3/post-extract.xbgf b/topics/grammars/metasyntax/ebnf-iso-3/post-extract.xbgf index 6b83b25b..a00c2035 100644 --- a/topics/grammars/metasyntax/ebnf-iso-3/post-extract.xbgf +++ b/topics/grammars/metasyntax/ebnf-iso-3/post-extract.xbgf @@ -2,7 +2,7 @@ - CHARACTER_-_’’’ + CHARACTER - ’’’ CHARACTER @@ -10,7 +10,7 @@ - CHARACTER_-_’"’ + CHARACTER - ’"’ CHARACTER @@ -18,7 +18,7 @@ - CHARACTER_-_’?’ + CHARACTER - ’?’ CHARACTER diff --git a/topics/grammars/metasyntax/ebnf-sdf/Makefile b/topics/grammars/metasyntax/ebnf-sdf/Makefile index 6a13576a..21600951 100644 --- a/topics/grammars/metasyntax/ebnf-sdf/Makefile +++ b/topics/grammars/metasyntax/ebnf-sdf/Makefile @@ -1,6 +1,6 @@ extract: - ${tooldir}/sdf2bgf ${sdflibdir}/ebnf/syntax/*.sdf ebnf-sdf.ext.bgf - ${tooldir}/xbgf correct.xbgf ebnf-sdf.ext.bgf ebnf-sdf.ext.2.bgf - ${tooldir}/subgrammar ebnf-sdf.ext.2.bgf Grammar ebnf-sdf.bgf + ${tooldir}/sdf2bgf ${sdflibdir}/ebnf/syntax/*.sdf raw.bgf + ${tooldir}/xbgf correct.xbgf raw.bgf ext.bgf + ${tooldir}/subgrammar ext.bgf Grammar grammar.bgf -include ../../Makefile.include +include ../../Makefile.grammar diff --git a/topics/grammars/metasyntax/rascal/Makefile b/topics/grammars/metasyntax/rascal/Makefile index 6393bf23..7c34211e 100644 --- a/topics/grammars/metasyntax/rascal/Makefile +++ b/topics/grammars/metasyntax/rascal/Makefile @@ -1,11 +1,10 @@ extract: echo 'Extracting the actual grammar...' - ../../../extraction/rascal/extract.py RascalRascal.rsc rascal.ext.bgf - ${tooldir}/subgrammar rascal.ext.bgf Module PreModule Command rascal.bgf + ../../../extraction/rascal/extract.py RascalRascal.rsc ext.bgf + ${tooldir}/subgrammar ext.bgf Module PreModule Command grammar.bgf horizontal: echo 'Recovering the horizontal grammar...' - ${tooldir}/xbgf horizontalize.xbgf rascal.bgf rascal.hor.bgf - ${tooldir}/subgrammar rascal.hor.bgf Module PreModule Command rascal.true.hor.bgf + ${tooldir}/xbgf horizontalize.xbgf grammar.bgf hor.bgf -include ../../Makefile.include +include ../../Makefile.grammar diff --git a/topics/grammars/metasyntax/yacc/Makefile b/topics/grammars/metasyntax/yacc/Makefile index 5d89d854..49324ea2 100644 --- a/topics/grammars/metasyntax/yacc/Makefile +++ b/topics/grammars/metasyntax/yacc/Makefile @@ -1,6 +1,6 @@ extract: - ${tooldir}/sdf2bgf ${sdflibdir}/yacc/syntax/*.sdf yacc.ext.bgf - ${tooldir}/xbgf refactor.xbgf yacc.ext.bgf yacc.ext.2.bgf - ${tooldir}/subgrammar yacc.ext.2.bgf Grammar yacc.bgf + ${tooldir}/sdf2bgf ${sdflibdir}/yacc/syntax/*.sdf raw.bgf + ${tooldir}/xbgf refactor.xbgf raw.bgf ext.bgf + ${tooldir}/subgrammar ext.bgf Grammar grammar.bgf -include ../../Makefile.include +include ../../Makefile.grammar