Making a rule like this recursive is non-idiomatic PEG.js. The rule really expresses two ideas:

  1. An assignment is composed of `column`, `"="` and `ex`.
  2. Multiple assignments are separated by `","`.

I'd separate these ideas and also replace the recursion by iteration (`*`):

```
assign
  = column "=" ex

set
  = assign ("," assign)*
```

There are more examples of this pattern in the grammar (the `string` rule is probably the worst in terms of readability).