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)
pjass 10j 16bbe625b7670a7affcf495e3370224c30582bca PitzerMike 2007-10-09 09:22:00
pjass 10i 1ecf3d1238619358a0aa9b1b919ed9ba97d36f84 PitzerMike 2007-09-29 11:57:00
pjass 10h dcb319607e8bb35637f86918962610683ada2b08 PitzerMike 2007-09-13 23:49:00
pjass 10g a5070a4d74abc627160481e592233fa26870d57a PitzerMike 2007-08-24 10:43:00
pjass 10f e6893a0480e2b1c9bb22f39a897a86e8d05123a6 PitzerMike 2007-04-28 08:26:00
Fake commit to cleanup the cvs-import of the pjass sourceforge repo. 7f2ea341ebf2ed939f99ec3b14403025446e25f5 lep 2017-01-11 14:07:30
Fixed some errors on Debian and removed some warnings. 28b8a48ff580cb1c06343b4f51194b9a18f0901c cilibrar 2004-08-15 07:15:22
Works under Linux, removed debug messages. 60be798cd6b6e8ad3432feecf3418c7d2662807f cilibrar 2004-08-15 07:10:44
*** empty log message *** e8d4118415a91b81e924c78fc26c9c48eddefd5f cilibrar 2004-08-15 07:07:53
Fixed -mno-cygwin option to work under just cygwin host_os 1190fdc75012f9b55c597cc46f9b1c814ca5b8c7 cilibrar 2004-08-15 07:06:56
More configuration guessing scripts. d738f380f0324e5ca4ecdde5b79af99e1a783f24 cilibrar 2004-08-15 07:03:34
More adjustments. 0e72fd7fb1af1faaea69beb731b3d675583c2d2f cilibrar 2004-08-15 07:02:02
Fixed options to compile under RedHat. 12c7b48712fcdd84a2b36ecd6f2d4979a19dc7be cilibrar 2004-08-15 06:38:26
Some boilerplate files. 3b14c4d0fd37d9b2d4ddd443a6f74a67793eb338 cilibrar 2004-08-15 06:19:21
Converted to autoconf, automake. 06b0d83604e6316c9e086af0ce08ac3f2d4e7b8a cilibrar 2004-08-15 06:13:25
*** empty log message *** 3a61644cba31faab849c60b0aaeba6e5ae6e0fbb cilibrar 2003-06-22 18:00:46
Fix error message for implicit redirection parameter. 547f94e18885bdb7d0a61908691268987ef03a0f cilibrar 2003-06-09 08:51:53
*** empty log message *** cef95bf6a7aec8b05ceaa325e0b7cafe0e0fb616 cilibrar 2003-06-08 22:13:41
*** empty log message *** c6a48acc98a4580e1dc9560b26b3adf579569319 cilibrar 2003-06-08 17:08:25
*** empty log message *** a9084c6a8897b38d209f2f3839ed9fd8c17a5eb4 cilibrar 2003-06-08 15:59:21
Commit 16bbe625b7670a7affcf495e3370224c30582bca - pjass 10j
Author: PitzerMike
Author date (UTC): 2007-10-09 09:22
Committer name: lep
Committer date (UTC): 2015-02-01 13:17
Parent(s): 1ecf3d1238619358a0aa9b1b919ed9ba97d36f84
Signer:
Signing key:
Signing status: N
Tree: 120990e61216c20d989176337d197d0c591c0433
File Lines added Lines deleted
grammar.y 12 4
misc.c 3 2
misc.h 1 1
readme.txt 1 1
File grammar.y changed (mode: 100644) (index d443d63..cdb9431)
... ... funccall: rid LPAREN exprlistcompl RPAREN {
293 293 sprintf(ebuf, "Call to non-constant function %s in constant function", $1.str); sprintf(ebuf, "Call to non-constant function %s in constant function", $1.str);
294 294 yyerrorex(3, ebuf); yyerrorex(3, ebuf);
295 295 } }
296 if (fd == fCurrent && fCurrent)
297 yyerrorex(3, "Recursive function calls are not permitted in local declarations");
296 298 checkParameters(fd->p, $3.pl, (fd==fFilter || fd==fCondition)); checkParameters(fd->p, $3.pl, (fd==fFilter || fd==fCondition));
297 299 $$.ty = fd->ret; $$.ty = fd->ret;
298 300 } }
299 301 } }
300 | rid LPAREN exprlistcompl NEWLINE{
302 | rid LPAREN exprlistcompl NEWLINE {
301 303 yyerrorex(0, "Missing ')'"); yyerrorex(0, "Missing ')'");
302 304 struct funcdecl *fd = lookup(&functions, $1.str); struct funcdecl *fd = lookup(&functions, $1.str);
303 305 if (fd == NULL) { if (fd == NULL) {
 
... ... funccall: rid LPAREN exprlistcompl RPAREN {
311 313 yyerrorex(3, ebuf); yyerrorex(3, ebuf);
312 314 $$.ty = gNull; $$.ty = gNull;
313 315 } else { } else {
314 checkParameters(fd->p, $3.pl, (fd==fFilter || fd==fCondition));
315 $$.ty = fd->ret;
316 if (fd == fCurrent && fCurrent)
317 yyerrorex(3, "Recursive function calls are not permitted in local declarations");
318 checkParameters(fd->p, $3.pl, (fd==fFilter || fd==fCondition));
319 $$.ty = fd->ret;
316 320 } }
317 321 } }
318 322 ; ;
 
... ... funcbegin: FUNCTION rid TAKES optparam_list returnorreturns opttype {
409 413 $$.fd->ret = $6.ty; $$.fd->ret = $6.ty;
410 414 $$.fd->isconst = 0; $$.fd->isconst = 0;
411 415 put(&functions, $$.fd->name, $$.fd); put(&functions, $$.fd->name, $$.fd);
416 fCurrent = lookup(&functions, $2.str);
412 417 struct typeandname *tan = $4.pl->head; struct typeandname *tan = $4.pl->head;
413 418 for (;tan; tan=tan->next) { for (;tan; tan=tan->next) {
414 419 tan->lineno = lineno; tan->lineno = lineno;
 
... ... vartypedecl: type rid {
706 711 put(curtab, "type", tan); } put(curtab, "type", tan); }
707 712 ; ;
708 713
709 localblock: /* empty */
714 localblock: endlocalsmarker
710 715 | lvardecl localblock | lvardecl localblock
711 716 | NEWLINE localblock | NEWLINE localblock
712 717 ; ;
713 718
719 endlocalsmarker: /* empty */ { fCurrent = 0; }
720 ;
721
714 722 lvardecl: LOCAL vardecl { } lvardecl: LOCAL vardecl { }
715 723 | CONSTANT LOCAL vardecl { yyerrorex(3, "Local variables can not be declared constant"); } | CONSTANT LOCAL vardecl { yyerrorex(3, "Local variables can not be declared constant"); }
716 724 | typedef { yyerrorex(3,"Types can not be extended inside functions"); } | typedef { yyerrorex(3,"Types can not be extended inside functions"); }
File misc.c changed (mode: 100644) (index f476144..88df964)
11 11 #include "grammar.tab.h" #include "grammar.tab.h"
12 12 #include "misc.h" #include "misc.h"
13 13
14 #define VERSIONSTR "1.0i"
14 #define VERSIONSTR "1.0j"
15 15 #define ERRORLEVELNUM 4 #define ERRORLEVELNUM 4
16 16
17 17 int fno; int fno;
 
... ... struct hashtable *curtab;
35 35 struct typenode *retval, *retcheck; struct typenode *retval, *retcheck;
36 36 char *curfile; char *curfile;
37 37 struct typenode *gInteger, *gReal, *gBoolean, *gString, *gCode, *gHandle, *gNothing, *gNull, *gAny, *gNone, *gCodeReturnsBoolean, *gCodeReturnsNoBoolean; struct typenode *gInteger, *gReal, *gBoolean, *gString, *gCode, *gHandle, *gNothing, *gNull, *gAny, *gNone, *gCodeReturnsBoolean, *gCodeReturnsNoBoolean;
38 struct funcdecl *fFilter, *fCondition;
38 struct funcdecl *fFilter, *fCondition, *fCurrent;
39 39
40 40 void addPrimitiveType(const char *name, struct typenode **toSave) void addPrimitiveType(const char *name, struct typenode **toSave)
41 41 { {
 
... ... void init(int argc, char **argv)
66 66 inblock = 0; inblock = 0;
67 67 isconstant = 0; isconstant = 0;
68 68 inconstant = 0; inconstant = 0;
69 fFilter = fCondition = fCurrent = 0;
69 70 showerrorlevel = malloc(ERRORLEVELNUM*sizeof(int)); showerrorlevel = malloc(ERRORLEVELNUM*sizeof(int));
70 71 for(i=0;i<ERRORLEVELNUM;i++) for(i=0;i<ERRORLEVELNUM;i++)
71 72 showerrorlevel[i] = 1; showerrorlevel[i] = 1;
File misc.h changed (mode: 100644) (index 95d8bb6..e6ba873)
... ... extern int yydebug;
92 92 int *showerrorlevel; int *showerrorlevel;
93 93 extern struct hashtable functions, globals, locals, params, types, *curtab; extern struct hashtable functions, globals, locals, params, types, *curtab;
94 94 extern struct typenode *gInteger, *gReal, *gBoolean, *gString, *gCode, *gHandle, *gNothing, *gNull, *gAny, *gNone, *gCodeReturnsBoolean, *gCodeReturnsNoBoolean; extern struct typenode *gInteger, *gReal, *gBoolean, *gString, *gCode, *gHandle, *gNothing, *gNull, *gAny, *gNone, *gCodeReturnsBoolean, *gCodeReturnsNoBoolean;
95 extern struct funcdecl *fFilter, *fCondition;
95 extern struct funcdecl *fFilter, *fCondition, *fCurrent;
96 96 extern struct typenode *retval; extern struct typenode *retval;
97 97 const struct typeandname *getVariable(const char *varname); const struct typeandname *getVariable(const char *varname);
98 98 void isnumeric(const struct typenode *ty); void isnumeric(const struct typenode *ty);
File readme.txt changed (mode: 100644) (index 4e38ab4..0e4b068)
1 pjass 29.09.2007 (v 1.0i)
1 pjass 09.10.2007 (v 1.0j)
2 2 A lightweight and fast Jass2 parser for bison/yacc A lightweight and fast Jass2 parser for bison/yacc
3 3 by Rudi Cilibrasi by Rudi Cilibrasi
4 4 Sun Jun 8 00:51:53 CEST 2003 Sun Jun 8 00:51:53 CEST 2003
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