mirror of
https://github.com/github/codeql.git
synced 2026-02-20 00:43:44 +01:00
AST: add begin expressions
This commit is contained in:
@@ -36,7 +36,21 @@ class EmptyStmt extends Stmt, @token_empty_statement {
|
||||
}
|
||||
|
||||
/**
|
||||
* An `BEGIN` block.
|
||||
* A `begin` statement.
|
||||
* ```rb
|
||||
* begin
|
||||
* puts "hello world"
|
||||
* end
|
||||
* ```
|
||||
*/
|
||||
class BeginExpr extends BodyStatement, @begin {
|
||||
final override Begin::Range range;
|
||||
|
||||
final override string getAPrimaryQlClass() { result = "BeginExpr" }
|
||||
}
|
||||
|
||||
/**
|
||||
* A `BEGIN` block.
|
||||
* ```rb
|
||||
* BEGIN { puts "starting ..." }
|
||||
* ```
|
||||
|
||||
@@ -90,16 +90,6 @@ module ParenthesizedExpr {
|
||||
}
|
||||
}
|
||||
|
||||
module BeginBlock {
|
||||
class Range extends StmtSequence::Range, @begin_block {
|
||||
final override Generated::BeginBlock generated;
|
||||
|
||||
final override Stmt getStmt(int n) { result = generated.getChild(n) }
|
||||
|
||||
final override string toString() { result = "BEGIN { ... }" }
|
||||
}
|
||||
}
|
||||
|
||||
module ThenExpr {
|
||||
class Range extends StmtSequence::Range, @then {
|
||||
final override Generated::Then generated;
|
||||
|
||||
@@ -17,6 +17,26 @@ module EmptyStmt {
|
||||
}
|
||||
}
|
||||
|
||||
module Begin {
|
||||
class Range extends BodyStatement::Range, @begin {
|
||||
final override Generated::Begin generated;
|
||||
|
||||
final override Generated::AstNode getChild(int n) { result = generated.getChild(n) }
|
||||
|
||||
final override string toString() { result = "begin ... " }
|
||||
}
|
||||
}
|
||||
|
||||
module BeginBlock {
|
||||
class Range extends StmtSequence::Range, @begin_block {
|
||||
final override Generated::BeginBlock generated;
|
||||
|
||||
final override Stmt getStmt(int n) { result = generated.getChild(n) }
|
||||
|
||||
final override string toString() { result = "BEGIN { ... }" }
|
||||
}
|
||||
}
|
||||
|
||||
module EndBlock {
|
||||
class Range extends StmtSequence::Range, @end_block {
|
||||
final override Generated::EndBlock generated;
|
||||
|
||||
Reference in New Issue
Block a user