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)
Allow assignment to local variable in constant function 0920290c0af1fe76066aa9520729b2afaa41fbd7 lep 2020-08-04 16:18:16
Add hexadecimal form with uppercase X 43d20a0f74e86cb2c89021b893b923d2efb4070a lep 2020-08-04 16:17:13
Use flag in test. df89d16a43ce0b5c2f7ca0a079818361dee02908 lep 2020-08-04 16:15:24
Small readme fixes eeddac84a092c2cb3105510626cb674729c4f09f lep 2020-08-03 09:49:49
Warn when using native as code 1b14ec57777560df0982a08f3a2bc8eb27a1df75 lep 2020-08-03 09:32:38
Use the strhash hashfunc for our hashtables. d6f0de51cb54921b529799b9939cfe2dcdf7b4d0 lep 2020-07-29 11:13:13
Document installation methods 814075ef77bc8981684971bfc2a5c626f2e34035 lep 2020-07-18 08:11:43
Improved Readme c8d57e3c1953d5e67ca12f75f5685f7786eacaf2 lep 2020-07-18 07:43:09
Added some tests for the new StringHash check. 1f613e7c5b078cc3ce3a04a957291ca070856528 lep 2020-07-18 07:17:26
Added check for bad StringHash usage 3abbed6aa1cd87e202a0b038e8af2246e9ceadeb lep 2020-07-17 22:13:39
Fix release target 6eca932b6210f1ac93b3bc030c15797d88d529b6 lep 2019-10-17 12:58:24
Better error message for `type` as a name 665dc1efab9a5a8706bb0fcb95a13eabe3358436 lep 2019-10-17 12:53:35
Added reserved keyword 'alias' 7589b241e1179f85bf19b82696d97d8365034376 lep 2019-05-31 21:57:10
More newline stuff 3e57cdb92c766375430c701034db56e81dcc27e2 lep 2019-05-18 09:44:12
Report natives after function defintions eb58451c6e2df142a51e85e68ee11efa45c3215c lep 2019-04-01 12:49:24
Specify minimum bison version in readme 44b75417a7d01e2639a4b4acda031e95eca8ffb2 lep 2019-02-18 23:41:48
Support Apple by defining _aligned_malloc 596488eafa1e09c1120d2488c78959a8c63c5a5d Jesse Rogers 2019-01-03 17:08:49
Improved the amalgation build 4be0d720517e70920c7b716f95babc63df1f4ffa lep 2018-12-31 14:50:05
Added missing new tests c5c6dab555bec81e6a7b419ea88d195836b3762f lep 2018-12-30 18:40:02
A bit better error message for wrong typed array index ca37eb28822952a4ab3e58488b710317691d16a9 lep 2018-12-23 12:01:18
Commit 0920290c0af1fe76066aa9520729b2afaa41fbd7 - Allow assignment to local variable in constant function
Previously we didn't check if the variable existed in local scope so we
didn't take shadowing into account.
Author: lep
Author date (UTC): 2020-08-04 16:18
Committer name: lep
Committer date (UTC): 2020-08-04 16:18
Parent(s): 43d20a0f74e86cb2c89021b893b923d2efb4070a
Signer:
Signing key:
Signing status: N
Tree: f42fef870e4a61a056aac22e31c4c1fed6180f12
File Lines added Lines deleted
misc.c 2 3
tests/should-check/local-assignment-to-shadowed-global-in-constant-function.j 8 0
File misc.c changed (mode: 100644) (index 49ab55d..9de9d46)
... ... const struct typeandname *getVariable(const char *varname)
292 292 void validateGlobalAssignment(const char *varname) void validateGlobalAssignment(const char *varname)
293 293 { {
294 294 char ebuf[1024]; char ebuf[1024];
295 struct typeandname *result;
296 result = ht_lookup(&globals, varname);
297 if (result) {
295 // check if the variable exists in global scope but not in params or locals
296 if( ht_lookup(&globals, varname) && !ht_lookup(&locals, varname) && !ht_lookup(&params, varname) ){
298 297 snprintf(ebuf, 1024, "Assignment to global variable %s in constant function", varname); snprintf(ebuf, 1024, "Assignment to global variable %s in constant function", varname);
299 298 yyerrorline(semanticerror, lineno - 1, ebuf); yyerrorline(semanticerror, lineno - 1, ebuf);
300 299 } }
File tests/should-check/local-assignment-to-shadowed-global-in-constant-function.j added (mode: 100644) (index 0000000..90062ac)
1 globals
2 integer x
3 endglobals
4
5 constant function foo takes nothing returns nothing
6 local integer x
7 set x = 5 // Assignment to global variable x in constant function
8 endfunction
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