人気ブログランキング | 話題のタグを見る

PEG star 演算子(zero or more repetition)

A <- e* の実装。式 e の0回以上の繰り返しにマッチ。

ファイル名: mk_star.rb

def mk_star(func_name, expr)
  prog = <<END
def #{func_name}
  while ( #{expr} )
  end
  return true
end
END
  eval prog
end

mk_star('a_str', 'a')

def a
  if $line =~ /^a/; $line.sub!(/^a/, ''); return true
  else return false; end
end

$line = 'aaaabcd'

p a_str
p $line
by tnomura9 | 2008-04-22 10:01 | Ruby | Comments(0)
<< PEG の And 述語 No... 睡眠不足 >>