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 214662x 214662x 214662x 1x 1x 208471x 208471x 208471x 208471x 11x 11x 208471x 208471x 208471x 1x 1x 819x 819x 819x 819x 1x 1x 967x 967x 1x 1x 2979x 2979x 1x 1x 3027x 3027x 1x 1x 667x 667x 1x | import {Position} from "../../position"; import {Token} from "../1_lexer/tokens/_token"; export class Identifier { private readonly token: Token; protected readonly filename: string; public constructor(token: Token, 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(): Token { return this.token; } public getFilename(): string { return this.filename; } public getStart(): Position { return this.token.getStart(); } public getEnd(): Position { return this.token.getEnd(); } } |