mirror of
https://github.com/github/codeql.git
synced 2026-02-20 08:53:49 +01:00
39 lines
1012 B
Plaintext
39 lines
1012 B
Plaintext
import codeql.Locations
|
|
import ast.Call
|
|
import ast.Control
|
|
import ast.Constant
|
|
import ast.Expr
|
|
import ast.Method
|
|
import ast.Module
|
|
import ast.Parameter
|
|
import ast.Operation
|
|
import ast.Pattern
|
|
import ast.Statement
|
|
import ast.Variable
|
|
private import ast.internal.AST
|
|
|
|
/**
|
|
* A node in the abstract syntax tree. This class is the base class for all Ruby
|
|
* program elements.
|
|
*/
|
|
class AstNode extends @ast_node {
|
|
AstNode::Range range;
|
|
|
|
AstNode() { range = this }
|
|
|
|
/**
|
|
* Gets the name of a primary CodeQL class to which this node belongs.
|
|
*
|
|
* This predicate always has a result. If no primary class can be
|
|
* determined, the result is `"???"`. If multiple primary classes match,
|
|
* this predicate can have multiple results.
|
|
*/
|
|
string getAPrimaryQlClass() { result = "???" }
|
|
|
|
/** Gets a textual representation of this node. */
|
|
final string toString() { result = range.toString() }
|
|
|
|
/** Gets the location of this node. */
|
|
final Location getLocation() { result = range.getLocation() }
|
|
}
|