package com.semmle.js.ast; import com.semmle.ts.ast.INodeWithSymbol; import com.semmle.ts.ast.ITypeExpression; /** * An identifier. * * Identifiers can either be variable declarations (like x in var x;), * variable references (like x in x = 42), property names * (like f in e.f), statement labels (like l in * l: while(true);), or statement label references (like l in * break l;). */ public class Identifier extends Expression implements IPattern, ITypeExpression, INodeWithSymbol { private final String name; private int symbol = -1; public Identifier(SourceLocation loc, String name) { super("Identifier", loc); this.name = name; } @Override public A accept(Visitor v, Q q) { return v.visit(this, q); } /** * The name of this identifier. */ public String getName() { return name; } @Override public int getSymbol() { return symbol; } @Override public void setSymbol(int symbol) { this.symbol = symbol; } }