• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Recruiting JASS scripters to test a new parser/compiler

Status
Not open for further replies.
Level 2
Joined
Mar 5, 2013
Messages
8
Please forgive me if this isn't the proper thread to post this...
Over the past few weeks, I have been developing a new & improved, professional-grade JASS parser/compiler/interpreter (from scratch) with the following goals in mind:

  • Flawless syntax checking/error reporting
  • Several language improvements
  • MPQ script extraction/injection (less need for WorldEdit + other tools)
  • The ability to interpret C/C++/Java code to/from JASS
  • Cross-compatibility with Windows/Mac/Unix/Linux systems
  • (more to come)...

So far, it is able to handle a very large (303kb), valid & working script with > 7500 lines of code, with no errors, in less than 10 seconds.
It also parses a much smaller (5kb) script with 113 lines of code in < 1 second.
AND it detects any syntax errors, and can often give a list of viable suggestions to correct these issues.
If after further development/testing, I find that everything is totally flawless, I will continue to work on a GUI/IDE application which uses this parser/compiler, and release it to the public.
Also, there is virtually no end as to what this can do for the mapping community, so I am always open for further suggestions.

IF YOU WISH TO BE INVOLVED IN THIS PROJECT then please send me a PM with your details, including your name, how much mapping & coding experience you have (and in which languages), and why you are interested.
I will respond with the details.

Thank you for your time!
 
Last edited:
Level 2
Joined
Mar 5, 2013
Messages
8
Yeah, I was inspired by the ugly redundancies of:

JASS:
function DoSomethingUseless takes integer x returns nothing
    local string s = "Value: "
    if x == 0 then
        set x = 1
    endif
    set s = s + x
    call DisplayTextToPlayer(Player(0), 0, 0, s)
endfunction

versus something like:

JASS:
void DoSomethingUseless(int x = 1) {
    string s = "Value: " + x
    DisplayTextToPlayer(0, 0, 0, s);
}

Not to mention, the lack of OOP support. I will definitely be allowing the class keyword during interpretations.
There was a similar project known as cJass, but it hasn't been updated since 2011 and it's latest stable version dates back to 2009, and doesn't support direct conversion of Java or C++.
 
Last edited:
Level 19
Joined
Aug 8, 2007
Messages
2,765
Yeah, I was inspired by the ugly redundancies of:

JASS:
function DoSomethingUseless takes integer x returns nothing
    local string s = "Value: "
    if x == 0 then
        set x = 1
    endif
    set s = s + x
    call DisplayTextToPlayer(Player(0), 0, 0, s)
endfunction

versus something like:

JASS:
void DoSomethingUseless(int x = 1) {
    string s = "Value: " + x
    DisplayTextToPlayer(0, 0, 0, s);
}

Not to mention, the lack of OOP support. I will definitely be allowing the class keyword during interpretations.
There was a similar project known as cJass, but it hasn't been updated since 2011 and it's latest stable version dates back to 2009, and doesn't support direct conversion of Java or C++.

are you sure your not thinking of zinc? (though tertiary ops would be awesome)

you should also contact moyack about putting your helper into JNGP so its easier for testers to write code

(if you REALLY want to help the modding community, write a netbeans extension for your language :D )
 
Level 2
Joined
Mar 5, 2013
Messages
8
are you sure your not thinking of zinc? (though tertiary ops would be awesome)
No, I was talking about cJass but thanks for the reference, I might implement a few of those ideas.
Do you mean ternary operations? Like x = (b == true ? 1 : 0);?
AFAIK, that has already been part of the C standard for decades.
And my goal here is to eventually allow people to automatically translate code from pure C/C++ to/from JASS.
Following a few semantic rules, obviously (ie, I won't support inline asm code, lol).

you should also contact moyack about putting your helper into JNGP so its easier for testers to write code
First things first, I'll need to actually finish the semantics stage of the compiler (which so far, has been the toughest part).
But also, I would like to hold to the idea of script extraction/injection, for those who really don't need WorldEdit and just want to edit and test their scripts.
Because really, when it comes down to it, if you know how to code then you only need WorldEdit for the terrain and initial map/unit/player settings.

(if you REALLY want to help the modding community, write a netbeans extension for your language :D )
Shouldn't be too hard, as the parser is already written in Java using the netbeans IDE ;)
Though, I'm more of a MSVC guy, myself. Not a big fan of Java and it's clunky IDEs.
(i.e "phantom breakpoints" which can be seen but don't really exist)
 
Level 19
Joined
Aug 8, 2007
Messages
2,765
So far, it is able to handle a very large (303kb), valid & working script with > 7500 lines of code, with no errors, in less than 10 seconds.

fyi, this is forever... my 20k lines of code map takes ~4 seconds (not counting default WE compile times)

No, I was talking about cJass but thanks for the reference, I might implement a few of those ideas.
Do you mean ternary operations? Like x = (b == true ? 1 : 0);?
AFAIK, that has already been part of the C standard for decades.
And my goal here is to eventually allow people to automatically translate code from pure C/C++ to/from JASS.
Following a few semantic rules, obviously (ie, I won't support inline asm code, lol).


First things first, I'll need to actually finish the semantics stage of the compiler (which so far, has been the toughest part).
But also, I would like to hold to the idea of script extraction/injection, for those who really don't need WorldEdit and just want to edit and test their scripts.
Because really, when it comes down to it, if you know how to code then you only need WorldEdit for the terrain and initial map/unit/player settings.


Shouldn't be too hard, as the parser is already written in Java using the netbeans IDE ;)
Though, I'm more of a MSVC guy, myself. Not a big fan of Java and it's clunky IDEs.
(i.e "phantom breakpoints" which can be seen but don't really exist)

Idk, i just said netbeans for the autocomplete, auto error detection, and refractoring tools, any DK besides the clunky WE trigger editor will do
 
Status
Not open for further replies.
Top