Class variables boilerplate code

This commit is contained in:
Arthur Baars
2021-01-12 16:52:36 +01:00
parent 341bc5c888
commit a07e0fb0f7
2 changed files with 43 additions and 0 deletions

View File

@@ -95,6 +95,13 @@ class InstanceVariable extends Variable, TInstanceVariable {
final override InstanceVariableAccess getAnAccess() { result.getVariable() = this }
}
/** A class variable. */
class ClassVariable extends Variable, TClassVariable {
override ClassVariable::Range range;
final override ClassVariableAccess getAnAccess() { result.getVariable() = this }
}
/** An access to a variable. */
class VariableAccess extends Expr {
override VariableAccess::Range range;
@@ -213,3 +220,12 @@ class InstanceVariableAccess extends VariableAccess, @token_instance_variable {
final override string getAPrimaryQlClass() { result = "InstanceVariableAccess" }
}
/** An access to a class variable. */
class ClassVariableAccess extends VariableAccess, @token_class_variable {
final override ClassVariableAccess::Range range;
/** Gets the variable this identifier refers to. */
final override ClassVariable getVariable() { result = range.getVariable() }
final override string getAPrimaryQlClass() { result = "ClassVariableAccess" }
}