diff --git a/src/parser.odin b/src/parser.odin index 13ea937..1713e05 100644 --- a/src/parser.odin +++ b/src/parser.odin @@ -53,33 +53,29 @@ parse_header :: proc(line: string) -> (int, string) { return lvl, line[lvl + 1:] } -parse :: proc(lines: []string, allocator := context.allocator) -> string { - builder := strings.builder_make(allocator) - strings.write_string(&builder, "

") +parse :: proc(lines: []string, allocator := context.allocator) -> [dynamic]Token { + for untrimmed_line in lines { + line := strings.trim_space(untrimmed_line) - for line in lines { - trimmed := strings.trim_space(line) - - if len(trimmed) == 0 { - strings.write_string(&builder, "
\n") + if len(line) == 0 { + append(&token_tree, Token{TokenType.BreakLine, TokenMode.Start, nil}) continue } - lvl, text := parse_header(trimmed) - is_header := lvl > 0 + // lvl, text := parse_header(trimmed) + // is_header := lvl > 0 - if is_header { - fmt.sbprintf(&builder, "", lvl) - strings.write_string(&builder, text) - fmt.sbprintf(&builder, "", lvl) - } else { - strings.write_string(&builder, text) - strings.write_string(&builder, "
") - } + // if is_header { + // fmt.sbprintf(&builder, "", lvl) + // strings.write_string(&builder, text) + // fmt.sbprintf(&builder, "", lvl) + // } else { + // strings.write_string(&builder, text) + // strings.write_string(&builder, "
") + // } - strings.write_string(&builder, "\n") + // strings.write_string(&builder, "\n") } - strings.write_string(&builder, "

") - return strings.to_string(builder) + return token_tree }