Skip to content

Commit

Permalink
parser: move the generated parser out of the way in a dedicated modul…
Browse files Browse the repository at this point in the history
…e parser_sablecc

Signed-off-by: Jean Privat <[email protected]>
  • Loading branch information
privat committed Aug 20, 2024
1 parent 29a038a commit 9d6746d
Show file tree
Hide file tree
Showing 5 changed files with 35,937 additions and 35,919 deletions.
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/src/parser/parser.nit -diff
/src/parser/parser_sablecc.nit -diff
/src/parser/parser_prod.nit -diff
/src/parser/lexer.nit -diff
/src/parser/tables_nit.c -diff
Expand Down
12 changes: 6 additions & 6 deletions src/parser/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,28 @@

SABLECC3ALTGEN ?= sablecc3

all: parser.nit
all: parser_sablecc.nit

# Preprocess the extended sablecc gramar
.nit.sablecc3: nit.sablecc3xx
./prescc.pl $< > $@

# Note that parser_nodes is no more automatically synced with the grammar
parser.nit: .nit.sablecc3 xss/*.xss
parser_sablecc.nit: .nit.sablecc3 xss/*.xss
@${SABLECC3ALTGEN -license} >/dev/null 2>/dev/null || ( echo "***\n*** sablecc3 altgen version is needed.\n*** Set the environment variable SABLECC3ALTGEN to the executable.\n*** Aborting...\n***" ; exit 1 )
@${SABLECC3ALTGEN} | grep altgen >/dev/null 2>/dev/null || ( echo "***\n*** $$SABLECC3ALTGEN is not the sablecc3 altgen version.\n*** Set the environment variable SABLECC3ALTGEN to the executable.\n*** Aborting...\n***"; exit 1 )
${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;' -e 's/"{"/"\\{"/g;' parser.nit parser_abs.nit parser_prod.nit lexer.nit
mv -f -- parser_sablecc.nit .parser-nofact.nit
./fact_parser.pl .parser-nofact.nit > parser_sablecc.nit
perl -np -i.orig -e 's/([ (\[])P([A-Z])/\1A\2/g;' -e 's/"{"/"\\{"/g;' parser_sablecc.nit parser_abs.nit parser_prod.nit lexer.nit

clean:
rm -f -- .nit.sablecc3 .nit.sablecc3.dump .parser-nofact.nit || true

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
rm -f -- parser_sablecc.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/
Expand Down
Loading

0 comments on commit 9d6746d

Please sign in to comment.