Switch to case-implementation of parser

This commit is contained in:
maddiebaka 2023-08-03 17:06:01 -04:00
parent 1e2dba2630
commit eb8325f20a
2 changed files with 35 additions and 15 deletions

View File

@ -10,7 +10,7 @@ module Skeksis
extend self extend self
def htmlize(data) def htmlize(data)
puts Skeksis::Parser.parse(data).htmlize #puts Skeksis::Parser.parse(data).htmlize
Skeksis::Parser.parse(data).htmlize Skeksis::Parser.parse(data).htmlize
end end
end end

View File

@ -59,7 +59,7 @@ module Skeksis
extend self extend self
def parse(input) def parse(input)
#puts("##### PARSING STARTED #####") puts("##### PARSING STARTED #####")
list = IR.new list = IR.new
@ -69,28 +69,48 @@ module Skeksis
content = [] content = []
data.each do |line| data.each do |line|
type = get_type(line) type = get_type(line)
if type == :verbatim and in_verbatim_block == false
in_verbatim_block = true case type
content.push(line) when :verbatim
elsif type != :verbatim and in_verbatim_block == true if in_verbatim_block == false
content.push(line) in_verbatim_block = true
elsif type == :verbatim and in_verbatim_block == true content.push(line)
in_verbatim_block = false elsif in_verbatim_block == true
content.push(line) in_verbatim_block = false
list.push({ type: :verbatim, content: content }) content.push(line)
content = [] list.push({ type: :verbatim, content: content })
next content = []
next
end
else
if in_verbatim_block == true
content.push(line)
end
end end
#if type == :verbatim and in_verbatim_block == false
# in_verbatim_block = true
# content.push(line)
#elsif type != :verbatim and in_verbatim_block == true
# content.push(line)
#elsif type == :verbatim and in_verbatim_block == true
# in_verbatim_block = false
# content.push(line)
# list.push({ type: :verbatim, content: content })
# content = []
# next
#end
if in_verbatim_block == false if in_verbatim_block == false
list.push({ type: type, content: [line] }) list.push({ type: type, content: [line] })
end end
end end
list.strip_markers! list.strip_markers!
#puts list puts list
#puts strip_markers(list) #puts strip_markers(list)
#puts("##### PARSING FINISHED #####") puts("##### PARSING FINISHED #####")
list list
end end