Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: coding the closing parentheses correctly

From: moliad::gmail::com at: 1-May-2008 16:33

hi Doug, note that in my last example, I tried something different and it worked. instead of calling parse recursively, I just dynamically set the entity count within the rule and let parse's internal recursivity do the rest. By calling the entity rule within the entity rule, parse effectively continues looking for an entity then and there. I don't know why I didn't do this in the first example. this, is the correct way of using parse. The reason is simple, its faster. Care must be taken though, because parse doesn't reallocate variables or push them to a stack when using recursive rules. You must do so yourself, when its needed, by adding a bit of code to the start and end of rules. This is usually necessary when building data trees made up of blocks for example, where every layer, must push the "current" block to a stack, allocate a new one and use this new one as the current block for children (the recursive rule) at that point. when children return, you pop the block and continue using "your" current block. this said, its advanced usage and seldom needed. other ways to build data trees, are simpler, like in your example, where we could have replaced the tuples with a set of parenthesis "( )" forego of the colons "," and then used load on the string. giving us a native rebol block with block! word! and paren! within. -MAx On Thu, May 1, 2008 at 4:06 PM, Maxim Olivier-Adlhoch <moliad-gmail.com> wrote: