美文网首页
part2 初识词法解析

part2 初识词法解析

作者: 牛奶言兼 | 来源:发表于2021-12-12 00:02 被阅读0次

词(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"。

持续更新中

相关文章

  • 数据库中间件 Sharding-JDBC 源码分析 —— SQL

    1. 概述 上篇文章《词法解析》分享了词法解析器 Lexer 是如何解析 SQL 里的词法。本文分享 SQL 解析...

  • JS不知道的那些事

    编译语言源码执行之前三个步骤 分词/词法分析(拆分成词法单元) 解析/词法解析(逐级潜逃生成“抽象语法树”) 代码...

  • Hive源码学习——Driver

    HiveQL解析流程: 1.Hive根据Antlr定义的词法、语法规则完成词法、语法分析将HQL解析为AST Tr...

  • MYC编译器源码之词法分析

    词法解析 词法解析的工作都由Tok类处理,其构造函数接受一个Io对象做文件处理,下面是Tok构造函数的源码: 构造...

  • 一个编译器最简前端的python实现

    一个编译器的前端通常包括词法分析器和语法分析器。在分析过程中,文本输入词法分析器,根据词法规则解析出词法单元。词法...

  • 你不知道的JavaScript —— 作用域是什么

    1.1 编译原理 传统编译步骤 分词/词法分析(拆分成一个个词法单元)——>解析/语法分析(词法单元流转化为抽象语...

  • DOM和BOM

    1、JS的组成部分 ECMA (ECMAScript): js核心,解析器,解析语法,词法 DOM(Docume...

  • 词法语法解析

    熟练掌握词法、语法的解析流程及原理 openGauss在执行SQL语句时,使用flex,bison对语句进行词法分...

  • NLP 句子的语义解析架构

    句子的语义解析架构包含三大部分:词法分析、句法分析和语义分析。 1. 词法分析 这份主要有两个任务:词形的解析和词...

  • 初识Scratch:掌握基本操作(挑战任务解析)

    初识Scratch:掌握基本操作(挑战任务解析) · 视频课程 初识Scratch:掌握基本操作(挑战任务解析) ...

网友评论

      本文标题:part2 初识词法解析

      本文链接:https://www.haomeiwen.com/subject/hterfrtx.html