Header parsing
This commit is contained in:
+2
-2
@@ -25,8 +25,8 @@ print_token :: proc(token: Token, depth: int = 0) {
|
|||||||
type_str = "Bold"
|
type_str = "Bold"
|
||||||
case TokenType.BreakLine:
|
case TokenType.BreakLine:
|
||||||
type_str = "BreakLine"
|
type_str = "BreakLine"
|
||||||
case TokenType.Heading:
|
case TokenType.Header:
|
||||||
type_str = "Heading"
|
type_str = "Header"
|
||||||
case TokenType.Paragraph:
|
case TokenType.Paragraph:
|
||||||
type_str = "Paragraph"
|
type_str = "Paragraph"
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-1
@@ -8,7 +8,7 @@ TokenType :: enum {
|
|||||||
Italics,
|
Italics,
|
||||||
Bold,
|
Bold,
|
||||||
BreakLine,
|
BreakLine,
|
||||||
Heading,
|
Header,
|
||||||
Paragraph,
|
Paragraph,
|
||||||
Root,
|
Root,
|
||||||
}
|
}
|
||||||
@@ -69,6 +69,18 @@ parse :: proc(lines: []string, allocator := context.allocator) -> Token {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
header_level, text := parse_header(line)
|
||||||
|
if header_level > 0 {
|
||||||
|
append(
|
||||||
|
¤t_token.children,
|
||||||
|
Token{TokenType.Header, header_level, nil, current_token},
|
||||||
|
)
|
||||||
|
current_token = ¤t_token.children[len(current_token.children) - 1]
|
||||||
|
append(¤t_token.children, Token{TokenType.Text, text, nil, current_token})
|
||||||
|
current_token = current_token.parent
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
append(¤t_token.children, Token{TokenType.Text, line, nil, current_token})
|
append(¤t_token.children, Token{TokenType.Text, line, nil, current_token})
|
||||||
|
|
||||||
// lvl, text := parse_header(trimmed)
|
// lvl, text := parse_header(trimmed)
|
||||||
|
|||||||
Reference in New Issue
Block a user