當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby Ripper.lex用法及代碼示例

本文簡要介紹ruby語言中 Ripper.lex 的用法。

用法

lex(src, filename = '-', lineno = 1, **kw)

標記 Ruby 程序並返回一個數組,其格式類似於 [[lineno, column], type, token, state]filename 參數大多被忽略。默認情況下,此方法不處理 src 中的語法錯誤,使用 raise_errors 關鍵字來引發 SyntaxError 中的錯誤 src

require 'ripper'
require 'pp'

pp Ripper.lex("def m(a) nil end")
#=> [[[1,  0], :on_kw,     "def", FNAME    ],
     [[1,  3], :on_sp,     " ",   FNAME    ],
     [[1,  4], :on_ident,  "m",   ENDFN    ],
     [[1,  5], :on_lparen, "(",   BEG|LABEL],
     [[1,  6], :on_ident,  "a",   ARG      ],
     [[1,  7], :on_rparen, ")",   ENDFN    ],
     [[1,  8], :on_sp,     " ",   BEG      ],
     [[1,  9], :on_kw,     "nil", END      ],
     [[1, 12], :on_sp,     " ",   END      ],
     [[1, 13], :on_kw,     "end", END      ]]

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Ripper.lex。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。