A world-class math input for the web
at main 15 lines 553 B view raw
1import { CaretParser, CaretLeafParselet, TokensTag } from "@caret-js/core"; 2import { FractionToken } from "../tokens/fraction"; 3import { DivideNode } from "../nodes/divide"; 4 5export class FractionParselet extends CaretLeafParselet { 6 parse(parser: CaretParser): DivideNode { 7 const token = parser.consume(); 8 this.assert(token instanceof FractionToken, "Expected FractionToken"); 9 10 return DivideNode.from( 11 parser.parseSubStrand(token.numerator), 12 parser.parseSubStrand(token.denominator) 13 ).addTag(new TokensTag([token])); 14 } 15}