Parsing an expression
A parser can convert a string to some data type. The first guess of the type of a parser would be:
type Parser<T> = (source: string) => T;
Since we will also use a parser to parse a part of the source. For instance, when parsing a factorial, we first parse the operand (which hopefully has one character remaining, the exclamation mark) and then parse the exclamation mark. Thus, a parser should return the resulting data and the remaining source:
type Parser<T> = (source: string) => [T, string];
A constant (such as 5.2) and a variable (5:2) both start with a number. Because of that, a parser should return an array with all options:
type Parser<T> = (source: string) => [T, string][];
To demonstrate how this works, imagine that there ...
Get TypeScript: Modern JavaScript Development now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.