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
def htmlize(data)
puts Skeksis::Parser.parse(data).htmlize
#puts Skeksis::Parser.parse(data).htmlize
Skeksis::Parser.parse(data).htmlize
end
end

View File

@ -59,7 +59,7 @@ module Skeksis
extend self
def parse(input)
#puts("##### PARSING STARTED #####")
puts("##### PARSING STARTED #####")
list = IR.new
@ -69,18 +69,38 @@ module Skeksis
content = []
data.each do |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
content.push(line)
elsif type != :verbatim and in_verbatim_block == true
content.push(line)
elsif type == :verbatim and in_verbatim_block == true
elsif in_verbatim_block == true
in_verbatim_block = false
content.push(line)
list.push({ type: :verbatim, content: content })
content = []
next
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
list.push({ type: type, content: [line] })
@ -88,9 +108,9 @@ module Skeksis
end
list.strip_markers!
#puts list
puts list
#puts strip_markers(list)
#puts("##### PARSING FINISHED #####")
puts("##### PARSING FINISHED #####")
list
end