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 71129x 71129x 71129x 1x 1x 331669x 331669x 331669x 331669x 24x 24x 331669x 331669x 331669x 1x 1x 1078x 1078x 1078x 1078x 1x 1x 1189x 1189x 1x 1x 3624x 3624x 1x 1x 3847x 3847x 1x 1x 741x 741x 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(); } } |