module Parse::Rule class Match < Hash @target # target @fromPos # start of match @pos # current match position @coroutine # match's corou @capture # subpattern captures def newFrom( src ) if src.is_a( "Mob" ) then if isGrammar() then target = mob.target from = mob.from.clone end else if isGrammar() then end end me = Grammar.new() me.target = @target me.from = @from me.pos = -1 if has_fromd and from < 0 then from = fromd end return me, target, from, pos end def next() if not @coroutine then @pos = -1 else @coroutine.call() end end def to() @pos end def matched() #__get_bool @pos > 0 end def __get_integer() self end def __get_number() self end def stringVal() return "" if not matched() return "" if @pos <= @from @target[@from..@pos] end def get_hash() return self end def get_array() return @capture end end end