Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public override object VisitCaseStatement([NotNull] CaseStatementContext context)
        {
            var obj = (string)Visit(context.GetChild(0));

            return(obj);
        }