2009-10-11から1日間の記事一覧
現状こんな感じで書ける. lexer = Lexer.new("x + 4 * 5", /[ \t\n\r\v]+/) { token(:operator, /[+]/) {|ma| ma[0].to_sym } token(:operator2, /[*]/) {|ma| ma[0].to_sym } token(:integer, /[0-9]+/) {|ma| ma[0].to_i } token(:identifier, /[a-z]+/) …
indexで参照するには代替手段が用意されてるけど,名前で後から参照することができないようだ. s = StringScanner.new("hoge") s.scan(/.(?<k>.)/) p s[1] # => "o" p s[:k] # => -:4:in `[]': can't convert Symbol into Integer (TypeError)</k>