Skip to content

Commit cc4d039

Browse files
authored
Add REVOKE and DENY statement parsing support (#48)
1 parent 94a3c62 commit cc4d039

File tree

7 files changed

+531
-3
lines changed

7 files changed

+531
-3
lines changed

ast/deny_statement.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ast
2+
3+
// DenyStatement represents a DENY statement
4+
type DenyStatement struct {
5+
Permissions []*Permission
6+
Principals []*SecurityPrincipal
7+
CascadeOption bool
8+
SecurityTargetObject *SecurityTargetObject
9+
}
10+
11+
func (s *DenyStatement) node() {}
12+
func (s *DenyStatement) statement() {}

ast/revoke_statement.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package ast
2+
3+
// RevokeStatement represents a REVOKE statement
4+
type RevokeStatement struct {
5+
Permissions []*Permission
6+
Principals []*SecurityPrincipal
7+
GrantOptionFor bool
8+
CascadeOption bool
9+
SecurityTargetObject *SecurityTargetObject
10+
}
11+
12+
func (s *RevokeStatement) node() {}
13+
func (s *RevokeStatement) statement() {}

parser/lexer.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ const (
155155
// Security keywords
156156
TokenGrant
157157
TokenRevoke
158+
TokenDeny
158159
TokenTo
159160
TokenPublic
160161

@@ -816,6 +817,7 @@ var keywords = map[string]TokenType{
816817
"MAXDOP": TokenMaxdop,
817818
"GRANT": TokenGrant,
818819
"REVOKE": TokenRevoke,
820+
"DENY": TokenDeny,
819821
"TO": TokenTo,
820822
"PUBLIC": TokenPublic,
821823
"COMMIT": TokenCommit,

0 commit comments

Comments
 (0)