Skip to content

Commit 578894f

Browse files
committed
feat(ast): Update Calls and Outputs
1 parent d31e6a8 commit 578894f

File tree

3 files changed

+56
-73
lines changed

3 files changed

+56
-73
lines changed

ql/lib/codeql/bicep/ast/Calls.qll

Lines changed: 44 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ private import internal.CallExpression
77
private import internal.Parameter
88
private import internal.Parameters
99
private import internal.ParameterDeclaration
10+
private import internal.OutputDeclaration
1011
private import internal.UserDefinedFunction
1112

1213
abstract class Callable extends Expr {
@@ -29,109 +30,84 @@ abstract class Callable extends Expr {
2930
/**
3031
* A CallExpression expression in the AST.
3132
*/
32-
class CallExpression extends Callable instanceof CallExpressionImpl {
33-
override Idents getIdentifier() {
34-
result = CallExpressionImpl.super.getIdentifier()
35-
}
36-
37-
Expr getArgument(int index) {
38-
result = this.getDeclaredArguments().getArgument(index)
39-
}
40-
41-
Expr getArguments() {
42-
result = this.getDeclaredArguments().getArguments()
43-
}
44-
45-
Arguments getDeclaredArguments() {
46-
result = CallExpressionImpl.super.getArguments()
47-
}
48-
}
33+
class CallExpression extends Expr instanceof CallExpressionImpl {
34+
Idents getIdentifier() { result = CallExpressionImpl.super.getIdentifier() }
35+
36+
string getName() { result = this.getIdentifier().getName() }
4937

38+
Expr getArgument(int index) { result = this.getDeclaredArguments().getArgument(index) }
39+
40+
Expr getArguments() { result = this.getDeclaredArguments().getArguments() }
41+
42+
Arguments getDeclaredArguments() { result = CallExpressionImpl.super.getArguments() }
43+
}
5044

5145
/**
5246
* A Arguments unknown AST node.
5347
*/
5448
class Arguments extends AstNode instanceof ArgumentsImpl {
49+
Expr getArgument(int index) { result = ArgumentsImpl.super.getArgument(index) }
5550

56-
Expr getArgument(int index) {
57-
result = ArgumentsImpl.super.getArgument(index)
58-
}
59-
60-
Expr getArguments() {
61-
result = ArgumentsImpl.super.getArguments()
62-
}
51+
Expr getArguments() { result = ArgumentsImpl.super.getArguments() }
6352
}
6453

6554
/**
6655
* A Parameter unknown AST node.
6756
*/
6857
class Parameter extends AstNode instanceof ParameterImpl {
58+
Idents getName() { result = ParameterImpl.super.getName() }
6959

70-
Idents getName() {
71-
result = ParameterImpl.super.getName()
72-
}
73-
74-
Type getType() {
75-
result = ParameterImpl.super.getType()
76-
}
60+
Type getType() { result = ParameterImpl.super.getType() }
7761
}
7862

7963
/**
8064
* A Parameters unknown AST node.
8165
*/
8266
class Parameters extends AstNode instanceof ParametersImpl {
83-
Parameter getParameter(int index) {
84-
result = ParametersImpl.super.getParameter(index)
85-
}
67+
Parameter getParameter(int index) { result = ParametersImpl.super.getParameter(index) }
8668
}
8769

88-
8970
/**
9071
* A ParameterDeclaration unknown AST node.
9172
*/
92-
class ParameterDeclaration extends AstNode instanceof ParameterDeclarationImpl {
93-
Identifier getName() {
94-
result = ParameterDeclarationImpl.super.getName()
95-
}
96-
97-
Type getType() {
98-
result = ParameterDeclarationImpl.super.getType()
99-
}
100-
101-
Expr getDefaultValue() {
102-
result = ParameterDeclarationImpl.super.getDefaultValue()
103-
}
73+
class ParameterDeclaration extends AstNode instanceof ParameterDeclarationImpl {
74+
Identifier getIdentifier() { result = ParameterDeclarationImpl.super.getName() }
75+
76+
string getName() { result = this.getIdentifier().getName() }
77+
78+
Type getType() { result = ParameterDeclarationImpl.super.getType() }
79+
80+
Expr getDefaultValue() { result = ParameterDeclarationImpl.super.getDefaultValue() }
81+
}
82+
83+
/**
84+
* A OutputDeclaration unknown AST node.
85+
*/
86+
class OutputDeclaration extends AstNode instanceof OutputDeclarationImpl {
87+
Identifier getIdentifier() { result = OutputDeclarationImpl.super.getIdentifier() }
88+
89+
string getName() { result = this.getIdentifier().getName() }
90+
91+
Type getType() { result = OutputDeclarationImpl.super.getType() }
92+
93+
Expr getValue() { result = OutputDeclarationImpl.super.getValue() }
10494
}
10595

10696
/**
10797
* A UserDefinedFunction unknown AST node.
10898
*/
10999
class UserDefinedFunction extends AstNode instanceof UserDefinedFunctionImpl {
110-
Identifier getIdentifier() {
111-
result = UserDefinedFunctionImpl.super.getName()
112-
}
100+
Identifier getIdentifier() { result = UserDefinedFunctionImpl.super.getName() }
113101

114-
string getName() {
115-
result = this.getIdentifier().getName()
116-
}
102+
string getName() { result = this.getIdentifier().getName() }
117103

118-
Type getReturnType() {
119-
result = UserDefinedFunctionImpl.super.getReturnType()
120-
}
104+
Type getReturnType() { result = UserDefinedFunctionImpl.super.getReturnType() }
121105

122-
Parameters getDeclaredParameters() {
123-
result = UserDefinedFunctionImpl.super.getParameters()
124-
}
106+
Parameters getDeclaredParameters() { result = UserDefinedFunctionImpl.super.getParameters() }
125107

126-
Parameter getParameters() {
127-
result = this.getDeclaredParameters().getParameter(_)
128-
}
108+
Parameter getParameters() { result = this.getDeclaredParameters().getParameter(_) }
129109

130-
Parameter getParameter(int index) {
131-
result = this.getDeclaredParameters().getParameter(index)
132-
}
110+
Parameter getParameter(int index) { result = this.getDeclaredParameters().getParameter(index) }
133111

134-
Expr getBody() {
135-
result = UserDefinedFunctionImpl.super.getBody()
136-
}
112+
Expr getBody() { result = UserDefinedFunctionImpl.super.getBody() }
137113
}

ql/lib/codeql/bicep/ast/Misc.qll

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ private import internal.MetadataDeclaration
1818
private import internal.ModuleDeclaration
1919
private import internal.NegatedType
2020
private import internal.ObjectProperty
21-
private import internal.OutputDeclaration
2221
private import internal.ParameterizedType
2322
private import internal.ParenthesizedType
2423
private import internal.PrimitiveType
@@ -102,10 +101,6 @@ class ModuleDeclaration extends AstNode instanceof ModuleDeclarationImpl { }
102101
*/
103102
class NegatedType extends AstNode instanceof NegatedTypeImpl { }
104103

105-
/**
106-
* A OutputDeclaration unknown AST node.
107-
*/
108-
class OutputDeclaration extends AstNode instanceof OutputDeclarationImpl { }
109104

110105
/**
111106
* A ParameterizedType unknown AST node.

ql/lib/codeql/bicep/ast/internal/OutputDeclaration.qll

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
private import AstNodes
77
private import TreeSitter
88
private import codeql.bicep.ast.AstNodes
9+
private import Idents
10+
private import Expr
11+
private import Type
912

1013
/**
1114
* A OutputDeclaration AST Node.
@@ -19,6 +22,15 @@ class OutputDeclarationImpl extends TOutputDeclaration, AstNode {
1922

2023
override string toString() { result = ast.toString() }
2124

25+
IdentsImpl getIdentifier() {
26+
toTreeSitter(result) = ast.getChild(0)
27+
}
2228

29+
TypeImpl getType() {
30+
toTreeSitter(result) = ast.getChild(1)
31+
}
2332

33+
ExprImpl getValue() {
34+
toTreeSitter(result) = ast.getChild(2)
35+
}
2436
}

0 commit comments

Comments
 (0)