tom-weatherhead/thaw-grammar

View on GitHub
src/languages/clu/domain-object-model/function-definition-base.ts

Summary

Maintainability
A
0 mins
Test Coverage
// clu/domain-object-model/function-definition-base.ts

import { Name } from 'thaw-interpreter-core';

// import { IExpression } from '../../../common/domain-object-model/iexpression';
//
// import { IVariable } from '../../../common/domain-object-model/variable';

import {
    ICLUEnvironmentFrame,
    ICLUExpression,
    // ICLUFunctionDefinition,
    ICLUGlobalInfo,
    // ICluster,
    ICLUValue
} from './interfaces/ivalue';

export abstract class CLUFunctionDefinitionBase implements ICLUExpression {
    protected constructor(
        public readonly functionName: Name /*,
    public readonly argList: IVariable<ICLUValue>[],
    public readonly body: IExpression<ICLUValue> */
    ) {}

    // public abstract evaluate(
    //     localEnvironment: ICLUEnvironmentFrame,
    //     cluster: ICluster | undefined,
    //     globalInfo: ICLUGlobalInfo
    // ): ICLUValue;
    public abstract evaluate(
        globalInfo: ICLUGlobalInfo,
        localEnvironment?: ICLUEnvironmentFrame,
        options?: unknown
    ): ICLUValue;
}