FIXED: Function parameter parsing bug

Jungle Ide Home Forums Historic logs Fixed Bugs log FIXED: Function parameter parsing bug

This topic contains 2 replies, has 2 voices, and was last updated by  Goodlookinguy 5 years, 6 months ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #5553

    Goodlookinguy
    Participant

    The comma used to separate a generic classes types is breaking the parser and thus the intellisense in turn.

    Function Example( a:CExample<Int,Int>, b, c )
    	
    End
    
    Function Main:Int()
    	'                       v
    	Example(New CExample<Int,Int>(), 3, 3)
    End
    
    Class CExample<A,B>
    	
    End
    #5561

    Ziggy
    Keymaster

    That’s very complicated to fix! mmmm I’ll be able to minimize it for next version, so both the cases you’re describing will not break the parser, but more complex expression with generics could be complicated to parse properly because of the happy idea of using < and > for generics.
    It was a bad idea in C++, a bad idea to keep it on Java, a good idea to remove them from D and VB, but Mark considered it was nice to keep like C++ on Monkey.

    Situations like this one:

    
    MyFunctionCall(MySomething<Identifier1, Identifier2>(MyValue))
    
    

    Are too ambiguous. Are there 2 boolean parameters or a cast from MyValue, to a class with 2 generics? Impossible to know unless a complete lexing is done, which can be very slow.

    I’ll try to completely fix this, but it can be a bit complicated to get right always while not affecting parsing speed in any way.

    #5564

    Goodlookinguy
    Participant

    I see your point about the ambiguity. Surprisingly I never noticed it before. Good luck trying to fix this though.

Viewing 3 posts - 1 through 3 (of 3 total)

The topic ‘FIXED: Function parameter parsing bug’ is closed to new replies.