1. Find your way through the deepest dungeon in the 18th Mini Mapping Contest Poll.
    Dismiss Notice
  2. A brave new world lies beyond the seven seas. Join the 34th Modeling Contest today!
    Dismiss Notice
  3. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
Hive 3 Remoosed BETA - NOW LIVE. Go check it out at BETA Hive Workshop! Post your feedback in this new forum BETA Feedback.
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

[JASS] New Language - Discussion

Discussion in 'Triggers & Scripts' started by thelifelessone, Feb 11, 2010.

  1. The Reborn Devil

    The Reborn Devil

    Joined:
    Dec 31, 2006
    Messages:
    1,325
    Resources:
    0
    Resources:
    0
    Would be awesome if you could do something similar to what TESH does. Like the second you start writing the name of a function it will come with several proposals and show the parameters they need in a clean way and not a long line stretching beyond your screen. I know TESH does a lot of this, but I want it to work when doing stuff like struct.Some it will say f.ex "struct.Something()", and when you mouse over variables it can tell you what type it is and stuff like that. Eclipse got tons of these features and it would be truly awesome if you could implement some of them.
    Oh, and while()/for() loops would be nice too,

    Good luck! :D
     
  2. thelifelessone

    thelifelessone

    Joined:
    Feb 7, 2009
    Messages:
    369
    Resources:
    1
    Tools:
    1
    Resources:
    1
    That would involve making it plug directly into WE, which is something I don't want to do, as it would make it only work within WE.

    Also, the official name for the language is Onyx (it doesn't stand for anything), and it'll be done in Python (since Python is teh win).

    > Oh, and while()/for() loops would be nice too,

    I'm planning on those.
     
  3. overload119

    overload119

    Joined:
    May 28, 2007
    Messages:
    362
    Resources:
    3
    Skins:
    1
    Tools:
    1
    Maps:
    1
    Resources:
    3
    Making a WorldEdit language only available in WorldEdit is something you don't want to do?
     
  4. Coolty44

    Coolty44

    Joined:
    Dec 10, 2008
    Messages:
    576
    Resources:
    1
    Spells:
    1
    Resources:
    1
    LOLCODE would be fun. SOMEBODY ASK POOT IF WE CAN LOLCODE!!!!
     
  5. LeP

    LeP

    Joined:
    Feb 13, 2008
    Messages:
    480
    Resources:
    0
    Resources:
    0
    Bwahaha.

    Features i want (not that they ever get implemented):
    -lambdas (closures would be too hard)
    -(function currying? probably too hard.)
    -parametric polymorphism
    -type classes
    -blizzards types fully intigrated into this new typesystem

    And why let the user say what libraries/functions he use: analyze the code and do some toplogical sorting.
    Less work for the mapper -> more time for the map.
     
  6. thelifelessone

    thelifelessone

    Joined:
    Feb 7, 2009
    Messages:
    369
    Resources:
    1
    Tools:
    1
    Resources:
    1
    This is going to work on command-line, so you can use it in IDEs. Just make a plugin which will call the parser and pass it the proper arguements.

    No LOLcode. I'm already planning Onyx, and Jesus4Lyf at The Helper has an interesting language I'll be looking into implementing too:

    I'm not quite sure on what any of those are, though I blame the fact I didn't get much sleep, so meh. :/
     
  7. The Reborn Devil

    The Reborn Devil

    Joined:
    Dec 31, 2006
    Messages:
    1,325
    Resources:
    0
    Resources:
    0
    Since so many is interested in LOLCODE maybe I should restart my LOLJASS project?
     
  8. Adiktuz

    Adiktuz

    Joined:
    Oct 16, 2008
    Messages:
    9,674
    Resources:
    23
    Models:
    2
    Packs:
    1
    Maps:
    1
    Spells:
    16
    Tutorials:
    1
    JASS:
    2
    Resources:
    23
    quote


    this is only for integer loops, what if you have a loop that isnt based on an integer?
     
  9. YourNameHere

    YourNameHere

    Joined:
    Apr 29, 2007
    Messages:
    745
    Resources:
    4
    Maps:
    1
    Spells:
    2
    JASS:
    1
    Resources:
    4
    That's what why we need for and while.
     
  10. Element of Water

    Element of Water

    Joined:
    Aug 3, 2008
    Messages:
    2,298
    Resources:
    5
    Spells:
    3
    Tutorials:
    1
    JASS:
    1
    Resources:
    5
    We don't NEED for. IMO it's just confusing. While is better.
     
  11. overload119

    overload119

    Joined:
    May 28, 2007
    Messages:
    362
    Resources:
    3
    Skins:
    1
    Tools:
    1
    Maps:
    1
    Resources:
    3
    And after you spend all the time on it, maybe 3 people will try it out for shits.
     
  12. Mooglefrooglian

    Mooglefrooglian

    Joined:
    Nov 28, 2008
    Messages:
    701
    Resources:
    0
    Resources:
    0
    Wait, people code in C and not C++?

    Why? What can you possibly gain? D:

    Also, if this is being coded in python, what version?
     
  13. thelifelessone

    thelifelessone

    Joined:
    Feb 7, 2009
    Messages:
    369
    Resources:
    1
    Tools:
    1
    Resources:
    1
    If you can make a detailed definition, I'll consider it, but only after a stable version has been released.

    Because C is a lot easier to understand.

    And it'll be Python 3.1. I'm still familiarizing myself with it though, so not much progress.
     
  14. thelifelessone

    thelifelessone

    Joined:
    Feb 7, 2009
    Messages:
    369
    Resources:
    1
    Tools:
    1
    Resources:
    1
    Well, I'm a pain in the ass when it comes to deciding languages, I think...
    This'll be in C++ (officially), since I can't find any good docs on parsing in Python.

    Anyway, update.

    Code (vJASS):
    Namespaces are vJASS libraries, and have essentially the same features.
    Example:

    namespace HelloWorld
        globals
            private constant string msg = "Hello World!" // Why global? I have no idea...
        endglobals
       
        function Init takes nothing returns nothing // Init is automatically called. No need to declare the initializer manually.
            call BJDebugMsg(msg)
        endfunction
    endnamespace

    If we want to require other namespaces...

    namespace Hello World
        globals
            private constant string msg = "Hello World!"
        endglobals
       
           function helloworld takes nothing returns nothing
            call BJDebugMsg(msg)
        endfunction

    endnamespace

    namespace HelloWorld2 requires HelloWorld
       
        function Init takes nothing returns nothing
            call helloworld() // this is completely valid, since this namespace requires the other one.
        endfunction
    endnamespace


    Opinions?
     
  15. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,833
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    You do realize vex is remaking jasshelper in C right? Also, you can't just wait a few months until sc2 comes out?
     
  16. thelifelessone

    thelifelessone

    Joined:
    Feb 7, 2009
    Messages:
    369
    Resources:
    1
    Tools:
    1
    Resources:
    1
    > You do realize vex is remaking jasshelper in C right

    Yes, I know.
    This language isn't a "replacement for JassHelper", really, but more another option for people to use, which has less bugs (hopefully) than the current incarnation of vJASS/Zinc.


    ...

    Though now that you mention that, I think it'd be more efficient to add this language into the new parser, rather than have a million parsers...
    Hmm. Maybe I'll talk to Vexorian about that...
     
  17. YourNameHere

    YourNameHere

    Joined:
    Apr 29, 2007
    Messages:
    745
    Resources:
    4
    Maps:
    1
    Spells:
    2
    JASS:
    1
    Resources:
    4
    It would be awesome if we could use the same namespace more than once and they'd just merge together.

    Code (vJASS):
    namespace abc
        private function SaySomething takes nothing returns nothing
            call BJDebugMsg("Something")
        endfunction
    endnamespace

    namespace abc
        function Init takes nothing returns nothing
            call SaySomething() //Would be valid..
        endfunction
    endnamespace
     
  18. Ciebron

    Ciebron

    Joined:
    Apr 6, 2008
    Messages:
    760
    Resources:
    2
    Spells:
    2
    Resources:
    2
    Zinc and Jass are fine. Just blizz who gave us too little things to tamper with.

    Thats why we wait for SC2 and we can basacly do wtf we want.
     
  19. Teelo

    Teelo

    Joined:
    Mar 31, 2009
    Messages:
    709
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Awww. SC2's version of jass is similiar to Java, could use the practice :p
     
  20. thelifelessone

    thelifelessone

    Joined:
    Feb 7, 2009
    Messages:
    369
    Resources:
    1
    Tools:
    1
    Resources:
    1
    It's actually more like C than Java.