Webkit中,有个词法分析器--HTMLTokenizer,她是怎么工作的呢,网页字节流是她的输入,她的输出是一个个的词语Token,比如div,input,img,script等等HTML文件中的标准元素(Element)。
前一篇文章关于DOM的创建里说过,HTML元字符解析器(HTMLMetaChractorParser)和HTML词法分析器(HTMLTokenizer)协同工作,一起分析、解析出词语(HTMLMetaChractorParser取出所有的页面中的字符,并调用HTMLTokenizer的nextToken函数处理它):
下面这张图,就是Tokenizer具体的工作过程,我们看的出来,她是个状态机,先取<,再取>,就表示一个词语(token)结束了,之后进入下一个状态,周而复始。