diff --git a/src/glxml.gleam b/src/glxml.gleam index f8fe4db..5ff225c 100644 --- a/src/glxml.gleam +++ b/src/glxml.gleam @@ -44,12 +44,19 @@ pub type Element { pub fn main() { parse_document( - "\r\n \n]]>", + //"\r\n \n]]>", + // " + " +'"> +asdf + ?>%\"/> + +", ) |> echo } -pub fn default_entities() -> dict.Dict(String, Entity) { +fn default_entities() -> dict.Dict(String, Entity) { dict.from_list([ #("lt", InternalEntity("<")), #("gt", InternalEntity(">")), @@ -144,7 +151,7 @@ fn parse_content( content: List(Element), ) -> Result(#(List(Element), String), Nil) { use #(chardata, doc) <- result.try(parse_chardata(doc, doctype, "")) - let new_content = case chardata { + let content = case chardata { "" -> content _ -> [Text(chardata), ..content] } @@ -163,10 +170,10 @@ fn parse_content( ) { Ok(#(element, doc)) -> parse_content(doc, doctype, [element, ..content]) - Error(_) -> Ok(#(list.reverse(new_content), doc)) + Error(_) -> Ok(#(list.reverse(content), doc)) } } - _ -> Ok(#(list.reverse(new_content), doc)) + _ -> Ok(#(list.reverse(content), doc)) } } @@ -592,7 +599,7 @@ fn parse_digit(doc: String) -> Result(#(String, String), Nil) { } } -pub fn parse_hex_digit(str: String) -> Result(#(String, String), Nil) { +fn parse_hex_digit(str: String) -> Result(#(String, String), Nil) { case str { "0" as digit <> tail | "1" as digit <> tail @@ -831,7 +838,7 @@ fn try_parsers( } } -pub fn parse_multiple( +fn parse_multiple( to_parse str: String, with to_run: fn(String) -> Result(#(String, String), Nil), ) -> Result(#(String, String), Nil) {