summaryrefslogtreecommitdiff
path: root/html/html.go
diff options
context:
space:
mode:
Diffstat (limited to 'html/html.go')
-rw-r--r--html/html.go22
1 files changed, 11 insertions, 11 deletions
diff --git a/html/html.go b/html/html.go
index adee935..847af96 100644
--- a/html/html.go
+++ b/html/html.go
@@ -2,32 +2,32 @@ package html
import . "github.com/vektah/goparsify"
-func Parse(input string) (result Node, remaining string, err error) {
+func Parse(input string) (result interface{}, remaining string, err error) {
return ParseString(tag, input)
}
type Tag struct {
Name string
Attributes map[string]string
- Body []Node
+ Body []interface{}
}
var (
tag Parser
- identifier = Merge(And(Range("a-z", 1, 1), Range("a-zA-Z0-9", 0)))
- text = CharRunUntil("<>")
+ identifier = Merge(And(Chars("a-z", 1, 1), Chars("a-zA-Z0-9", 0)))
+ text = NotChars("<>")
element = Any(text, &tag)
elements = Kleene(element)
//attr := And(identifier, equal, String())
attr = And(WS, identifier, WS, "=", WS, Any(String('"'), String('\'')))
- attrs = Map(Kleene(attr, WS), func(node Node) Node {
- nodes := node.([]Node)
+ attrs = Map(Kleene(attr, WS), func(node interface{}) interface{} {
+ nodes := node.([]interface{})
attr := map[string]string{}
for _, attrNode := range nodes {
- attrNodes := attrNode.([]Node)
+ attrNodes := attrNode.([]interface{})
attr[attrNodes[0].(string)] = attrNodes[2].(string)
}
@@ -39,13 +39,13 @@ var (
)
func init() {
- tag = Map(And(tstart, elements, tend), func(node Node) Node {
- nodes := node.([]Node)
- openTag := nodes[0].([]Node)
+ tag = Map(And(tstart, elements, tend), func(node interface{}) interface{} {
+ nodes := node.([]interface{})
+ openTag := nodes[0].([]interface{})
return Tag{
Name: openTag[1].(string),
Attributes: openTag[2].(map[string]string),
- Body: nodes[1].([]Node),
+ Body: nodes[1].([]interface{}),
}
})