16 lines
560 B
TypeScript
16 lines
560 B
TypeScript
|
import { Position } from '../position.class.js';
|
||
|
|
||
|
export class IdentifierState {
|
||
|
private constructor(public value: string, public active: boolean, public start: Position) {
|
||
|
}
|
||
|
|
||
|
public duplicate(): IdentifierState {
|
||
|
return new IdentifierState(this.value, this.active, this.start.duplicate());
|
||
|
}
|
||
|
|
||
|
public static start(position: Position): IdentifierState {
|
||
|
return new IdentifierState('', true, position.duplicate());
|
||
|
}
|
||
|
|
||
|
public static none: IdentifierState = new IdentifierState(null, false, Position.none.duplicate());
|
||
|
}
|