Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 1x 1x 1x 1x 1x 1x 1x 1x 73324x 73324x 73324x 1x 1x 339898x 339898x 339898x 339898x 24x 24x 339898x 339898x 339898x 1x 1x 1117x 1117x 1117x 1117x 1x 1x 1214x 1214x 1x 1x 3735x 3735x 1x 1x 4018x 4018x 1x 1x 808x 808x 1x | import {Position} from "../../position"; import {AbstractToken} from "../1_lexer/tokens/abstract_token"; export class Identifier { private readonly token: AbstractToken; protected readonly filename: string; public constructor(token: AbstractToken, filename: string) { this.token = token; this.filename = filename; } public getName() { let name = this.token.getStr(); // todo, should this be handled in the parser instead? if (name.substr(0, 1) === "!") { name = name.substr(1); } return name; } public equals(id: Identifier): boolean { // note how the boolean condition is evalulated lazily return id.getStart().equals(this.getStart()) && id.getFilename() === this.getFilename(); } public getToken(): AbstractToken { return this.token; } public getFilename(): string { return this.filename; } public getStart(): Position { return this.token.getStart(); } public getEnd(): Position { return this.token.getEnd(); } } |