3006 Posts in 511 Topics - by 2197 Members - Latest Member: Nuttinut

Warcraft III: MapsModelsSkinsIconsSpellsToolsTutorials
WC3 JASS: Code SnippetsJASS and vJASS Spells and SystemsJass Tutorials
Chat @Discord

Author Topic: vrJASS  (Read 2812 times)

Rating
Average Score
« Created: June 02, 2016, 11:01:38 PM by moyack »

  • Lurker - level 2
  • **
  • Posts: 2
  • WC3 Models: 0
  • WC3 Tutorials: 0
  • WC3 Tools: 1
  • WC3 Maps: 0
  • WC3 Skins: 0
  • WC3 Icons: 0
  • WC3 Spells: 0
  • Reputation: 0
  • User
    • View Profile
vrJASS
« on: June 02, 2016, 11:00:57 PM »
Version: 1.8.0
Keywords: jass,vrjass,vjass,compiler,language
Operating System (OS):
  • Linux
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 10
  • Mac OS X Leopard
  • Mac OS X Tiger
Tool Category: Jass Scripting, Specific WE Module as a Standalone App
Rating: 5
Image/screenshot:
Warcraft III tool
« Created: June 02, 2016, 11:00:57 PM by Ruke »
What is vrJASS?
A just-for-fun programming language which compiles down to JASS (Warcraft 3). It aims to improve and replace the beloved vJASS.

What? x2
An update to vJASS which tries to solve its flaws.

I want to try it! - I need a manual
https://github.com/Ruk33/vrJASS/wiki

Last version
https://github.com/Ruk33/vrJASS/releases

Like SublimeText?
Here, a linter: https://github.com/Ruk33/SublimeLinter-contrib-vrjasslint

TODOs
  • 80%-100% (I'm planning not to implement a few features, like function interfaces, but if anyone can/want-to code it, will be welcome) compatibility with vJASS
  • Improve debug messages
  • Fix (module) initializations (implemented as abstract classes)
  • Improve OOP (type-safety, attributes initialization, etc.)
  • Anonymous functions
  • Free variable definition
  • Add operators +=, -=, *=, /=
  • Improve/add loops
  • Null/Empty string/0 Conditional (null->false, "" -> false, 0 -> false)
  • Auto-null local handle variables Optimizers do this already
  • Return array Simply use structs
  • Allow end as alternative to endfunction, endmethod, endloop, etc.
  • Hooks (before/after)? Delegated to cJASS
  • Alternative C-like syntax Delegated to cJASS

    Green -> Done

    When is it gonna be ready?
    It already is on an stable version!

    Where can I see the progress/code?
    https://github.com/Ruk33/vrJASS

    How can I help you?
    If you know Java or Antlr4 you can check the repository and send me pull requests (don't worry if you don't know too much about them, I'm new too!). If you don't know these languages, let me know your suggestions, I'm open to them :)

    So there will be no changes for the final-user (you), it will be like coding with the actual vJASS in my current setup in Newgen without any weird stuff,  right?
    Kinda. Yes, it is gonna be the same syntax, same features (excepting just a few that no one uses) but with a few and hopefully useful new features like better error messages, free variable definition (not only at the beginning), new loops, etc..

    Few examples
    Anonymous functions
    Code: jass  [Select]
    1. call TimerStart(..., function
    2.     local timer expiredTimer = GetExpiredTimer()
    3.     // ...
    4. endfunction)

    Free variable definition
    Code: jass  [Select]
    1. function foo takes nothing returns nothing
    2.     call TimerStart(...)
    3.  
    4.     if (...) then
    5.        // ...
    6.     endif
    7.  
    8.     local unit bar = CreateUnit(...)
    9. endfunction

    Operators +=, -=, *=, /=
    Code: jass  [Select]
    1. local integer i = 5
    2.  
    3. set i += 5 // same as set i = i + 5
    4. set i -= 5 // same as set i = i - 5
    5. set i *= 5 // same as set i = i * 5
    6. set i /= 5 // same as set i = i / 5

    Improved loops
    Code: jass  [Select]
    1. while (true)    
    2.     if (shouldSkipThisIteration) then
    3.         continue
    4.     endif
    5.  
    6.     // ...
    7.  
    8.     if (isOver) then
    9.         break // same as exitwhen true
    10.     endif
    11. endwhile

    Null/0 conditional
    Code: jass  [Select]
    1. local unit u = null
    2.  
    3. if (u) then
    4.     // unit isn't null
    5. else
    6.     // unit is null
    7. endif
    8.  
    9. local MyCustomStruct instance = ...
    10.  
    11. if (instance) then
    12.     // instance exists (allocated)
    13. else
    14.     // instance does not exists (not-allocated)
    15. endif

    What does vr mean?
    Pick the one you like the most:
  • Beer (default), because everyone loves beer
  • Vexorian r$~%d-newbetterversionftw
  • Vexorian Ruke


Greetings.
« Last Edit: June 02, 2016, 11:26:25 PM by moyack »

  • Site Owner
  • Administrator
  • Starter - level 4
  • *
  • Posts: 982
  • WC3 Models: 54
  • WC3 Tutorials: 13
  • WC3 Tools: 10
  • WC3 Maps: 12
  • WC3 Skins: 6
  • WC3 Icons: 2
  • WC3 Spells: 6
  • Reputation: 1153
  • Site Admin - I love fix things
    • View Profile
    • Blizzard Modding Information Center
Re: vrJASS
« Reply #1 on: June 02, 2016, 11:04:41 PM »
Hi Ruke, Welcome to Blizzmod!!

Awesome project you're proposing here :) Definitely, a good addition for JNGP in the upcoming version.

We can give you full hosting for your projects, a complete page!!

A custom altered melee map where you can play Naga and Demons. Check it out!!
Use Dropbox...

  • Lurker - level 2
  • **
  • Posts: 2
  • WC3 Models: 0
  • WC3 Tutorials: 0
  • WC3 Tools: 1
  • WC3 Maps: 0
  • WC3 Skins: 0
  • WC3 Icons: 0
  • WC3 Spells: 0
  • Reputation: 0
  • User
    • View Profile
Re: vrJASS
« Reply #2 on: June 02, 2016, 11:16:36 PM »
Hi moyack. Thanks for considering adding this project to JNGP !.

 

Blizzard Modding Information Center Starcraft II Modding Information Center Wacraft III Modding Information Center WC3JASS.com - The JASS Vault Chronicles of Darkness - A Warcraft III mod Jetcraft - A Starcraft II mod Troll Smash - A Warcraft III Arena
  Mod DB - Change the Game Power of Corruption - A Warcraft III altered melee map Chaos Realm - The world of Game modders and wc3 addicts Follow us on Facebook!!