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,18 +69,38 @@ 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
case type
when :verbatim
if in_verbatim_block == false
in_verbatim_block = true in_verbatim_block = true
content.push(line) content.push(line)
elsif type != :verbatim and in_verbatim_block == true elsif in_verbatim_block == true
content.push(line)
elsif type == :verbatim and in_verbatim_block == true
in_verbatim_block = false in_verbatim_block = false
content.push(line) content.push(line)
list.push({ type: :verbatim, content: content }) list.push({ type: :verbatim, content: content })
content = [] content = []
next next
end end
else
if in_verbatim_block == true
content.push(line)
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] })
@ -88,9 +108,9 @@ module Skeksis
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