zoukankan      html  css  js  c++  java
  • GO语言AST名词解释

    AST名词解释:

    1.普通Node,不是特定语法结构,属于某个语法结构的一部分

    Comment 表示一行注释 // 或者 / /
    CommentGroup 表示多行注释
    Field 表示结构体中的一个定义或者变量,或者函数签名当中的参数或者返回值
    FieldList 表示以”{}”或者”()”包围的Filed列表

    2.Expression & Types (都划分成Expr接口)

    BadExpr 用来表示错误表达式的占位符
    Ident 比如报名,函数名,变量名
    Ellipsis 省略号表达式,比如参数列表的最后一个可以写成 arg...
    BasicLit 基本字面值,数字或者字符串
    FuncLit 函数定义
    CompositeLit 构造类型,比如{1,2,3,4}
    ParenExpr 括号表达式,被括号包裹的表达式
    SelectorExpr 选择结构,类似于a.b的结构
    IndexExpr 下标结构,类似这样的结构 expr[expr]
    SliceExpr 切片表达式,类似这样 expr[low:mid:high]
    TypeAssertExpr 类型断言类似于 X.(type)
    CallExpr 调用类型,类似于 expr()
    StarExpr 表达式,类似于 *X
    UnaryExpr 一元表达式
    BinaryExpr 二元表达式
    KeyValueExp 键值表达式 key:value
    ArrayType 数组类型
    StructType 结构体类型
    FuncType 函数类型
    InterfaceType 接口类型
    MapType map类型
    ChanType 管道类型

    3.Statements

    BadStmt 错误的语句
    DeclStmt 在语句列表里的申明
    EmptyStmt 空语句
    LabeledStmt 标签语句类似于 indent:stmt
    ExprStmt 包含单独的表达式语句(例如:fmt.Printf())
    SendStmt chan发送语句
    IncDecStmt 自增或者自减语句
    AssignStmt 赋值语句
    GoStmt Go语句
    DeferStmt 延迟语句
    ReturnStmt return 语句
    BranchStmt 分支语句 例如break continue
    BlockStmt 块语句 {} 包裹
    IfStmt If 语句
    CaseClause case 语句
    SwitchStmt switch 语句
    TypeSwitchStmt 类型switch 语句 switch x:=y.(type)
    CommClause 发送或者接受的case语句,类似于 case x <-:
    SelectStmt select 语句
    ForStmt for 循环语句
    RangeStmt range 语句

    4.Declarations

    Spec type
    Import Spec
    Value Spec
    Type Spec
    BadDecl 错误申明
    GenDecl 一般申明(和Spec相关,比如 import “a”,var a,type a)
    FuncDecl 函数申明

    5.Files and Packages

    File 代表一个源文件节点,包含了顶级元素.
    Package 代表一个包,包含了很多文件.

  • 相关阅读:
    WPF ComboBox 控件用法
    WPF 调试办法
    wpf Border 装饰控件用法
    创建型模式:抽象工厂(Abstract Factory)
    创建型模式:工厂方法
    使用FreeSpire.Doc不安装Office组件的情况下操作Word文件
    【算法一】布隆过滤器算法学习附维基百科详细说明PDF文件
    C# 读写锁解决多线程下并发写入文件报异常“文件正在由另一进程使用,因此该进程无法访问此文件”的解决办法
    多线程下System.Threading.Interlocked用法
    WPF程序内嵌CEF框架浏览网站
  • 原文地址:https://www.cnblogs.com/skzxc/p/12944921.html
Copyright © 2011-2022 走看看