| 748 | } |
| 749 | |
| 750 | export function inlineTable( |
| 751 | scanner: Scanner, |
| 752 | ): ParseResult<Record<string, unknown>> { |
| 753 | scanner.nextUntilChar(); |
| 754 | if (scanner.char(1) === "}") { |
| 755 | scanner.next(2); |
| 756 | return success({ __proto__: null }); |
| 757 | } |
| 758 | const pairs = surround("{", join(pair, ","), "}")(scanner); |
| 759 | if (!pairs.ok) return failure(); |
| 760 | let table = { __proto__: null } as Record<string, unknown>; |
| 761 | for (const pair of pairs.body) { |
| 762 | table = deepMerge(table, pair); |
| 763 | } |
| 764 | return success(table); |
| 765 | } |
| 766 | |
| 767 | export const value = or([ |
| 768 | multilineBasicString, |