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