ESTree中的抽象语法树是用什么语言描述的?

What language is used to describe an Abstract Syntax Tree in ESTree?

我指的是 ECMAScript 2015 的 ESTree 文档 here

例如,它使用以下语法:

extend interface Program {
    sourceType: "script" | "module";
    body: [ Statement | ModuleDeclaration ];
}

interface ForOfStatement <: ForInStatement {
    type: "ForOfStatement";
}

这种 AST 表示是什么语言?我们在哪里可以阅读用于描述 AST 的规范或所用自定义格式的解释?

正如Bergi, the README指出的那样

The spec uses a custom syntax to describe its structures.

es5.md 中描述了核心模型,包含理解更高规范 (ES2015+) 中描述的扩展所需的大部分基础知识。