Exception: EBNF::LL1::Lexer::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/ebnf/ll1/lexer.rb

Overview

Raised for errors during lexical analysis.

Examples:

Raising a lexer error

raise EBNF::LL1::Lexer::Error.new(
  "invalid token '%' on line 10",
  input: query, token: '%', lineno: 9)

See Also:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, **options) ⇒ Error

Initializes a new lexer error instance.

Parameters:

  • message (String, #to_s)
  • options (Hash{Symbol => Object})

Options Hash (**options):

  • :input (String) — default: nil
  • :token (String) — default: nil
  • :lineno (Integer) — default: nil


522
523
524
525
526
527
# File 'lib/ebnf/ll1/lexer.rb', line 522

def initialize(message, **options)
  @input  = options[:input]
  @token  = options[:token]
  @lineno = options[:lineno]
  super(message.to_s)
end

Instance Attribute Details

#inputString (readonly)

The input string associated with the error.

Returns:

  • (String)


500
501
502
# File 'lib/ebnf/ll1/lexer.rb', line 500

def input
  @input
end

#linenoInteger (readonly)

The line number where the error occurred.

Returns:

  • (Integer)


512
513
514
# File 'lib/ebnf/ll1/lexer.rb', line 512

def lineno
  @lineno
end

#tokenString (readonly)

The invalid token which triggered the error.

Returns:

  • (String)


506
507
508
# File 'lib/ebnf/ll1/lexer.rb', line 506

def token
  @token
end