Module: Parser
- Defined in:
- lib/parser.rb,
lib/parser/base.rb,
lib/parser/runner.rb,
lib/parser/current.rb,
lib/parser/version.rb,
lib/parser/ast/node.rb,
lib/parser/rewriter.rb,
lib/parser/diagnostic.rb,
lib/parser/source/map.rb,
lib/parser/source/range.rb,
lib/parser/syntax_error.rb,
lib/parser/ast/processor.rb,
lib/parser/lexer/literal.rb,
lib/parser/source/buffer.rb,
lib/parser/source/map/for.rb,
lib/parser/source/map/send.rb,
lib/parser/source/rewriter.rb,
lib/parser/builders/default.rb,
lib/parser/source/map/block.rb,
lib/parser/diagnostic/engine.rb,
lib/parser/lexer/explanation.rb,
lib/parser/lexer/stack_state.rb,
lib/parser/runner/ruby_parse.rb,
lib/parser/source/map/keyword.rb,
lib/parser/source/map/ternary.rb,
lib/parser/static_environment.rb,
lib/parser/runner/ruby_rewrite.rb,
lib/parser/source/map/constant.rb,
lib/parser/source/map/operator.rb,
lib/parser/source/map/variable.rb,
lib/parser/source/map/condition.rb,
lib/parser/source/map/collection.rb,
lib/parser/source/map/definition.rb,
lib/parser/source/map/rescue_body.rb,
lib/parser/source/rewriter/action.rb
Overview
Library namespace
Defined Under Namespace
Modules: AST, Builders, Source Classes: Base, Diagnostic, Lexer, Rewriter, Runner, StaticEnvironment, SyntaxError
Constant Summary collapse
- VERSION =
'1.4.1'
- ERRORS =
{ # Lexer errors :unicode_point_too_large => "invalid Unicode codepoint (too large)", :invalid_escape => "invalid escape character syntax", :invalid_escape_use => "invalid character syntax; use ?%{escape}", :incomplete_escape => "incomplete character syntax", :invalid_hex_escape => "invalid hex escape", :invalid_unicode_escape => "invalid Unicode escape", :unterminated_unicode => "unterminated Unicode escape", :escape_eof => "escape sequence meets end of file", :string_eof => "unterminated string meets end of file", :regexp_options => "unknown regexp options: %{options}", :cvar_name => "`%{name}' is not allowed as a class variable name", :ivar_name => "`%{name}' is not allowed as an instance variable name", :trailing_underscore => "trailing `_' in number", :empty_numeric => "numeric literal without digits", :invalid_octal => "invalid octal digit", :no_dot_digit_literal => "no .<digit> floating literal anymore; put 0 before dot", :bare_backslash => "bare backslash only allowed before newline", :unexpected => "unexpected `%{character}'", :embedded_document => "embedded document meats end of file (and they embark on a romantic journey)", # Lexer warnings :ambiguous_literal => "ambiguous first argument; parenthesize arguments or add whitespace to the right", :ambiguous_prefix => "`%{prefix}' interpreted as argument prefix", # Parser errors :nth_ref_alias => "cannot define an alias for a back-reference variable", :begin_in_method => "BEGIN in method", :backref_assignment => "cannot assign to a back-reference variable", :invalid_assignment => "cannot assign to a keyword", :module_name_const => "class or module name must be a constant literal", :unexpected_token => "unexpected token %{token}", :argument_const => "formal argument cannot be a constant", :argument_ivar => "formal argument cannot be an instance variable", :argument_gvar => "formal argument cannot be a global variable", :argument_cvar => "formal argument cannot be a class variable", :duplicate_argument => "duplicate argument name", :empty_symbol => "empty symbol literal", :odd_hash => "odd number of entries for a hash", :singleton_literal => "cannot define a singleton method for a literal", :dynamic_const => "dynamic constant assignment", :module_in_def => "module definition in method body", :class_in_def => "class definition in method body", :unexpected_percent_str => "%{type}: unknown type of percent-literal", :block_and_blockarg => "both block argument and literal block are passed", :masgn_as_condition => "multiple assignment in conditional context", # Parser warnings :end_in_method => "END in method; use at_exit", :space_before_lparen => "don't put space before argument parentheses", :useless_else => "else without rescue is useless", }.freeze
Class Method Summary collapse
Class Method Details
.check_for_encoding_support ⇒ Object
109 110 111 112 113 |
# File 'lib/parser.rb', line 109 def self.check_for_encoding_support unless defined?(Encoding) raise RuntimeError, "Parsing 1.9 and later versions of Ruby is not supported on 1.8 due to the lack of Encoding support" end end |
.warn_syntax_deviation(feature, version) ⇒ Object
3 4 5 6 |
# File 'lib/parser/current.rb', line 3 def warn_syntax_deviation(feature, version) warn "warning: parser/current is loading #{feature}, which recognizes" warn "warning: #{version}-compliant syntax, but you are running #{RUBY_VERSION}." end |