John Lam is a friend of mine; is it OK to forward this thread to him for comment/answers?
Ted Neward Java, .NET, XML Services Consulting, Teaching, Speaking, Writing http://www.tedneward.com > -----Original Message----- > From: [email protected] [mailto:jvm- > [EMAIL PROTECTED] On Behalf Of Sanghyeon Seo > Sent: Wednesday, January 23, 2008 2:56 AM > To: [email protected] > Subject: [jvm-l] Re: InfoQ short note on DLR > > > 2008/1/23, Charles Oliver Nutter <[EMAIL PROTECTED]>: > > Yeah, I'd like to hear what others on this list think about this > model. > > As I understand it (and I may have heard wrong), most of the "big" > DLR > > languages currently don't generate straight up DLR trees, or they > > partially generate such trees but have to go outside the available > > structure quite a bit. From discussions on the IronRuby list, it also > > sounds like they're adding many permutations of different types of > logic > > into individual tree node types: > > Well, all DLR languages generate straigt DLR trees. DLR tree nodes are > usually generated from language-specific AST nodes, which certainly > contains many different logics. > > > """ > > 293085: (tomat) Fixes RubyForge bug #14425. > > > > Ruby allows jump statements (return, redo, retry, break and next) to > > appear in Boolean expressions as right operands. > > > > Examples: > > > > def foo x > > x and return 'true' > > x or return 'false' > > 'Unreachable' > > end > > > > foo true # "true" > > foo false # "false" > > > > This shelveset changes the grammar to support this feature and adds > AST > > node ConditionalJumpExpression that represents <condition> and/or > > <jump-statement> expression. Also adds a unit test of the node. > > """ > > ConditionalJumpExpression is IronRuby AST node, not DLR AST node. This > is how it's implemented: > > // constructor for Ruby construct "[condition] and [jump]" > ConditionalJumpExpression(Expression condition, JumpStatement jump) > > // You cannot write to ConditionalJumpExpression > > // Reading ConditionalJumpExpression > condition = this.condition.TransformRead(); > tmp = CurrentCodeBlock.CreateTemporaryVariable(condition.Type); > return Comma(Assign(tmp, condition), Void(IfThen(OpCall("IsTrue", > tmp), this.jump.Transform())), Read(tmp)); > > So IronRuby first parses to IronRuby AST (for use with IDEs, and for > clarity and separation in general), and then IronRuby AST compiles to > (more complicated) DLR AST, usually calling back to langauge-specific > helpers. > > -- > Seo Sanghyeon > > > > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.516 / Virus Database: 269.19.9/1237 - Release Date: > 1/22/2008 11:04 AM > No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.516 / Virus Database: 269.19.9/1237 - Release Date: 1/22/2008 11:04 AM --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "JVM Languages" 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/jvm-languages?hl=en -~----------~----~----~----~------~----~------~--~---
