欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

AST 语法树 python ast 语法树解析 - 首先,让我们了解一下 AST 的基本理论? 抽象语法树(AST)或简称语法树(SST)是源代码语法结构的抽象表示。它以树的形式表示编程语言的语法结构,树中的每个节点代表源代码中的一个结构。 与抽象语法树相对的是具体语法树(通常称为分析树)。一般来说,在翻译和编译源代码的过程中,语法分析器会创建分析树。创建 AST 后,在后续处理过程中(如语义分析阶段)会添加一些信息。 可以这样理解,语法树是作为 JavaScript 的编译器或解释器使用的,编译后的 JS 才能真正转换成计算机可识别的机器代码,并最终成功运行。 具体语法树是编译后记录所有细节的树结构,抽象语法树则是具体语法树的简化版,那么相对来说,抽象语法树的运行速度要快得多,比如 ESLint、Webpack 等工具都是使用 AST 来提高性能的,同时,AST 也足以满足这些工具运行时所需的信息。 让我们来看看抽象语法树的结构,举

最编程 2024-07-13 11:46:21
...

      1、词法分析,也叫做扫描scanner。负责读取代码,按照预定的规则合并成唯一标识tokens。同时,它会移除空白符,注释,等。最后,整个代码将被分割进一个tokens列表(或者说一维数组)。当词法分析源代码的时候,它会一个一个字母地读取代码,所以很形象地称之为扫描-scans;当它遇到空格,操作符,或者特殊符号的时候,它会认为一段扫描已经结束

       2、语法分析,也解析器。它会将词法分析出来的数组转化成树形的表达形式并且验证语。当生成树的时候,解析器会删除一些没必要的标识tokens(比如不完整的括号),因此AST不是100%与源码匹配的,但是已经能让我们知道如何处理了。如果解析器100%覆盖所有代码结构生成树叫做CST(具体语法树)

       该在线转换器还可以查看众多的语言编译之后的语法树,如java等,也可查看前端开发必备的Babel、Webpack等工具非常方便

ast语法树 python ast语法树解析_词法分析_03

ast语法树 python ast语法树解析_ast抽象语法树_04

       我们将在AST第二篇中以ESLint举例,代码示例讲解,AST的具体用法,同时推荐一些解析代码的开发工具。

ast语法树 python ast语法树解析_ast抽象语法树_05