+ "readme": "#CSSwhat [](http://travis-ci.org/fb55/CSSwhat)\n\na CSS selector parser\n\n##Example\n\n```js\nrequire('CSSwhat')('foo[bar]:baz')\n\n~> [ [ { type: 'tag', name: 'foo' },\n { type: 'attribute',\n name: 'bar',\n action: 'exists',\n value: '',\n ignoreCase: false },\n { type: 'pseudo',\n name: 'baz',\n data: null } ] ]\n```\n\n##API\n\n__`CSSwhat(selector, options)` - Parses `str`, with the passed `options`.__\n\nThe function returns a two-dimensional array. The first array represents subselects separated by commas (eg. `sub1, sub2`), the second contains the relevant tokens for that selector. Possible token types are:\n\nname | attributes | example | output\n---- | ---------- | ------- | ------\n`tag`| `name` | `div` | `{ type: 'tag', name: 'div' }`\n`universal`| - | `*` | `{ type: 'universal' }`\n`pseudo`| `name`, `data`|`:name(data)`| `{ type: 'pseudo', name: 'name', data: 'data' }`\n`pseudo`| `name`, `data`|`:name`| `{ type: 'pseudo', name: 'name', data: null }`\n`attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr]`|`{ type: 'attribute', name: 'attr', action: 'exists', value: '', ignoreCase: false }`\n`attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr=val]`|`{ type: 'attribute', name: 'attr', action: 'equals', value: 'val', ignoreCase: false }`\n`attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr^=val]`|`{ type: 'attribute', name: 'attr', action: 'start', value: 'val', ignoreCase: false }`\n`attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr$=val]`|`{ type: 'attribute', name: 'attr', action: 'end', value: 'val', ignoreCase: false }`\n\n//TODO complete list\n\n__Options:__\n\n- `xmlMode`: When enabled, tagnames will be case-sensitive (ie. the output won't be lowercased).\n\n---\n\nLicense: BSD-like\n",
|