PHP 8.2.31
Preview: lex_all.rb Size: 1.12 KB
//proc/thread-self/root/opt/alt/ruby32/share/ruby/syntax_suggest/lex_all.rb

# frozen_string_literal: true

module SyntaxSuggest
  # Ripper.lex is not guaranteed to lex the entire source document
  #
  # lex = LexAll.new(source: source)
  # lex.each do |value|
  #   puts value.line
  # end
  class LexAll
    include Enumerable

    def initialize(source:, source_lines: nil)
      @lex = Ripper::Lexer.new(source, "-", 1).parse.sort_by(&:pos)
      lineno = @lex.last.pos.first + 1
      source_lines ||= source.lines
      last_lineno = source_lines.length

      until lineno >= last_lineno
        lines = source_lines[lineno..-1]

        @lex.concat(
          Ripper::Lexer.new(lines.join, "-", lineno + 1).parse.sort_by(&:pos)
        )
        lineno = @lex.last.pos.first + 1
      end

      last_lex = nil
      @lex.map! { |elem|
        last_lex = LexValue.new(elem.pos.first, elem.event, elem.tok, elem.state, last_lex)
      }
    end

    def to_a
      @lex
    end

    def each
      return @lex.each unless block_given?
      @lex.each do |x|
        yield x
      end
    end

    def [](index)
      @lex[index]
    end

    def last
      @lex.last
    end
  end
end

require_relative "lex_value"

Directory Contents

Dirs: 1 × Files: 25

Name Size Perms Modified Actions
capture DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
5.16 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
6.90 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
4.87 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
6.67 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
8.74 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
3.12 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
2.13 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
5.62 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
6.46 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
3.82 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
3.00 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
1.77 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
1.75 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
2.41 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
4.06 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
1.12 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
1.50 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
1.50 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
1.42 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
1.26 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
2.00 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
837 B lrw-r--r-- 2026-04-07 14:12:52
Edit Download
2.92 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
705 B lrw-r--r-- 2026-04-07 14:12:52
Edit Download
76 B lrw-r--r-- 2026-04-07 14:12:52
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).