词(token),语言中的最小单元,由字符集(characters)组成。
词(token)一般也是按照正则表达式进行设计,即有明确的终止字符,如空格、制表符等。但词自身需要表达空格、制表符之类的特殊字符,可以设计转义字符的存在,如常见的"\n"表示换行符,"\t"表示制表符,还有较为语言相关的如CSV的一条说明——列内容如存在半角引号(即"),替换成半角双引号("")转义,即用半角引号(即"")将该字段值包含起来。
词(token)在不同的语言中分类不一样,在编程语言中,词一般都有字符串的概念,如C++中,大家熟知的"this is a string"、"this is other string \t\n"等均是一个字符串,在语言词法结构中,字符串也只是一个词(token),所以在编程语言解析的第一步词法分析中,会对词(token)加上类型属性,如:number、string、identifier、keyword等,或者更宽泛一些的类型如:lexical、identifier、keyword。第二步句法分析时,通过各类型词(token)的排列顺序,判断句法类型,如:c++的语句”int a = 0;”,在词法分析时,可能会解析为int(kw)->a(id)->=(punctuator)->0(lexical)->;(punctuator)【仅做说明,待更新为clang的token标记】,再句法分析时,通过对kw-id-=-lexical-;的词组(tokens)判断为变量声明语句,引入变量实体(entity)a,也就是需要创建符号"a"。
持续更新中
网友评论