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 72224x 72224x 72224x 1x 1x 338061x 338061x 338061x 338061x 24x 24x 338061x 338061x 338061x 1x 1x 1092x 1092x 1092x 1092x 1x 1x 1199x 1199x 1x 1x 3689x 3689x 1x 1x 3895x 3895x 1x 1x 805x 805x 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(); } } |