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 67125x 67125x 67125x 1x 1x 312352x 312352x 312352x 312352x 19x 19x 312352x 312352x 312352x 1x 1x 975x 975x 975x 975x 1x 1x 1138x 1138x 1x 1x 3385x 3385x 1x 1x 3527x 3527x 1x 1x 720x 720x 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(); } } |