meta-log-db
Version:
Native database package for Meta-Log (ProLog, DataLog, R5RS)
54 lines • 1.28 kB
TypeScript
/**
* R5RS Scheme Parser
* Parses Scheme files and extracts function definitions
*/
export interface SchemeExpression {
type: 'atom' | 'list' | 'lambda' | 'define' | 'if' | 'quote' | 'call';
value?: any;
children?: SchemeExpression[];
name?: string;
params?: string[];
body?: SchemeExpression;
}
/**
* R5RS Scheme Parser
*/
export declare class R5RSParser {
/**
* Parse Scheme file content
*/
static parse(content: string): SchemeExpression[];
/**
* Tokenize Scheme code
*/
private static tokenize;
/**
* Parse a single expression
*/
private static parseExpression;
/**
* Parse a list expression
*/
private static parseList;
/**
* Parse define expression
*/
private static parseDefine;
/**
* Parse lambda expression
*/
private static parseLambda;
/**
* Parse atom
*/
private static parseAtom;
/**
* Extract function definitions from parsed expressions
*/
static extractFunctions(expressions: SchemeExpression[]): Map<string, SchemeExpression>;
/**
* Extract lambda expressions
*/
static extractLambdas(expressions: SchemeExpression[]): SchemeExpression[];
}
//# sourceMappingURL=parser.d.ts.map