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