parser: add a basic sabblecc3 parser in Java
[nit.git] / src / parser / Makefile
index e1868bc..04657cc 100644 (file)
@@ -20,7 +20,7 @@ all: parser.nit
 
 # Preprocess the extended sablecc gramar
 .nit.sablecc3: nit.sablecc3xx
-       ./prescc.sh $< $@
+       ./prescc.pl $< > $@
 
 # Note that parser_nodes is no more automatically synced with the grammar
 parser.nit: .nit.sablecc3 xss/*.xss
@@ -29,14 +29,17 @@ parser.nit: .nit.sablecc3 xss/*.xss
        ${SABLECC3ALTGEN} -c .nit.sablecc3.dump -t xss/main.xss -p usermodule parser_nodes .nit.sablecc3
        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
+       perl -np -i.orig -e 's/([ (\[])P([A-Z])/\1A\2/g;' -e 's/"{"/"\\{"/g;' parser.nit parser_abs.nit parser_prod.nit lexer.nit
 
 clean:
        rm -f -- .nit.sablecc3 .nit.sablecc3.dump .parser-nofact.nit || true
 
-distclean: clean
-
 maintainer-clean: clean
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
        rm -f -- parser.nit parser_abs.nit parser_prod.nit lexer.nit || true
+
+java: .nit.sablecc3
+       rm -r org/nitlanguage/gen/analysis/ org/nitlanguage/gen/lexer/ org/nitlanguage/gen/node/ org/nitlanguage/gen/parser/
+       ${SABLECC3ALTGEN} .nit.sablecc3 -c .nit.sablecc3.dump
+       javac org/nitlanguage/gen/TestParser.java