# New Ticket Created by Zach Morgan # Please include the string: [perl #50220] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=50220 >
severity: medium category: languages hello, all. Attached (hopefully) is a patch to implement get_string for perl6's junctions. I looked in synopsis 9 and saw nothing about any get_string, so I decided on the simplest, most straightforward approach. Admittedly, I don't know enough about junctions to say for certain whether this will actually be used. Should say 4&5 call say for both 4 and 5 or just once for the junction? At the moment however, it looks for get_string for the junction type. I suspect that it will at least aid in debugging, at the very least. Zach Morgan
Index: languages/perl6/src/classes/Junction.pir =================================================================== --- languages/perl6/src/classes/Junction.pir (revision 25207) +++ languages/perl6/src/classes/Junction.pir (working copy) @@ -27,6 +27,47 @@ .end +=item get_string() (vtable method) + +Return the elements of the junction joined by commas, identified by junction type. + +=cut + +.sub 'get_string' :vtable :method + + # Now go by juction type. + .local int type + .local pmc values + .local string res + .local string tmp + type = self.'!type'() + if type == JUNCTION_TYPE_ALL goto all + if type == JUNCTION_TYPE_ANY goto any + if type == JUNCTION_TYPE_ONE goto one + if type == JUNCTION_TYPE_NONE goto none + +all: + res = 'all' + goto okay +any: + res = 'any' + goto okay +one: + res = 'one' + goto okay +none: + res = 'none' + goto okay +okay: + values = self.'values'() + tmp = join ',', values + concat res, '(' + concat res, tmp + concat res, ')' + .return (res) +.end + + =item values() Get the values in the junction.