On Sat, Jun 05, 2010 at 09:19:01AM +1000, Timothy S. Nelson wrote: > Hi. I've been thinking more about reversible grammars. Specifically, > I'm wondering if the following pseudo-code will be possible: > > ## Match a grammar here > $match = Grammar.match($text) > ## Need some code here to get $submatch from $match > .... > $submatch.Str = "fred" > ## Reverse Grammar > $text = Grammar.reverse($match) > > My idea is that I could read in a file, find the part I wanted in the > match tree, change that part, and then write it back to the file. Is > that going to be a possibility?
Look at emit_p5 in viv, where we do basically exactly that (but combined with a recursive traversal). > Also, while I was trying to investigate this, I was wondering about > S32/Rules. I've added a few more lines to it, but there are some things > I'm having trouble figuring out (this may be due to a few months absence > from the p6 community -- sorry :) ). Anyway, my questions are: Higher-numbered synopses are much more speculative, poorly implemented, and get little love from the janitorial staff; so, in case of disagreement, the lower number has the correct answer. > - I note that, while S32/Rules says that .from returns an Int, S05 has a > call $/.from.bytes . Does this mean that there's a StringSize type S32 is wrong. > that does maybe .bytes, .chars, .graphs, and .codes that's returned by > maybe .from, .to, and .pos ? Yes, it's called StrPos; see S02:813. > - I've also noticed that there's a .chars method on the match object; > wouldn't this exist by default because of the Str method? -sorear
Description: Digital signature