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)
Rewrote string handling to better handle newlines. 434a8fe566783969cb69eb73b2792cd74dac71d3 lep 2015-02-12 15:13:54
Rewrote rawcode handling for somewhat better error messages. 1e687d921b09149e244d16d7abca398c0639ad6d lep 2015-02-08 20:08:22
Undefined variables are not suggested for other undefined variables. c5561c56dde18bbcf1d05bdec7b50804757c5ef8 lep 2015-02-08 15:39:10
Also changed gNone to gAny in else and elesif cases. 485e75aaa14eb8ae10058305f7b75c1abd19eb82 lep 2015-02-06 15:20:15
Changed statement default return type from gNone to gAny. 7a054ad7b62d77ae4a17ac97d913a19675dad111 lep 2015-02-06 15:12:31
Propagate returncheck through statements. b8977b07e11f8fd335851e3a2d69cb473492f85b lep 2015-02-06 15:07:36
Small changes. Removed some unused symbols. 83c8b2b0e6811380bddf6e92e3b2f843370d5e05 lep 2015-02-05 12:43:24
Only put locals into the initialized table. db20d22434506716774fa4e8577f98073f17d6c2 lep 2015-02-04 11:57:00
Changed min function to min makro. b5b6c824896935232743633ae57d060e5c6a046f lep 2015-02-04 11:33:14
Rewrote the hashtable. 55c0f9ae7d284df88c48e7c2ac1c547cda1d802a lep 2015-02-04 11:24:53
Fixed some memory violations. 26a99d799804d8154c4ee1aa0850cdaad909d1ae lep 2015-02-03 23:27:32
Reverted smth. dbd5c217795cf5cd014ed7370655e62591d4d0fe lep 2015-02-03 22:12:49
Changed sprintf to snprintf. 02d6efe2aed9186b2e6189b36a5fa50d2e0c2221 lep 2015-02-03 21:33:05
Wrapped typenode member accesses in getTypePtr. 372c1f9da68a65de9e14dff3881e1758d5e7114b lep 2015-02-03 21:05:11
Added ifdefs for memalign functionality. f005f5e8067994ebd76265e3289e6ab67283b96f lep 2015-02-03 20:06:20
Missing-return check in elseifs should work now. 4274d6166e2c92a4591c1e46a0d71f1579a57c7d lep 2015-02-03 19:35:39
Missing-return checks also checks elseifs. 889122b0fb788663c728127520d0e7124c2a040c lep 2015-02-03 15:18:12
Fixed some more warnings. a5ae36b5299ac419a91592b60b8fcb1dfd8f4374 lep 2015-02-03 13:24:56
Added early exit to editdistance function. 82e8d024392d357d56c833c6b7f7632ffd6830a8 lep 2015-02-02 16:13:40
Unidentified variables are now marked as initialized. f3ef715b90782bc22fbdd29e1c16d7c917f407a9 lep 2015-02-02 13:56:00
Commit 434a8fe566783969cb69eb73b2792cd74dac71d3 - Rewrote string handling to better handle newlines.
Author: lep
Author date (UTC): 2015-02-12 15:13
Committer name: lep
Committer date (UTC): 2015-02-12 15:13
Parent(s): 1e687d921b09149e244d16d7abca398c0639ad6d
Signer:
Signing key:
Signing status: N
Tree: c77eb60dd5d5fe996bc8d26afe46b1a6492b817d
File Lines added Lines deleted
token.l 13 25
File token.l changed (mode: 100644) (index a59add3..768c4e9)
... ... HEXDIGIT [0-9a-fA-F]
30 30 ID [a-zA-Z]([a-zA-Z0-9_]*[a-zA-Z0-9])? ID [a-zA-Z]([a-zA-Z0-9_]*[a-zA-Z0-9])?
31 31 SPACE [ \t] SPACE [ \t]
32 32 TABS [\x01-\x09\x0B\x0C\x0E-\x1F] TABS [\x01-\x09\x0B\x0C\x0E-\x1F]
33 STRINGSTART ["]
33
34 34
35 35 %x RAWCODE %x RAWCODE
36 %x INSTRING
36 37
37 38 %% %%
38 39
 
... ... STRINGSTART ["]
45 46 return NEWLINE; return NEWLINE;
46 47 } }
47 48
48 [']\\[btrnf"\\]['] { return UNITTYPEINT; }
49 [']\\[btrnf\\]['] { return UNITTYPEINT; }
49 50 [']\\.['] { [']\\.['] {
50 51 yyerrorline(3, lineno, "Invalid escape character sequence"); yyerrorline(3, lineno, "Invalid escape character sequence");
51 52 return UNITTYPEINT; return UNITTYPEINT;
 
... ... STRINGSTART ["]
72 73 yyerrorline(3, lineno, "Invalid escape character sequence"); yyerrorline(3, lineno, "Invalid escape character sequence");
73 74 rawcodelen++; rawcodelen++;
74 75 } }
75 <RAWCODE>\r*\n { lineno++; isconstant = 0; rawcodelen += strlen(yytext) ;}
76 <RAWCODE>\r?\n { lineno++; isconstant = 0; rawcodelen += strlen(yytext); }
77 <RAWCODE>\r { lineno++; isconstant = 0; rawcodelen++; }
76 78 <RAWCODE>. { rawcodelen++; } <RAWCODE>. { rawcodelen++; }
77 79
80 ["] { BEGIN(INSTRING); }
81 <INSTRING>["] { BEGIN(INITIAL); return STRINGLIT; }
82 <INSTRING>\\[btrnf"\\] { }
83 <INSTRING>\\. { yyerrorline(3, lineno, "Invalid escape character sequence"); }
84 <INSTRING>\r?\n { lineno++; isconstant = 0; }
85 <INSTRING>\r { lineno++; isconstant = 0; }
86 <INSTRING>. {}
78 87
79 {STRINGSTART} { int prevChar = 0;
80 int curChar = input();
81 islinebreak = 0;
82 for (;;) {
83 if (prevChar == '\r' && curChar != '\r') {
84 lineno++; isconstant = 0;
85 }
86 if (curChar == EOF)
87 break;
88 else if (prevChar == '\\') {
89 if (curChar != 'b' && curChar != 't' && curChar != 'r' && curChar != 'n' && curChar != 'f' && curChar != '\"' && curChar != '\\')
90 yyerrorline(3, lineno, "Invalid escape character sequence");
91 curChar = 0;
92 } else if (curChar == '\"') {
93 break;
94 }
95 prevChar = curChar;
96 curChar = input();
97 }
98 return STRINGLIT;
99 }
100 88
101 89 {NEWLINE} lineno++; islinebreak=1; isconstant=0; return NEWLINE; {NEWLINE} lineno++; islinebreak=1; isconstant=0; return NEWLINE;
102 90
 
... ... STRINGSTART ["]
166 154 [ \t]+ /* eat up whitespace */ [ \t]+ /* eat up whitespace */
167 155 [\x01-\x09\x0B\x0C\x0E-\x1F]+ /* eat up tabs */ [\x01-\x09\x0B\x0C\x0E-\x1F]+ /* eat up tabs */
168 156
169 . if (1) { char ebuf[1024]; sprintf(ebuf, "Unrecognized character %s (ASCII %d)", yytext, yytext[0] ); yyerrorline(3, lineno, ebuf); }
157 . if (1) { char ebuf[1024]; sprintf(ebuf, "Unrecognized character %s (ASCII %d)", yytext, (unsigned char)yytext[0] ); yyerrorline(3, lineno, ebuf); }
170 158
171 159 %% %%
172 160
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