Moon Healing Reformation!!!
(I know it would be refactoration, but that sounds much worse)
This commit is contained in:
+47
-44
@@ -1,5 +1,8 @@
|
||||
package main
|
||||
|
||||
import "./parser"
|
||||
import "./renderer"
|
||||
import "./token"
|
||||
import "core:fmt"
|
||||
import "core:os"
|
||||
import "core:strings"
|
||||
@@ -10,91 +13,91 @@ read_stdin :: proc() -> []string {
|
||||
return strings.split_lines(content)
|
||||
}
|
||||
|
||||
print_token :: proc(token: ^Token, depth: int = 0) {
|
||||
print_token :: proc(tok: ^token.Token, depth: int = 0) {
|
||||
indent := strings.repeat(" ", depth, context.temp_allocator)
|
||||
|
||||
type_str := ""
|
||||
switch token.type {
|
||||
case TokenType.Root:
|
||||
switch tok.type {
|
||||
case token.TokenType.Root:
|
||||
type_str = "Root"
|
||||
case TokenType.Text:
|
||||
case token.TokenType.Text:
|
||||
type_str = "Text"
|
||||
case TokenType.Italics:
|
||||
case token.TokenType.Italics:
|
||||
type_str = "Italics"
|
||||
case TokenType.Bold:
|
||||
case token.TokenType.Bold:
|
||||
type_str = "Bold"
|
||||
case TokenType.BreakLine:
|
||||
case token.TokenType.BreakLine:
|
||||
type_str = "BreakLine"
|
||||
case TokenType.Header:
|
||||
case token.TokenType.Header:
|
||||
type_str = "Header"
|
||||
case TokenType.Paragraph:
|
||||
case token.TokenType.Paragraph:
|
||||
type_str = "Paragraph"
|
||||
case TokenType.Blockquote:
|
||||
case token.TokenType.Blockquote:
|
||||
type_str = "Blockquote"
|
||||
case TokenType.UnorderedList:
|
||||
case token.TokenType.UnorderedList:
|
||||
type_str = "UnorderedList"
|
||||
case TokenType.OrderedList:
|
||||
case token.TokenType.OrderedList:
|
||||
type_str = "OrderedList"
|
||||
case TokenType.ListItem:
|
||||
case token.TokenType.ListItem:
|
||||
type_str = "ListItem"
|
||||
case TokenType.Strikethrough:
|
||||
case token.TokenType.Strikethrough:
|
||||
type_str = "Strikethrough"
|
||||
case TokenType.Table:
|
||||
case token.TokenType.Table:
|
||||
type_str = "Table"
|
||||
case TokenType.TableRow:
|
||||
case token.TokenType.TableRow:
|
||||
type_str = "TableRow"
|
||||
case TokenType.TableHeaderRow:
|
||||
case token.TokenType.TableHeaderRow:
|
||||
type_str = "TableHeaderRow"
|
||||
case TokenType.TableCell:
|
||||
case token.TokenType.TableCell:
|
||||
type_str = "TableCell"
|
||||
case TokenType.TableSeparator:
|
||||
case token.TokenType.TableSeparator:
|
||||
type_str = "TableSeparator"
|
||||
case TokenType.Left:
|
||||
case token.TokenType.Left:
|
||||
type_str = "Left"
|
||||
case TokenType.Right:
|
||||
case token.TokenType.Right:
|
||||
type_str = "Right"
|
||||
case TokenType.Middle:
|
||||
case token.TokenType.Middle:
|
||||
type_str = "Middle"
|
||||
case TokenType.FootnoteDef:
|
||||
case token.TokenType.FootnoteDef:
|
||||
type_str = "FootnoteDef"
|
||||
case TokenType.FootnoteRef:
|
||||
case token.TokenType.FootnoteRef:
|
||||
type_str = "FootnoteRef"
|
||||
case TokenType.CodeBlock:
|
||||
case token.TokenType.CodeBlock:
|
||||
type_str = "CodeBlock"
|
||||
case TokenType.InlineCode:
|
||||
case token.TokenType.InlineCode:
|
||||
type_str = "InlineCode"
|
||||
case TokenType.HorizontalRule:
|
||||
case token.TokenType.HorizontalRule:
|
||||
type_str = "HorizontalRule"
|
||||
case TokenType.Underline:
|
||||
case token.TokenType.Underline:
|
||||
type_str = "Underline"
|
||||
case TokenType.Superscript:
|
||||
case token.TokenType.Superscript:
|
||||
type_str = "Superscript"
|
||||
case TokenType.Subscript:
|
||||
case token.TokenType.Subscript:
|
||||
type_str = "Subscript"
|
||||
case TokenType.HeaderLink:
|
||||
case token.TokenType.HeaderLink:
|
||||
type_str = "HeaderLink"
|
||||
case TokenType.Link:
|
||||
case token.TokenType.Link:
|
||||
type_str = "Link"
|
||||
case TokenType.Image:
|
||||
case token.TokenType.Image:
|
||||
type_str = "Image"
|
||||
case TokenType.Audio:
|
||||
case token.TokenType.Audio:
|
||||
type_str = "Audio"
|
||||
case TokenType.Video:
|
||||
case token.TokenType.Video:
|
||||
type_str = "Video"
|
||||
case TokenType.Iframe:
|
||||
case token.TokenType.Iframe:
|
||||
type_str = "Iframe"
|
||||
case TokenType.Script:
|
||||
case token.TokenType.Script:
|
||||
type_str = "Script"
|
||||
case TokenType.ScriptBlock:
|
||||
case token.TokenType.ScriptBlock:
|
||||
type_str = "ScriptBlock"
|
||||
case TokenType.Variable:
|
||||
case token.TokenType.Variable:
|
||||
type_str = "Variable"
|
||||
case TokenType.VariableDef:
|
||||
case token.TokenType.VariableDef:
|
||||
type_str = "VariableDef"
|
||||
}
|
||||
|
||||
value_str := ""
|
||||
switch v in token.value {
|
||||
switch v in tok.value {
|
||||
case string:
|
||||
value_str = v
|
||||
case int:
|
||||
@@ -108,13 +111,13 @@ print_token :: proc(token: ^Token, depth: int = 0) {
|
||||
}
|
||||
fmt.println()
|
||||
|
||||
for child in token.children {
|
||||
for child in tok.children {
|
||||
print_token(child, depth + 1)
|
||||
}
|
||||
}
|
||||
|
||||
main :: proc() {
|
||||
lines := read_stdin()
|
||||
parsed := parse(lines)
|
||||
print_html(&parsed)
|
||||
parsed := parser.parse(lines)
|
||||
renderer.print_html(&parsed)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user