parser: drop sed and use perl
[nit.git] / src / parser / Makefile
index b2a1129..5115297 100644 (file)
@@ -22,13 +22,15 @@ all: parser.nit
 .nit.sablecc3: nit.sablecc3xx
        ./prescc.sh $< $@
 
-# Note that parser_nodes is automatically synced with the grammar
+# Note that parser_nodes is no more automatically synced with the grammar
 parser.nit: .nit.sablecc3 xss/*.xss
        ${SABLECC} -c .nit.sablecc3.dump -t xss/main.xss -p usermodule parser_nodes .nit.sablecc3
-       sed -i -e 's/\([ []\)P\([A-Z]\)/\1A\2/g' parser.nit parser_abs.nit parser_prod.nit parser_tables.nit lexer.nit
+       mv -f -- parser.nit .parser-nofact.nit
+       ./fact_parser.pl .parser-nofact.nit > parser.nit
+       perl -np -i.orig -e 's/([ \[])P([A-Z])/\1A\2/g' parser.nit parser_abs.nit parser_prod.nit lexer.nit
 
 clean:
-       rm -f -- .nit.sablecc3 .nit.sablecc3.dump || true
+       rm -f -- .nit.sablecc3 .nit.sablecc3.dump .parser-nofact.nit || true
 
 dist-clean: clean
-       rm -f -- parser.nit parser_abs.nit parser_prod.nit parser_tables.nit lexer.nit || true
+       rm -f -- parser.nit parser_abs.nit parser_prod.nit lexer.nit || true