public override object VisitCaseStatement(CaseStatementContext context) { var obj = ""; this.add_current_set(); var process = (new System.Text.StringBuilder().Append(BlockLeft).Append(" ").Append(ProcessFunctionSupport(context.functionSupportStatement())).Append(BlockRight).Append(" break;")).to_str(); this.delete_current_set(); foreach (var item in context.judgeCase()) { var r = (string)(Visit(item)); obj += r + process; } return(obj); }
public CaseStatement ParseCaseStatement(CaseStatementContext node) { CaseStatement statement = new CaseStatement(); statement.VariableName = new TokenInfo(node.uid()) { Type = TokenType.VariableName }; foreach (CaseAlternativeContext when in node.caseAlternative()) { IfStatementItem elseIfItem = new IfStatementItem() { Type = IfStatementType.ELSEIF }; elseIfItem.Condition = new TokenInfo(when.expression() as PredicateExpressionContext) { Type = TokenType.Condition }; elseIfItem.Statements.AddRange(when.procedureSqlStatement().SelectMany(item => this.ParseProcedureStatement(item))); statement.Items.Add(elseIfItem); } ProcedureSqlStatementContext[] sqls = node.procedureSqlStatement(); if (sqls != null && sqls.Length > 0) { IfStatementItem elseItem = new IfStatementItem() { Type = IfStatementType.ELSE }; elseItem.Statements.AddRange(sqls.SelectMany(item => this.ParseProcedureStatement(item))); statement.Items.Add(elseItem); } return(statement); }
public override object VisitCaseStatement([NotNull] CaseStatementContext context) { var obj = (string)Visit(context.GetChild(0)); return(obj); }