in shardingsphere-operator/pkg/distsql/visitor_parser/mask/rdlstatement_parser.go [388:468]
func (p *RDLStatementParser) CreateMaskRule() (localctx ICreateMaskRuleContext) {
localctx = NewCreateMaskRuleContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 0, RDLStatementParserRULE_createMaskRule)
var _la int
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
{
p.SetState(32)
p.Match(RDLStatementParserCREATE)
}
{
p.SetState(33)
p.Match(RDLStatementParserMASK)
}
p.SetState(35)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
if _la == RDLStatementParserTABLE {
{
p.SetState(34)
p.Match(RDLStatementParserTABLE)
}
}
{
p.SetState(37)
p.Match(RDLStatementParserRULE)
}
p.SetState(39)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
if _la == RDLStatementParserIF {
{
p.SetState(38)
p.IfNotExists()
}
}
{
p.SetState(41)
p.MaskRuleDefinition()
}
p.SetState(46)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
for _la == RDLStatementParserCOMMA_ {
{
p.SetState(42)
p.Match(RDLStatementParserCOMMA_)
}
{
p.SetState(43)
p.MaskRuleDefinition()
}
p.SetState(48)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
}
return localctx
}