A world-class math input for the web
at main 20 lines 623 B view raw
1import { 2 CaretParser, 3 CaretNode, 4 CaretLeafParselet, 5 TokensTag, 6} from "@caret-js/core"; 7import { RadicalToken } from "../tokens/radical"; 8import { RadicalNode } from "../nodes/radical"; 9 10export class RadicalParselet extends CaretLeafParselet { 11 parse(parser: CaretParser): CaretNode { 12 const token = parser.consume(); 13 this.assert(token instanceof RadicalToken, "Expected RadicalToken"); 14 15 const index = token.index ? parser.parseSubStrand(token.index) : null; 16 const radicand = parser.parseSubStrand(token.radicand); 17 18 return RadicalNode.from(radicand, index).addTag(new TokensTag([token])); 19 } 20}