vrtc / pjass (public) (License: BSD) (since 2023-08-03) (hash sha1)
pjass is a free Jass scripting language parser. This repository is a fork of lep/pjass. The goal is to add Debian packaging. As of the time of this writing, it works for current stable, that is Debian 12 (bookworm).
List of commits:
Subject Hash Author Date (UTC)
Added help target to Makefile a713b03be873950d11e62a7b9e4f2d9a8d2e0945 lep 2016-03-03 16:02:34
Removed strict downcasting check. 5f6ffd725b2ac9d24eff5917d96ceeeaaf748e5f lep 2016-03-03 16:00:49
Added filterreturnsbool check which can be enabled via //# filter 6828cb5e726e7f57cad0ec3f794209c2012c7908 lep 2016-03-03 15:58:59
Moved code into seperate files. 047c531a1c3affb43f53d102c94e765d772ecff3 lep 2016-02-17 20:57:30
Also pack testfiles into the release zip. e2d8ca45c7175b4f0192ddb6202ae71059369495 lep 2016-02-01 15:15:03
Fixed all Warnings. 981e0b8b51eebb4904a42c58c825fa10185f5d23 lep 2016-02-01 15:12:38
Added a test which checks if the utf8-bom can be used as whitespace. cb0ebe275982a65a2ebbd4aca831da4e31739eba lep 2016-01-31 15:04:12
Added utf8 bom as another whitespace token. ea1572ceaa7743fcdff89f206e24540df6358e7b lep 2016-01-31 13:23:27
Added tests to the git repo. 6aca6f760084ee65f8cdd469b18ad5cb37c42ee3 lep 2016-01-17 10:44:56
FreeBsd patches. 6c3acc1dff6ecd5fa486506fabed077be5347afc lep 2016-01-17 10:23:48
Cleaned up string and comment handling in the lexer ebec6e67e248bef82bf92416733b394399c4e1d4 lep 2016-01-17 09:51:44
Added \r, \n (\x10, \x13) as invalid escape characters. 85d0c7e4453c1879bcbc4db8be28527c5ce9f4f7 lep 2016-01-06 13:16:49
Fixed another rare crash. b6edcc3cfd5c1c837318b0efa5ded6f16e86b403 lep 2015-12-21 19:02:41
Fixed various warnings. 6027429ad1895baef4796ac4ae43952ed51f6174 lep 2015-10-28 09:27:40
Added prof target to makefile 9c4b383d3f7416a30a8bde79c735097edaf8d84a lep 2015-10-27 19:14:20
Added gprof support. 374f624967a563dd4c356a3fc104f8ced49fd692 lep 2015-10-27 18:10:13
Changed //! +rb to //# +rb 63af0d3664320cc94ee6e284c308b1983bcfdab2 lep 2015-10-27 17:17:04
Fixed rare segmentation fault. 13a129c8800d306c4117a54cf62cabbb86db3092 lep 2015-10-25 16:11:55
Makefile fixes. 08a5e4d203b0917d78c9fb479ff197d04f473b33 lep 2015-10-25 10:51:12
Makefile improvements (-O3 -flto) 035a361468f060b12bc473e5ec6b0d59db0765d3 lep 2015-10-24 09:16:16
Commit a713b03be873950d11e62a7b9e4f2d9a8d2e0945 - Added help target to Makefile
Author: lep
Author date (UTC): 2016-03-03 16:02
Committer name: lep
Committer date (UTC): 2016-03-03 16:02
Parent(s): 5f6ffd725b2ac9d24eff5917d96ceeeaaf748e5f
Signer:
Signing key:
Signing status: N
Tree: e1ec8a278111d110041aa21b7f6076136c46bdb6
File Lines added Lines deleted
Makefile 36 17
fail.sh 1 1
File Makefile changed (mode: 100644) (index c2029f6..78c48a1)
... ... OBJS := token.yy.o grammar.tab.o misc.o main.o \
18 18 hashtable.o paramlist.o funcdecl.o typeandname.o hashtable.o paramlist.o funcdecl.o typeandname.o
19 19
20 20
21 .PHONY: all release clean debug prof
22 .PHONY: clean-release-files clean-prof-files clean-build-files
23 .PHONY: binary-release src-release
24 .PHONY: help
25
26 all: pjass
27
28 help:
29 @awk -F ':|##' \
30 '/^[^\t].+?:.*?##/ { \
31 printf "\033[36m%-20s\033[0m %s\n", $$1, $$NF \
32 }' $(MAKEFILE_LIST)
33
34 -include $(OBJS:.o=.d)
35
36 pjass: $(OBJS) ## Builds pjass
37 $(CC) $(CFLAGS) $^ -o $@
38
39 test: should-fail should-check map-scripts ## Runs all tests
40
41 release: src-release binary-release ## Builds a pjass release with src- and bin-zipballs
42
43 clean: clean-build-files clean-release-files clean-prof-files ## Cleans the whole project
44
21 45
22 .PHONY: all release clean debug prof clean-release-files clean-prof-files clean-build-files
23 46
24 all: pjass
25 47
26 48 debug: CFLAGS = -w -g debug: CFLAGS = -w -g
27 debug: pjass
49 debug: pjass ## Builds pjass with debugging support
28 50
29 51 prof: CFLAGS = -w -pg prof: CFLAGS = -w -pg
30 prof: pjass
52 prof: pjass ## Builds pjass with profiling support. You can run all tests with profiling enabled via `PROF=1 make test`
31 53
32 -include $(OBJS:.o=.d)
33
34 pjass: $(OBJS)
35 $(CC) $(CFLAGS) $^ -o $@
36 54
37 55
38 56 main.o: main.c main.o: main.c
 
