diff --git a/formatter/html/html.go b/formatter/html/html.go
index 58093fa..9e2be50 100644
--- a/formatter/html/html.go
+++ b/formatter/html/html.go
@@ -256,6 +256,9 @@ func (h *HTMLFormatter) Format() string {
} else if entry.Break != nil {
// Write break tag to output
h.out.WriteString("
")
+ } else if entry.Hline != nil {
+ // Write horizonhal line tag to output
+ h.out.WriteString("
")
}
}
diff --git a/parser/parser.go b/parser/parser.go
index fdfa5d1..18b0a6e 100644
--- a/parser/parser.go
+++ b/parser/parser.go
@@ -112,15 +112,6 @@ func (b *buffer) pop() (scanner.Token, string) {
return scanner.EOF, ""
}
-func (b *buffer) peek() (scanner.Token, string) {
- if b.tok.Size() > 0 {
- tok := b.tok.Peek()
- lit := b.lit.Peek()
- return tok.(scanner.Token), lit.(string)
- }
- return scanner.EOF, ""
-}
-
// Parse parses the input into an AST
func (p *Parser) Parse() (*ast.AST, error) {
// Create new AST
@@ -172,6 +163,29 @@ parseLoop:
// Continue to next token
continue
}
+ } else if tok == scanner.PUNCT && lit == "-" {
+ // Scan token
+ tok, lit = p.scan()
+ // If token is not PUNCT or literal is not "-"
+ if tok != scanner.PUNCT || lit != "-" {
+ // Unscan token
+ p.unscan()
+ // Continue parsing next token
+ continue
+ }
+ // Scan token
+ tok, lit = p.scan()
+ // If token is not PUNCT or literal is not "-"
+ if tok != scanner.PUNCT || lit != "-" {
+ // Unscan two tokens
+ p.unscanMulti(2)
+ // Continue parsing next token
+ continue
+ }
+ // Add Hline to AST
+ AST.Entries = append(AST.Entries, ast.Entry{Hline: &ast.Hline{}})
+ // Continue parsing next token
+ continue
}
// Unscan token as it will be needed for parsing para
p.unscan()