A world-class math input for the web
at main 18 lines 614 B view raw
1import { CaretInfixParselet, CharToken, TokensTag } from "@caret-js/core"; 2import { CaretNode, CaretParser } from "@caret-js/core"; 3import { SubtractNode } from "../nodes/subtract"; 4 5export class SubtractParselet extends CaretInfixParselet { 6 public readonly associativity = "left"; 7 8 parse(parser: CaretParser, left: CaretNode): SubtractNode { 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 SubtractNode.from(left, right).addTag(new TokensTag([token])); 17 } 18}