Module: Parser
- Defined in:
- lib/parser.rb,
lib/parser/base.rb,
lib/parser/meta.rb,
lib/parser/color.rb,
lib/parser/ruby18.rb,
lib/parser/ruby19.rb,
lib/parser/ruby20.rb,
lib/parser/ruby21.rb,
lib/parser/ruby22.rb,
lib/parser/ruby23.rb,
lib/parser/ruby24.rb,
lib/parser/ruby25.rb,
lib/parser/ruby26.rb,
lib/parser/ruby27.rb,
lib/parser/ruby28.rb,
lib/parser/ruby30.rb,
lib/parser/ruby31.rb,
lib/parser/ruby32.rb,
lib/parser/ruby33.rb,
lib/parser/ruby34.rb,
lib/parser/runner.rb,
lib/parser/context.rb,
lib/parser/current.rb,
lib/parser/macruby.rb,
lib/parser/version.rb,
lib/parser/ast/node.rb,
lib/parser/messages.rb,
lib/parser/rewriter.rb,
lib/parser/diagnostic.rb,
lib/parser/rubymotion.rb,
lib/parser/source/map.rb,
lib/parser/deprecation.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/tree_rewriter.rb,
lib/parser/lexer/dedenter.rb,
lib/parser/source/comment.rb,
lib/parser/source/map/for.rb,
lib/parser/source/map/send.rb,
lib/parser/source/rewriter.rb,
lib/parser/variables_stack.rb,
lib/parser/builders/default.rb,
lib/parser/clobbering_error.rb,
lib/parser/source/map/index.rb,
lib/parser/current_arg_stack.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/max_numparam_stack.rb,
lib/parser/source/map/heredoc.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/tree_rewriter.rb,
lib/parser/source/map/collection.rb,
lib/parser/source/map/definition.rb,
lib/parser/source/map/objc_kwarg.rb,
lib/parser/source/map/rescue_body.rb,
lib/parser/source/rewriter/action.rb,
lib/parser/source/comment/associator.rb,
lib/parser/source/tree_rewriter/action.rb,
lib/parser/source/map/method_definition.rb
Defined Under Namespace
Modules: AST, Builders, Color, Deprecation, Messages, Meta, Source Classes: Base, ClobberingError, Context, CurrentArgStack, Diagnostic, Lexer, LexerStrings, MacRuby, MaxNumparamStack, Rewriter, Ruby18, Ruby19, Ruby20, Ruby21, Ruby22, Ruby23, Ruby24, Ruby25, Ruby26, Ruby27, Ruby28, Ruby30, Ruby31, Ruby32, Ruby33, Ruby34, RubyMotion, Runner, StaticEnvironment, SyntaxError, TreeRewriter, VariablesStack
Constant Summary collapse
- VERSION =
'3.3.0.4'
- MESSAGES =
Diagnostic messages (errors, warnings and notices) that can be generated.
{ # Lexer errors :unicode_point_too_large => 'invalid Unicode codepoint (too large)', :invalid_escape => 'invalid escape character syntax', :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", :gvar_name => "`%{name}' is not allowed as a global variable name", :trailing_in_number => "trailing `%{character}' 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 meets end of file (and they embark on a romantic journey)', :heredoc_id_has_newline => 'here document identifier across newlines, never match', :heredoc_id_ends_with_nl => 'here document identifier ends with a newline', :unterminated_heredoc_id => 'unterminated heredoc id', # Lexer warnings :invalid_escape_use => 'invalid character syntax; use ?%{escape}', :ambiguous_literal => 'ambiguous first argument; put parentheses or a space even after the operator', :ambiguous_regexp => "ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator", :ambiguous_prefix => "`%{prefix}' interpreted as argument prefix", :triple_dot_at_eol => '... at EOL, should be parenthesized', # 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', :const_reassignment => 'constant re-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', :block_given_to_yield => 'block given to yield', :invalid_regexp => '%{message}', :invalid_return => 'Invalid return in class/module body', :csend_in_lhs_of_masgn => '&. inside multiple assignment destination', :cant_assign_to_numparam => 'cannot assign to numbered parameter %{name}', :reserved_for_numparam => '%{name} is reserved for numbered parameter', :ordinary_param_defined => 'ordinary parameter is defined', :numparam_used_in_outer_scope => 'numbered parameter is already used in an outer scope', :circular_argument_reference => 'circular argument reference %{var_name}', :pm_interp_in_var_name => 'symbol literal with interpolation is not allowed', :lvar_name => "`%{name}' is not allowed as a local variable name", :undefined_lvar => "no such local variable: `%{name}'", :duplicate_variable_name => 'duplicate variable name %{name}', :duplicate_pattern_key => 'duplicate hash pattern key %{name}', :endless_setter => 'setter method cannot be defined in an endless method definition', :invalid_id_to_get => 'identifier %{identifier} is not valid to get', :forward_arg_after_restarg => '... after rest argument', :no_anonymous_blockarg => 'no anonymous block parameter', :no_anonymous_restarg => 'no anonymous rest parameter', :no_anonymous_kwrestarg => 'no anonymous keyword rest parameter', :ambiguous_anonymous_restarg => 'anonymous rest parameter is also used within block', :ambiguous_anonymous_kwrestarg => 'anonymous keyword rest parameter is also used within block', :ambiguous_anonymous_blockarg => 'anonymous block parameter is also used within block', # Parser warnings :useless_else => 'else without rescue is useless', :duplicate_hash_key => 'key is duplicated and overwritten', :ambiguous_it_call => '`it` calls without arguments refers to the first block param', # Parser errors that are not Ruby errors :invalid_encoding => 'literal contains escape sequences incompatible with UTF-8', # Rewriter diagnostics :invalid_action => 'cannot %{action}', :clobbered => 'clobbered by: %{action}', # Rewriter diagnostics :different_replacements => 'different replacements: %{replacement} vs %{other_replacement}', :swallowed_insertions => 'this replacement:', :swallowed_insertions_conflict => 'swallows some inner rewriting actions:', :crossing_deletions => 'the deletion of:', :crossing_deletions_conflict => 'is crossing:', :crossing_insertions => 'the rewriting action on:', :crossing_insertions_conflict => 'is crossing that on:', }.freeze
Class Method Summary collapse
Class Method Details
.warn_syntax_deviation(feature, version) ⇒ Object
5 6 7 8 9 |
# File 'lib/parser/current.rb', line 5 def warn_syntax_deviation(feature, version) warn "warning: parser/current is loading #{feature}, which recognizes " \ "#{version}-compliant syntax, but you are running #{RUBY_VERSION}.\n" \ "Please see https://github.com/whitequark/parser#compatibility-with-ruby-mri." end |