UNPKG

@mojir/lits

Version:

Lits is a pure functional programming language implemented in TypeScript

20 lines (19 loc) 1.55 kB
import type { OperatorToken, SourceCodeInfo } from '../tokenizer/token'; import type { AstNode, BindingTarget, NormalBuiltinSymbolNode, NormalExpressionNodeWithName, SymbolNode, UserDefinedSymbolNode } from './types'; import type { ParserContext } from './ParserContext'; export declare const exponentiationPrecedence = 12; export declare const binaryFunctionalOperatorPrecedence = 3; export declare const conditionalOperatorPrecedence = 1; export declare function withSourceCodeInfo<T extends AstNode | BindingTarget>(node: T, sourceCodeInfo: SourceCodeInfo | undefined): T; export declare function stringToSymbolNode(value: string, sourceCodeInfo: SourceCodeInfo | undefined): SymbolNode; export declare function stringFromQuotedSymbol(value: string): string; /** * Extract the symbol name from any symbol node type. * UserDefinedSymbolNode: node[1] is the string name * NormalBuiltinSymbolNode: node[1] is an index, need reverse lookup * SpecialBuiltinSymbolNode: node[1] is an index, need reverse lookup */ export declare function getSymbolName(symbol: SymbolNode): string; export declare function createNamedNormalExpressionNode(symbolNode: NormalBuiltinSymbolNode | UserDefinedSymbolNode, params: AstNode[], sourceCodeInfo: SourceCodeInfo | undefined): NormalExpressionNodeWithName; export declare function isAtExpressionEnd(ctx: ParserContext): boolean; export declare function fromBinaryOperatorToNode(operator: OperatorToken, symbolNode: SymbolNode, left: AstNode, right: AstNode, sourceCodeInfo: SourceCodeInfo | undefined): AstNode;