Class: Ripper::SexpBuilder
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
| Subclasses: | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
          ::Ripper
         | |
| Instance Chain: 
          self,
          ::Ripper
         | |
| Inherits: | Ripper | 
| Defined in: | ext/ripper/lib/ripper/sexp.rb | 
Constant Summary
::Ripper - Inherited
Class Method Summary
::Ripper - Inherited
| .dedent_string, | |
| .lex | Tokenizes the Ruby program and returns an array of an array, which is formatted like  | 
| .lex_state_name, | |
| .new | Create a new ::Ripper object. | 
| .parse | Parses the given Ruby program read from  | 
| .sexp | 
 | 
| .sexp_raw | 
 | 
| .slice | 
 | 
| .tokenize | Tokenizes the Ruby program and returns an array of strings. | 
| .token_match | |
Instance Attribute Summary
::Ripper - Inherited
| #end_seen? | Return true if parsed source ended by _END_. | 
| #error? | Return true if parsed source has errors. | 
| #yydebug | Get yydebug. | 
| #yydebug= | Set yydebug. | 
Instance Method Summary
- #dedent_element(e, width) private
- #on_heredoc_dedent(val, width) private
::Ripper - Inherited
| #column | Return column number of current parsing line. | 
| #encoding | Return encoding of the source. | 
| #filename | Return current parsing filename. | 
| #lineno | Return line number of current parsing line. | 
| #parse | Start parsing and returns the value of the root action. | 
| #state | Return scanner state of current token. | 
| #_dispatch_0, #_dispatch_1, #_dispatch_2, #_dispatch_3, #_dispatch_4, #_dispatch_5, #_dispatch_6, #_dispatch_7, | |
| #compile_error | This method is called when the parser found syntax error. | 
| #dedent_string | Alias for dedent_string. | 
| #warn | This method is called when weak warning is produced by the parser. | 
| #warning | This method is called when strong warning is produced by the parser. | 
Constructor Details
This class inherits a constructor from Ripper
Instance Method Details
#dedent_element(e, width) (private)
[ GitHub ]# File 'ext/ripper/lib/ripper/sexp.rb', line 66
def dedent_element(e, width) if (n = dedent_string(e[1], width)) > 0 e[2][1] += n end e end
#on_heredoc_dedent(val, width) (private)
[ GitHub ]# File 'ext/ripper/lib/ripper/sexp.rb', line 73
def on_heredoc_dedent(val, width) sub = proc do |cont| cont.map! do |e| if Array === e case e[0] when :@tstring_content e = dedent_element(e, width) when /_add\z/ e[1] = sub[e[1]] end elsif String === e dedent_string(e, width) end e end end sub[val] val end