Collection of methods for writing parsers against RDoc::RubyLex and RDoc::RubyToken
Methods
- A
- G
- P
- R
- S
- T
- U
Included Modules
Instance Public methods
add_token_listener(obj)
Link
Adds a token listener obj
, but you should probably use #token_listener
get_tk()
Link
Fetches the next token from the scanner
# File lib/rdoc/parser/ruby_tools.rb, line 20 def get_tk tk = nil if @tokens.empty? then tk = @scanner.token @read.push @scanner.get_readed puts "get_tk1 => #{tk.inspect}" if $TOKEN_DEBUG else @read.push @unget_read.shift tk = @tokens.shift puts "get_tk2 => #{tk.inspect}" if $TOKEN_DEBUG end tk = nil if TkEND_OF_SCRIPT === tk if TkSYMBEG === tk then set_token_position tk.line_no, tk.char_no case tk1 = get_tk when TkId, TkOp, TkSTRING, TkDSTRING, TkSTAR, TkAMPER then if tk1.respond_to?(:name) then tk = Token(TkSYMBOL).set_text(":" + tk1.name) else tk = Token(TkSYMBOL).set_text(":" + tk1.text) end # remove the identifier we just read to replace it with a symbol @token_listeners.each do |obj| obj.pop_token end if @token_listeners else tk = tk1 end end # inform any listeners of our shiny new token @token_listeners.each do |obj| obj.add_token(tk) end if @token_listeners tk end
get_tk_until(*tokens)
Link
Reads and returns all tokens up to one of tokens
. Leaves the
matched token in the token list.
get_tkread()
Link
Retrieves a String representation of the read tokens
peek_read()
Link
Peek equivalent for #get_tkread
peek_tk()
Link
Peek at the next token, but don't remove it from the stream
remove_token_listener(obj)
Link
Removes the token listener obj
reset()
Link
Resets the tools
skip_tkspace(skip_nl = true)
Link
Skips whitespace tokens including newlines if skip_nl
is true
token_listener(obj)
Link
Has obj
listen to tokens