A world-class math input for the web
at main 19 lines 680 B view raw
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}