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