A world-class math input for the web
1import { CaretInfixParselet, CharToken, TokensTag } from "@caret-js/core";
2import { CaretNode, CaretParser } from "@caret-js/core";
3import { CommaListNode } from "../nodes/commaList";
4// import { FunctionCallFlag } from "./parentheses-infix";
5
6export class CommaListParselet extends CaretInfixParselet {
7 public readonly associativity = "left";
8
9 parse(parser: CaretParser, left: CaretNode): CommaListNode {
10 const token = parser.consume();
11 this.assert(
12 token instanceof CharToken && token.char === ",",
13 "Expected ',' token"
14 );
15
16 const right = parser.parseMinBP(this);
17 return CommaListNode.from([left, right]).addTag(new TokensTag([token]));
18 }
19}