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)
Increased types hashtable size 8970d5c4bb8f9e4640f4c6a1805cf69369ebaea3 lep 2018-12-07 18:13:17
Fixed some warnings. 334a10dc8faad2fa19eed06834273bff438f3955 lep 2018-11-07 22:45:22
Optimized ht_put by not calling ht_lookup. 4a2c4d293b719c939b4d8f357adcc04ef26b1cbb lep 2018-11-07 20:51:00
Only add globals to uninitialized globals. efb384fb661e08a855a5861189bf9409ebf9f557 lep 2018-11-07 14:56:38
Added unitialized check for globals. d8a909d8ac08cc233f5cd988afac043cbaeb1b4e lep 2018-11-06 19:43:57
Fixed off-by-one error in str_append. b458eb97a71bad87bbbbef610009da40e0dbf855 lep 2018-11-01 12:26:48
Added modulo operator. 70b4c5117a0b84cddd0c35e07a47e3b2aaf847b8 lep 2018-08-09 19:46:14
realloc returns the new pointer... c15eac9a4c2c2531a256125bc70272edbbf1d036 lep 2018-07-24 20:03:41
Track blocks d2763ae8473a1c699aa2e5605922e4b500c83ed4 lep 2018-07-22 13:28:40
Cross compile and strip under FreeBSD 296bd56c1347afb7a20337e02574f9196b48317a lep 2018-07-22 11:55:29
Track opening/closing blocks. 49b23df64b209106cce92e417ee13ecebb0bc009 lep 2018-07-09 09:37:01
Replace strncat with str_append. ad968e040f315ed3cf6580e46587342897839529 lep 2018-03-21 13:53:11
Do not report arrays as uninitialized when the index is missing. 72e93bd234743a438fb0a5c105514bf732c22b89 lep 2017-12-20 14:59:10
Better error messages. ad8342582ac3617280f471d889b1766be272858b lep 2017-11-15 17:52:08
Handle wrong shadowing. 0500a60ef11f39c4f33044e26c29798f6d8445b5 lep 2017-02-19 14:37:21
Added checks for natives which behave bad in a globals block. 3e6ac270dda9ad695723d3bc2aac4d69a2fdf87a lep 2017-02-19 10:57:33
Update readme.md 2c9177dd5482ed8c4c1464a4ade37c301205fe6b lep 2017-02-01 17:42:49
Public git release. 2da78f3665ac4f53f5833c6a48ebbeaabea0cd49 lep 2017-02-01 16:42:21
Better ifdef-handling for aligned malloc. d95ebafa7204e49d84a9fed8cdeb01713dd0bc82 lep 2017-02-01 16:41:07
Makefile changes. 0458bb26764aad1caec71ccf721e84a28c699ee0 lep 2017-02-01 15:48:25
Commit 8970d5c4bb8f9e4640f4c6a1805cf69369ebaea3 - Increased types hashtable size
Author: lep
Author date (UTC): 2018-12-07 18:13
Committer name: lep
Committer date (UTC): 2018-12-07 18:13
Parent(s): 334a10dc8faad2fa19eed06834273bff438f3955
Signer:
Signing key:
Signing status: N
Tree: 1cf211ad5f449c708006ed4d6ea1f3547e00fda6
File Lines added Lines deleted
grammar.y 5 4
main.c 1 1
misc.c 3 3
File grammar.y changed (mode: 100644) (index eb6213e..289fc3d)
... ... expr: intexpr { $$.ty = gInteger; }
210 210 } }
211 211 | expr MINUS expr { $$.ty = binop($1.ty, $3.ty); } | expr MINUS expr { $$.ty = binop($1.ty, $3.ty); }
212 212 | expr PLUS expr { | expr PLUS expr {
213 if ($1.ty == gString && $3.ty == gString)
214 $$.ty = gString;
215 else
216 $$.ty = binop($1.ty, $3.ty); }
213 if ($1.ty == gString && $3.ty == gString)
214 $$.ty = gString;
215 else
216 $$.ty = binop($1.ty, $3.ty);
217 }
217 218 | MINUS expr { isnumeric($2.ty); $$.ty = $2.ty; } | MINUS expr { isnumeric($2.ty); $$.ty = $2.ty; }
218 219 | LPAREN expr RPAREN { $$.ty = $2.ty; } | LPAREN expr RPAREN { $$.ty = $2.ty; }
219 220 | funccall { $$.ty = $1.ty; } | funccall { $$.ty = $1.ty; }
File main.c changed (mode: 100644) (index 7380510..931a28d)
... ... static void init()
21 21 ht_init(&globals, 8191); ht_init(&globals, 8191);
22 22 ht_init(&locals, 57); ht_init(&locals, 57);
23 23 ht_init(&params, 23); ht_init(&params, 23);
24 ht_init(&types, 149);
24 ht_init(&types, 151);
25 25 ht_init(&initialized, 2047); ht_init(&initialized, 2047);
26 26
27 27 ht_init(&bad_natives_in_globals, 17); ht_init(&bad_natives_in_globals, 17);
File misc.c changed (mode: 100644) (index 4b22c86..207498c)
... ... void checkmodulo(const struct typenode *a, const struct typenode *b)
500 500 bool snd = typeeq(pb, gInteger); bool snd = typeeq(pb, gInteger);
501 501
502 502 if(! fst && ! snd){ if(! fst && ! snd){
503 yyerrorex(semanticerror, "Both arguments of the modulo-operator must be integers");
503 yyerrorex(semanticerror, "Both operands of the modulo-operator must be integers");
504 504 }else if(! fst){ }else if(! fst){
505 yyerrorex(semanticerror, "First argument of the modulo-operator must be an integer");
505 yyerrorex(semanticerror, "First operand of the modulo-operator must be an integer");
506 506 }else if(! snd){ }else if(! snd){
507 yyerrorex(semanticerror, "Second argument of the modulo-operator must be an integer");
507 yyerrorex(semanticerror, "Second operand of the modulo-operator must be an integer");
508 508 } }
509 509
510 510
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