Class: PointBlank::Parsing::StackScanner

Inherits:
Object
  • Object
show all
Defined in:
lib/mmmd/blankshell.rb

Overview

Inline scanner

Instance Method Summary collapse

Constructor Details

#initialize(doc, init_tokens: nil) ⇒ StackScanner

Returns a new instance of StackScanner.



900
901
902
903
# File 'lib/mmmd/blankshell.rb', line 900

def initialize(doc, init_tokens: nil)
  @doc = doc
  @init_tokens = init_tokens
end

Instance Method Details

#scanObject

Scan document



906
907
908
909
910
911
912
913
914
915
916
917
# File 'lib/mmmd/blankshell.rb', line 906

def scan
  rounds = quantize(@doc.class.unsorted_children)
  tokens = @init_tokens || [@doc.content]
  rounds.each do |valid_parsers|
    @valid_parsers = valid_parsers
    tokens = tokenize(tokens)
    tokens = forward_walk(tokens)
    tokens = reverse_walk(tokens)
  end
  structure = finalize(tokens)
  structure.each { |child| @doc.append_child(child) }
end