>>>>> "SC" == Simon Cozens <[EMAIL PROTECTED]> writes:
SC> rule comm_eol { <sp*> <comment>? <sp*> \n }; >> >> aren't those <sp*>'s redundant? the first is overlapping with the one at >> the beginning of comment. SC> But <comment> only matches if there *is* a comment, and there may not SC> be, so I want to match optional space at the EOL anyway. ok, but since comment is optional, if it doesn't match, the two <sp>* are back to back. is that needed? i just see too many <sp>* and that could lead to backtracking issues (something i recall from MRE1). SC> rule raiddev { <comment>* >> i think that should be comm_eol as you want to skip all full comment lines. SC> I thought the .* (or \N*) would skip the whole line. comm_eol just means SC> "comment at end of line". i figured that was what it meant. but . matches any char now so .* will eat all the text until it is forced to backtrack. so \N* will stop at the newline which is what i think you want in comm_eol. >> that is how i understand it. the grammar automatically build a tree of >> the grabs with hash keys being the rule names and multiples (rules with >> quantifiers) being arrays. SC> Great. actually i just had another thought. you don't need any of the $foo := stuff as the match tree will have it all for you. unless you need a single var having some grabbed stuff, you might as well let the match object hold it all. you do want a tree from this parser so the single vars will do no good. unless they also put stuff into the tree based on their names. also if you use a scalar to grab something which is in a quantified outer rule what is put in the var? a ref to a list of the grabbed things? uri -- Uri Guttman ------ [EMAIL PROTECTED] -------- http://www.stemsystems.com ----- Stem and Perl Development, Systems Architecture, Design and Coding ---- Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org