<commit_before>## Introduction

This document specifies the WebAssembly AST node types.
Spec directly reflects [AstSemantics](https://github.com/WebAssembly/design/blob/master/AstSemantics.md)
document.

## Types

[types](https://github.com/WebAssembly/design/blob/master/AstSemantics.md#types)

## Objects

[module](https://github.com/WebAssembly/design/blob/master/Modules.md)

```js
{
  kind: 'assert_invalid',
  module: <module>,
  failure: <literal>
}
```

```js
{
  kind: 'assert_return',
  invoke: <invoke>,
  expr: <expr>
}
```

```js
{
  kind: 'assert_return_nan',
  invoke: <invoke>
}
```

```js
{
  kind: 'assert_trap',
  invoke: <invoke>,
  failure: <literal>
}
```

```js
{
  kind: 'binop',
  type: <type>,
  operator: String,
  left: Object,
  right: Object
}
```

```js
{
  kind: 'block',
  id: <literal> | <identifier> | null,
  body: [ <expr> ]
}
```

```js
{
  kind: 'br',
  id: <literal> | <identifier> | null,
  expr: <expr> | null
}
```

```js
{
  kind: 'br_if',
  id: <literal> | <identifier> | null,
  test: <expr>,
  expr: <expr> | null
}
```

```js
{
  kind: 'br_table',
  expr: [ <literal> | <identifier> | null ],
  body: [ <expr> ]
}
```

```js
{
  kind: 'call',
  id: <literal> | <identifier> | null,
  expr: <expr>
}
```

```js
{
  kind: 'call_import',
  id: <literal> | <identifier> | null,
  expr: <expr>
}
```

```js
{
  kind: 'call_indirect',
  id: <literal> | <identifier> | null,
  expr: <expr>
}
```

```js
{
  kind: 'const',
  type: <type>,
  init: <value>
}
```

```js
{
  kind: 'cvtop',
  type: <type>,
  type1: <type>,
  operator: <cvtop>,
  expr: <expr>
}
```

```js
{
  kind: 'else',
  id: <literal> | <identifier> | null,
  body: [ <expr> ]
}
```

```js
{
  kind: 'export',
  name: <string>,
  id: <literal> | <identifier> | null
}
```

```js
{
  kind: 'func',
  id: <literal> | <identifier> | null,
  param: <expr>,
  result: <expr>,
  body: [ <expr> ]
}
```

```js
{
  kind: 'get_local',
  id: <literal> | <identifier> | null
}
```

```js
{
  kind: 'grow_memory',
  expr: <expr>
}
```

```js
{
  kind: 'identifier',
  id: String
}
```

```js
{
  kind: 'if',
  test: <expr>,
  consequent: <expr>,
  alternate: <expr> | null
}
```

```js
{
  kind: 'import',
  id: <literal> | <identifier> | null,
  modName: <literal> | <identifier> | null,
  funcName: <literal> | <identifier> | null,
  params: [ <expr> ]
}
```

```js
{
  kind: 'invoke',
  name: <literal> | <identifier>,
  body: [ <expr> ]
}
```<commit_msg>modName and  funcName should be literals<commit_after>## Introduction

This document specifies the WebAssembly AST node types.
Spec directly reflects [AstSemantics](https://github.com/WebAssembly/design/blob/master/AstSemantics.md)
document.

## Types

[types](https://github.com/WebAssembly/design/blob/master/AstSemantics.md#types)

## Objects

[module](https://github.com/WebAssembly/design/blob/master/Modules.md)

```js
{
  kind: 'assert_invalid',
  module: <module>,
  failure: <literal>
}
```

```js
{
  kind: 'assert_return',
  invoke: <invoke>,
  expr: <expr>
}
```

```js
{
  kind: 'assert_return_nan',
  invoke: <invoke>
}
```

```js
{
  kind: 'assert_trap',
  invoke: <invoke>,
  failure: <literal>
}
```

```js
{
  kind: 'binop',
  type: <type>,
  operator: String,
  left: Object,
  right: Object
}
```

```js
{
  kind: 'block',
  id: <literal> | <identifier> | null,
  body: [ <expr> ]
}
```

```js
{
  kind: 'br',
  id: <literal> | <identifier> | null,
  expr: <expr> | null
}
```

```js
{
  kind: 'br_if',
  id: <literal> | <identifier> | null,
  test: <expr>,
  expr: <expr> | null
}
```

```js
{
  kind: 'br_table',
  expr: [ <literal> | <identifier> | null ],
  body: [ <expr> ]
}
```

```js
{
  kind: 'call',
  id: <literal> | <identifier> | null,
  expr: <expr>
}
```

```js
{
  kind: 'call_import',
  id: <literal> | <identifier> | null,
  expr: <expr>
}
```

```js
{
  kind: 'call_indirect',
  id: <literal> | <identifier> | null,
  expr: <expr>
}
```

```js
{
  kind: 'const',
  type: <type>,
  init: <value>
}
```

```js
{
  kind: 'cvtop',
  type: <type>,
  type1: <type>,
  operator: <cvtop>,
  expr: <expr>
}
```

```js
{
  kind: 'else',
  id: <literal> | <identifier> | null,
  body: [ <expr> ]
}
```

```js
{
  kind: 'export',
  name: <string>,
  id: <literal> | <identifier> | null
}
```

```js
{
  kind: 'func',
  id: <literal> | <identifier> | null,
  param: <expr>,
  result: <expr>,
  body: [ <expr> ]
}
```

```js
{
  kind: 'get_local',
  id: <literal> | <identifier> | null
}
```

```js
{
  kind: 'grow_memory',
  expr: <expr>
}
```

```js
{
  kind: 'identifier',
  id: String
}
```

```js
{
  kind: 'if',
  test: <expr>,
  consequent: <expr>,
  alternate: <expr> | null
}
```

```js
{
  kind: 'import',
  id: <literal> | <identifier> | null,
  modName: <literal>,
  funcName: <literal>,
  params: [ <expr> ]
}
```

```js
{
  kind: 'invoke',
  name: <literal> | <identifier>,
  body: [ <expr> ]
}
```
{'fraction_non_alphanumeric': 0.23676139848701697, 'fraction_numerical': 0.0004089143324473523, 'mean_word_length': 3.475754803293687, 'pattern_counts': {'":': 0, '<': 127, '<?xml version=': 0, '>': 127, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '26721', 'n_tokens_mistral': 2134, 'n_tokens_neox': 2027, 'n_words': 449}