tom-weatherhead/thaw-grammar

View on GitHub
src/languages/minimal/domain-object-model/global-info.ts

Summary

Maintainability
A
0 mins
Test Coverage
// tom-weatherhead/thaw-grammar/src/languages/minimal/domain-object-model/global-info.ts

import { IParser, ITokenizer } from 'thaw-interpreter-types';

import { GlobalInfoBase } from '../../../common/domain-object-model/global-info-base';

export class MinimalLanguageGlobalInfo extends GlobalInfoBase<number> {
    private readonly trueValueForAccessor = 1;
    private readonly falseValueForAccessor = 0;

    constructor(
        options: {
            parser?: IParser;
            tokenizer?: ITokenizer;
        } = {}
    ) {
        super(options);
    }

    public get falseValue(): number {
        return this.falseValueForAccessor;
    }

    public get trueValue(): number {
        return this.trueValueForAccessor;
    }

    public override valueIsFalse(value: number): boolean {
        return value === this.falseValue;
    }

    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    public valueIsInteger(value: number): boolean {
        return true;
    }

    public valueAsInteger(value: number): number {
        return value;
    }

    public integerAsValue(value: number): number {
        return value;
    }
}