Skip to content

This site describes solve-engine as it is on main: 2.43.0, which npm does not have yet. npm installs 2.40.0, so a page may show an answer that version does not give yet.

InfixParselet

Defined in: packages/engine/src/parser/Parselet.ts:24

Handles a token appearing after a value.

A binary operator, or anything else that continues an expression already in progress. Its binding power decides how tightly it binds against neighbours.

readonly bindingPower: number;

Defined in: packages/engine/src/parser/Parselet.ts:28

Binding power (precedence), property access avoids vtable dispatch in hot loop


readonly category: string;

Defined in: packages/engine/src/parser/Parselet.ts:26

Diagnostic category for this parselet (e.g. “Arithmetic”, “UoM”)


readonly optional rightAssociative?: boolean;

Defined in: packages/engine/src/parser/Parselet.ts:36

Whether the operator groups from the right (2 ^ 3 ^ 2 is 2 ^ (3 ^ 2)). Absent means left, which is what every operator but exponentiation wants. Read by parseRightOperand, and reported by ParseletRegistry.getAllInfix so a precedence table built from the registry says what the parser does.

parse(
parser,
left,
token,
builder
): void;

Defined in: packages/engine/src/parser/Parselet.ts:37

ParameterType
parserPrecedenceParser
leftToken
tokenToken
builderBytecodeBuilder

void