Nathan,
congratulations for the code and the achievements. The code is clear
and well written. The video is good too.

This is a minimal list of minor problems I quickly noticed in the code:

1) the range [\u00c0-\uffff] is incorrect, it should be [\u00a0-\uffff]

characters [a-zA-Z0-9] and ISO 10646 characters U+00A0 and higher

2) there is no distinction between syntax errors and non-matching nodes

examples that should return "SYNTAX_ERR" instead of no matches (empty
result set):

  a[href=#]
  img[class=8mm]

3) identifiers are not parsed correctly, needs a more specific RegExp

Related to points 1,3 the CSS specifications says:

***
In CSS, identifiers (including element names, classes, and IDs in
selectors) can contain only the characters [a-zA-Z0-9] and ISO 10646
characters U+00A0 and higher, plus the hyphen (-) and the underscore
(_); they cannot start with a digit, two hyphens, or a hyphen followed
by a digit. Identifiers can also contain escaped characters and any
ISO 10646 character as a numeric code (see next item). For instance,
the identifier "B&W?" may be written as "B\&W\?" or "B\26 W\3F".
***

so for CSS identifiers I use the following RegExp:

    identifier = '(?:-?[_a-zA-Z]{1}[-\\w]*|[^\\x00-\\xa0]+|\\\\.+)+'

this should be quite in line with the complex specifications requirements.

I hope this can help in case you want to improve your project.

Again, keep up with the good coding !


--
Diego


On Sun, Oct 2, 2011 at 11:40 PM, nathanJsweet <[email protected]> wrote:
> Hey all,
> I just posted a blog post on how to parse a css selector as part of a
> series I'm doing on building a selector engine. I would recommend you
> watch it only if you're a beginner or intermediate developer (advanced
> developers will likely not learn anything new). It can be found at
> http://nathansweet.me/selector-engine-css-parsing. Somewhat related,
> the code for the selector engine that I built for this blog series I'm
> doing can be found on my github account at 
> https://github.com/nathanjsweet/Punch.
> If anybody is interested in offering me a review I would appreciate
> it, but I by no means expect it for the following reasons: 1. The code
> will never see the light of day, it was purely an academic exercise 2.
> It is incomplete and will remain so (it doesn't fully mimic the full
> range of possible selectors) 3. It doesn't take querySelector into
> account 4. It takes very few cross-browser bugs into account. For what
> is there though, I would be interested in somebody's opinion. Finally,
> I've updated a test suite for selectors for this project that can be
> found at http://nathansweet.me/queryselectorall-rundown. I will be
> continually updating that page. Thanks in advance.
> -Nate
>
> --
> To view archived discussions from the original JSMentors Mailman list: 
> http://www.mail-archive.com/[email protected]/
>
> To search via a non-Google archive, visit here: 
> http://www.mail-archive.com/[email protected]/
>
> To unsubscribe from this group, send email to
> [email protected]
>

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/

To unsubscribe from this group, send email to
[email protected]

Reply via email to