... ... main.o: main.c | grammar.tab.h
52 70 %.tab.c %.tab.h: %.y %.tab.c %.tab.h: %.y
53 71 bison -d $< bison -d $<
54 72
55 clean: clean-build-files clean-release-files clean-prof-files
56 73
57 clean-build-files:
74 clean-build-files: ## Cleans all build files
58 75 rm -f grammar.tab.h grammar.tab.c token.yy.c token.yy.h \ rm -f grammar.tab.h grammar.tab.c token.yy.c token.yy.h \
59 76 $(OBJS) $(OBJS:.o=.d) \ $(OBJS) $(OBJS:.o=.d) \
60 77 pjass.exe pjass pjass.exe pjass
61 78
62 clean-release-files:
79 clean-release-files: ## Cleans all release zipballs
63 80 rm -f pjass-git-*.zip rm -f pjass-git-*.zip
64 81
65 clean-prof-files:
82 clean-prof-files: ## Cleans all profiling files
66 83 rm -f tests/should-check/*-analysis.txt \ rm -f tests/should-check/*-analysis.txt \
67 84 tests/should-fail/*-analysis.txt \ tests/should-fail/*-analysis.txt \
68 85 gmon.out gmon.out
69 86
70 release: pjass-git-$(VERSION)-src.zip pjass-git-$(VERSION).zip
87
88 src-release: pjass-git-$(VERSION)-src.zip ## Builds the source zipball
89 binary-release: pjass-git-$(VERSION).zip ## Builds the exe zipball
71 90
72 91 pjass-git-$(VERSION)-src.zip: grammar.y token.l misc.c misc.h Makefile notes.txt readme.txt pjass-git-$(VERSION)-src.zip: grammar.y token.l misc.c misc.h Makefile notes.txt readme.txt
73 92 zip -q -r pjass-git-$(VERSION)-src.zip $^ tests/should-check/ tests/should-fail/ zip -q -r pjass-git-$(VERSION)-src.zip $^ tests/should-check/ tests/should-fail/
 
... ... $(SHOULD_CHECK): pjass print-test
95 114 $(SHOULD_FAIL): pjass print-test $(SHOULD_FAIL): pjass print-test
96 115 @./fail.sh $@ @./fail.sh $@
97 116
98 should-fail: $(SHOULD_FAIL)
99 should-check: $(SHOULD_CHECK)
100 map-scripts: $(MAP_SCRIPTS)
101 117
102 test: should-fail should-check map-scripts
118 should-fail: $(SHOULD_FAIL) ## Tests that should fail
119 should-check: $(SHOULD_CHECK) ## Tests that should check
120 map-scripts: $(MAP_SCRIPTS) ## Tests which are run with common.j and Blizzard.j
121
103 122
104 123
105 124 print-test: pjass print-test: pjass
File fail.sh changed (mode: 100644) (index 77cc749..debf6a8)
1 1 #!/usr/bin/env bash #!/usr/bin/env bash
2 2
3 ./pjass tests/common.j tests/Blizzard.j "$1" > /dev/null
3 ./pjass "$1" > /dev/null
4 4 ret=$? ret=$?
5 5 if [[ "$PROF" ]]; then if [[ "$PROF" ]]; then
6 6 gprof pjass.exe gmon.out > "$1-analysis.txt" gprof pjass.exe gmon.out > "$1-analysis.txt"
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/vrtc/pjass

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/vrtc/pjass

Clone this repository using git:
git clone git://git.rocketgit.com/user/vrtc/pjass

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main