A world-class math input for the web
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}