Yeah adding generics in a sensible way would be nice. As for the interfaces, they seem fine at first look. I wouldn't expose the implementation on the interface though, rather make it a protected class or something - unless you really want to expose it, make it a normal class?
Thanks! Martijn On Mon, Sep 5, 2011 at 6:19 PM, Sam Barnett-Cormack <[email protected]> wrote: > On 05/09/2011 17:02, Terence Parr wrote: >> Yeah,First-time cleaning everything up and then slowly thinking about >> how generics get integrated. Is truly astounding just how wide the >> fanout is when you add a generic type. it ripples through all the >> classes. ugh. From the users point of view, however, it should look >> clean. > > WHen used sensibly, generics are absolutely wonderful. Many's the > occasion I've used an API that would clearly benefit from genericisation > from the programmer's point of view. > > So I guess what I'm saying is, don't hide the generics from the > user-coder unless there's a good reason to. We can always specify things > as ? or Object if we really need to, but if there's no generics we can't > avoid annoying casts. A genericised Tree interface would be a very > sensible way to go, and it could even generate code that has no ? left > in, but rather has specified generics. This will mean code using the > generated code has well-defined return types while still being able to > leverage common runtime code for management. I'm babbling, really, and > this probably isn't telling anyone anything they haven't thought of, but > on the off-chance that it is, I'm hitting 'send' rather than 'delete'... > > Sam > >> Ter On Sep 4, 2011, at 11:47 PM, Bart Kiers wrote: >> >>> Hi Ter, others, >>> >>> Perhaps generics could be introduced in v4? >>> >>> public interface Tree<T> { Tree<T> getParent(); T getPayload(); >>> Tree<T> getChild(int i); int getChildCount(); String >>> toStringTree(); } Regards, Bart >>> >>> >>> On Sun, Sep 4, 2011 at 11:47 PM, Terence Parr<[email protected]> >>> wrote: btw,If you want to take a look at the clean new tree >>> interface: >>> >>> http://www.antlr.org/depot/antlr4/main/runtime/Java/src/org/antlr/v4/runtime/tree/Tree.java >>> >>> >>> > then sub interfaces >>> >>> http://www.antlr.org/depot/antlr4/main/runtime/Java/src/org/antlr/v4/runtime/tree/SyntaxTree.java >>> >>> > http://www.antlr.org/depot/antlr4/main/runtime/Java/src/org/antlr/v4/runtime/tree/ParseTree.java >>> http://www.antlr.org/depot/antlr4/main/runtime/Java/src/org/antlr/v4/runtime/tree/AST.java >>> >>> >>> > ... >>> >>> Ter >>> >>> >>> List: http://www.antlr.org/mailman/listinfo/antlr-interest >>> Unsubscribe: >>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address >>> >> >>> >> >> List: http://www.antlr.org/mailman/listinfo/antlr-interest >> Unsubscribe: >> http://www.antlr.org/mailman/options/antlr-interest/your-email-address > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address > List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
