├── .travis.yml ├── LICENSE ├── README.md ├── benchmark_test.go ├── fuzz ├── corpus │ ├── test0 │ ├── test1 │ ├── test10 │ ├── test11 │ ├── test12 │ ├── test13 │ ├── test14 │ ├── test15 │ ├── test16 │ ├── test17 │ ├── test18 │ ├── test19 │ ├── test2 │ ├── test20 │ ├── test21 │ ├── test22 │ ├── test23 │ ├── test24 │ ├── test25 │ ├── test26 │ ├── test27 │ ├── test28 │ ├── test29 │ ├── test3 │ ├── test30 │ ├── test31 │ ├── test32 │ ├── test33 │ ├── test34 │ ├── test35 │ ├── test36 │ ├── test37 │ ├── test38 │ ├── test39 │ ├── test4 │ ├── test40 │ ├── test41 │ ├── test42 │ ├── test43 │ ├── test44 │ ├── test45 │ ├── test46 │ ├── test47 │ ├── test48 │ ├── test49 │ ├── test5 │ ├── test50 │ ├── test51 │ ├── test52 │ ├── test53 │ ├── test54 │ ├── test55 │ ├── test56 │ ├── test57 │ ├── test58 │ ├── test59 │ ├── test6 │ ├── test60 │ ├── test61 │ ├── test7 │ ├── test8 │ └── test9 └── fuzz.go ├── go.mod ├── go.sum ├── parser.go ├── parser_test.go ├── pseudo_classes.go ├── selector.go ├── selector_test.go ├── serialize.go ├── serialize_test.go ├── specificity.go ├── specificity_test.go ├── test_resources ├── content.xhtml ├── invalid_selectors.json ├── shakespeare.html └── valid_selectors.json └── w3_test.go /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/README.md -------------------------------------------------------------------------------- /benchmark_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/benchmark_test.go -------------------------------------------------------------------------------- /fuzz/corpus/test0: -------------------------------------------------------------------------------- 1 | address -------------------------------------------------------------------------------- /fuzz/corpus/test1: -------------------------------------------------------------------------------- 1 | * -------------------------------------------------------------------------------- /fuzz/corpus/test10: -------------------------------------------------------------------------------- 1 | p[title] -------------------------------------------------------------------------------- /fuzz/corpus/test11: -------------------------------------------------------------------------------- 1 | address[title="foo"] -------------------------------------------------------------------------------- /fuzz/corpus/test12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/fuzz/corpus/test12 -------------------------------------------------------------------------------- /fuzz/corpus/test13: -------------------------------------------------------------------------------- 1 | [title~="hello world"] -------------------------------------------------------------------------------- /fuzz/corpus/test14: -------------------------------------------------------------------------------- 1 | [lang|="en"] -------------------------------------------------------------------------------- /fuzz/corpus/test15: -------------------------------------------------------------------------------- 1 | [title^="foo"] -------------------------------------------------------------------------------- /fuzz/corpus/test16: -------------------------------------------------------------------------------- 1 | [title$="bar"] -------------------------------------------------------------------------------- /fuzz/corpus/test17: -------------------------------------------------------------------------------- 1 | [title*="bar"] -------------------------------------------------------------------------------- /fuzz/corpus/test18: -------------------------------------------------------------------------------- 1 | .t1:not(.t2) -------------------------------------------------------------------------------- /fuzz/corpus/test19: -------------------------------------------------------------------------------- 1 | div:not(.t1) -------------------------------------------------------------------------------- /fuzz/corpus/test2: -------------------------------------------------------------------------------- 1 | #foo -------------------------------------------------------------------------------- /fuzz/corpus/test20: -------------------------------------------------------------------------------- 1 | li:nth-child(odd) -------------------------------------------------------------------------------- /fuzz/corpus/test21: -------------------------------------------------------------------------------- 1 | li:nth-child(even) -------------------------------------------------------------------------------- /fuzz/corpus/test22: -------------------------------------------------------------------------------- 1 | li:nth-child(-n+2) -------------------------------------------------------------------------------- /fuzz/corpus/test23: -------------------------------------------------------------------------------- 1 | li:nth-child(3n+1) -------------------------------------------------------------------------------- /fuzz/corpus/test24: -------------------------------------------------------------------------------- 1 | li:nth-last-child(odd) -------------------------------------------------------------------------------- /fuzz/corpus/test25: -------------------------------------------------------------------------------- 1 | li:nth-last-child(even) -------------------------------------------------------------------------------- /fuzz/corpus/test26: -------------------------------------------------------------------------------- 1 | li:nth-last-child(-n+2) -------------------------------------------------------------------------------- /fuzz/corpus/test27: -------------------------------------------------------------------------------- 1 | li:nth-last-child(3n+1) -------------------------------------------------------------------------------- /fuzz/corpus/test28: -------------------------------------------------------------------------------- 1 | span:first-child -------------------------------------------------------------------------------- /fuzz/corpus/test29: -------------------------------------------------------------------------------- 1 | span:last-child -------------------------------------------------------------------------------- /fuzz/corpus/test3: -------------------------------------------------------------------------------- 1 | li#t1 -------------------------------------------------------------------------------- /fuzz/corpus/test30: -------------------------------------------------------------------------------- 1 | p:nth-of-type(2) -------------------------------------------------------------------------------- /fuzz/corpus/test31: -------------------------------------------------------------------------------- 1 | p:nth-last-of-type(2) -------------------------------------------------------------------------------- /fuzz/corpus/test32: -------------------------------------------------------------------------------- 1 | p:last-of-type -------------------------------------------------------------------------------- /fuzz/corpus/test33: -------------------------------------------------------------------------------- 1 | p:first-of-type -------------------------------------------------------------------------------- /fuzz/corpus/test34: -------------------------------------------------------------------------------- 1 | p:only-child -------------------------------------------------------------------------------- /fuzz/corpus/test35: -------------------------------------------------------------------------------- 1 | p:only-of-type -------------------------------------------------------------------------------- /fuzz/corpus/test36: -------------------------------------------------------------------------------- 1 | :empty -------------------------------------------------------------------------------- /fuzz/corpus/test37: -------------------------------------------------------------------------------- 1 | div p -------------------------------------------------------------------------------- /fuzz/corpus/test38: -------------------------------------------------------------------------------- 1 | div table p -------------------------------------------------------------------------------- /fuzz/corpus/test39: -------------------------------------------------------------------------------- 1 | div > p -------------------------------------------------------------------------------- /fuzz/corpus/test4: -------------------------------------------------------------------------------- 1 | *#t4 -------------------------------------------------------------------------------- /fuzz/corpus/test40: -------------------------------------------------------------------------------- 1 | p ~ p -------------------------------------------------------------------------------- /fuzz/corpus/test41: -------------------------------------------------------------------------------- 1 | p + p -------------------------------------------------------------------------------- /fuzz/corpus/test42: -------------------------------------------------------------------------------- 1 | li, p -------------------------------------------------------------------------------- /fuzz/corpus/test43: -------------------------------------------------------------------------------- 1 | p +/*This is a comment*/ p -------------------------------------------------------------------------------- /fuzz/corpus/test44: -------------------------------------------------------------------------------- 1 | p:contains("that wraps") -------------------------------------------------------------------------------- /fuzz/corpus/test45: -------------------------------------------------------------------------------- 1 | p:containsOwn("that wraps") -------------------------------------------------------------------------------- /fuzz/corpus/test46: -------------------------------------------------------------------------------- 1 | :containsOwn("inner") -------------------------------------------------------------------------------- /fuzz/corpus/test47: -------------------------------------------------------------------------------- 1 | p:containsOwn("block") -------------------------------------------------------------------------------- /fuzz/corpus/test48: -------------------------------------------------------------------------------- 1 | div:has(#p1) -------------------------------------------------------------------------------- /fuzz/corpus/test49: -------------------------------------------------------------------------------- 1 | div:has(:containsOwn("2")) -------------------------------------------------------------------------------- /fuzz/corpus/test5: -------------------------------------------------------------------------------- 1 | .t1 -------------------------------------------------------------------------------- /fuzz/corpus/test50: -------------------------------------------------------------------------------- 1 | body :has(:containsOwn("2")) -------------------------------------------------------------------------------- /fuzz/corpus/test51: -------------------------------------------------------------------------------- 1 | body :haschild(:containsOwn("2")) -------------------------------------------------------------------------------- /fuzz/corpus/test52: -------------------------------------------------------------------------------- 1 | p:matches([\d]) -------------------------------------------------------------------------------- /fuzz/corpus/test53: -------------------------------------------------------------------------------- 1 | p:matches([a-z]) -------------------------------------------------------------------------------- /fuzz/corpus/test54: -------------------------------------------------------------------------------- 1 | p:matches([a-zA-Z]) -------------------------------------------------------------------------------- /fuzz/corpus/test55: -------------------------------------------------------------------------------- 1 | p:matches([^\d]) -------------------------------------------------------------------------------- /fuzz/corpus/test56: -------------------------------------------------------------------------------- 1 | p:matches(^(0|a)) -------------------------------------------------------------------------------- /fuzz/corpus/test57: -------------------------------------------------------------------------------- 1 | p:matches(^\d+$) -------------------------------------------------------------------------------- /fuzz/corpus/test58: -------------------------------------------------------------------------------- 1 | p:not(:matches(^\d+$)) -------------------------------------------------------------------------------- /fuzz/corpus/test59: -------------------------------------------------------------------------------- 1 | div :matchesOwn(^\d+$) -------------------------------------------------------------------------------- /fuzz/corpus/test6: -------------------------------------------------------------------------------- 1 | p.t1 -------------------------------------------------------------------------------- /fuzz/corpus/test60: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/fuzz/corpus/test60 -------------------------------------------------------------------------------- /fuzz/corpus/test61: -------------------------------------------------------------------------------- 1 | [href#=(^https:\/\/[^\/]*\/?news)] -------------------------------------------------------------------------------- /fuzz/corpus/test7: -------------------------------------------------------------------------------- 1 | div.teST -------------------------------------------------------------------------------- /fuzz/corpus/test8: -------------------------------------------------------------------------------- 1 | .t1.fail -------------------------------------------------------------------------------- /fuzz/corpus/test9: -------------------------------------------------------------------------------- 1 | p.t1.t2 -------------------------------------------------------------------------------- /fuzz/fuzz.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/fuzz/fuzz.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/go.sum -------------------------------------------------------------------------------- /parser.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/parser.go -------------------------------------------------------------------------------- /parser_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/parser_test.go -------------------------------------------------------------------------------- /pseudo_classes.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/pseudo_classes.go -------------------------------------------------------------------------------- /selector.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/selector.go -------------------------------------------------------------------------------- /selector_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/selector_test.go -------------------------------------------------------------------------------- /serialize.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/serialize.go -------------------------------------------------------------------------------- /serialize_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/serialize_test.go -------------------------------------------------------------------------------- /specificity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/specificity.go -------------------------------------------------------------------------------- /specificity_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/specificity_test.go -------------------------------------------------------------------------------- /test_resources/content.xhtml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/test_resources/content.xhtml -------------------------------------------------------------------------------- /test_resources/invalid_selectors.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/test_resources/invalid_selectors.json -------------------------------------------------------------------------------- /test_resources/shakespeare.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/test_resources/shakespeare.html -------------------------------------------------------------------------------- /test_resources/valid_selectors.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/test_resources/valid_selectors.json -------------------------------------------------------------------------------- /w3_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andybalholm/cascadia/HEAD/w3_test.go --------------------------------------------------------------------------------