A world-class math input for the web
at main 21 lines 572 B view raw
1import { 2 CaretLeafParselet, 3 CaretParser, 4 CharToken, 5 TokensTag, 6} from "@caret-js/core"; 7import { VariableNode } from "../nodes/variable"; 8 9export class VariableParselet extends CaretLeafParselet { 10 parse(parser: CaretParser): VariableNode { 11 const token = parser.consume(); 12 this.assert( 13 token instanceof CharToken && 14 ((token.char >= "a" && token.char <= "z") || 15 (token.char >= "A" && token.char <= "Z")), 16 "Expected CharToken for variable" 17 ); 18 19 return VariableNode.from(token.char).addTag(new TokensTag([token])); 20 } 21}