tom-weatherhead/thaw-grammar

View on GitHub
src/languages/lisp/domain-object-model/null-sexpression.ts

Summary

Maintainability
A
0 mins
Test Coverage
F
57%
// tom-weatherhead/thaw-grammar/src/languages/lisp/domain-object-model/null-sexpression.ts

import { SExpressionBase } from './sexpression-base';

const typenameLISPNull = 'NullSExpression';

export function isNullSExpression(obj: unknown): obj is NullSExpression {
    const value = obj as NullSExpression;

    return typeof value !== 'undefined' && value.typename === typenameLISPNull;
}

export class NullSExpression extends SExpressionBase {
    public readonly typename: string = typenameLISPNull;

    public toString(): string {
        return '()';
    }

    public override isNull(): boolean {
        return true;
    }

    public override isEqualTo(other: unknown): boolean {
        return isNullSExpression(other);
    }
}