diff options
author | Adam Scarr <adam@vektah.net> | 2017-08-06 15:43:23 +1000 |
---|---|---|
committer | Adam Scarr <adam@vektah.net> | 2017-08-06 15:43:23 +1000 |
commit | 8b343d6360d0edc065b9b62ab5e708e907b45a92 (patch) | |
tree | d58b76b21e5a369e25e7c3807f5f466cbcd849ad /examples/html.go | |
parent | 68cde88125e1f016c5706ca8d0b3db6ba06624a2 (diff) |
Clean up Pointer
Diffstat (limited to 'examples/html.go')
-rw-r--r-- | examples/html.go | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/examples/html.go b/examples/html.go index 88a3913..d1a290a 100644 --- a/examples/html.go +++ b/examples/html.go @@ -7,11 +7,7 @@ import ( ) func html(p Pointer) (Node, Pointer) { - opentag := Exact("<") - closetag := Exact(">") - equal := Exact("=") - slash := Exact("/") - identifier := And(Char(Range("a-z")), CharRun(Range("a-zA-Z0-9"))) + identifier := And(Range("a-z", 1, 1), Range("a-zA-Z0-9")) text := CharRunUntil("<>") var tag Parser @@ -19,17 +15,20 @@ func html(p Pointer) (Node, Pointer) { element := Any(text, &tag) elements := Kleene(element) //attr := And(identifier, equal, String()) - attr := And(identifier, equal, Exact(`"test"`)) + attr := And(identifier, "=", `"test"`) attrws := And(attr, WS) attrs := Kleene(attrws) - tstart := And(opentag, identifier, attrs, closetag) - tend := And(opentag, slash, identifier, closetag) + tstart := And("<", identifier, attrs, ">") + tend := And("</", identifier, ">") tag = And(tstart, elements, tend) return element(p) } func main() { - node, _ := html(Input("<h1>hello world</h1>")) - fmt.Printf("%#v\n", node) + result, _, err := ParseString(html, "<h1>hello world</h1>") + if err != nil { + panic(err) + } + fmt.Printf("%#v\n", result) } |