⚝
One Hat Cyber Team
⚝
Your IP:
18.190.176.26
Server IP:
162.254.39.145
Server:
Linux premium289.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
Server Software:
LiteSpeed
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
opt
/
alt
/
ruby32
/
share
/
ruby
/
syntax_suggest
/
View File Name :
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"