コード例 #1
0
        public override void Assembly(Assembler asm)
        {
            asm.Begin(this);
            asm.AddToken("IF");
            asm.AddSpace();
            asm.Add(Condition);
            asm.AddSpace();
            asm.AddToken("THEN");
            asm.AddSpace();
            asm.IncreaseIndentation();
            asm.NewLine();
            asm.Add(TrueStatement);
            asm.DecreaseIndentation();
            if (FalseStatement.Count() != 0)
            {
                asm.NewLine();
                asm.AddToken("ELSE");
                asm.AddSpace();
                asm.IncreaseIndentation();
                asm.NewLine();
            }

            // This is needed in order to process comments after FalseStatement.
            asm.Add(FalseStatement);

            if (FalseStatement.Count() != 0)
            {
                asm.DecreaseIndentation();
            }
            asm.NewLine();
            asm.AddToken("END IF");
            asm.End(this);
        }
コード例 #2
0
 override public void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.AddSpace();
     asm.Add("### UNSUPPORTED WITH CLAUSE ###");
     asm.AddSpace();
     asm.End(this);
 }
コード例 #3
0
 override public void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.AddSpace();
     asm.Add("### UNSUPPORTED STATEMENT ###");
     asm.AddSpace();
     asm.End(this);
 }
コード例 #4
0
 override public void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.AddSpace();
     asm.Add("### UNSUPPORTED ALTER PROCEDURE ###");
     asm.AddSpace();
     asm.End(this);
 }
コード例 #5
0
 override public void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.AddToken("SELECT");
     asm.AddSpace();
     asm.Add(Expression);
     asm.AddSpace();
     asm.AddToken("FROM DUMMY");
     asm.End(this);
 }
コード例 #6
0
 public override void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.AddToken("CURSOR");
     asm.AddSpace();
     asm.Add(Name);
     asm.AddSpace();
     asm.AddToken("FOR");
     asm.AddSpace();
     asm.Add(Statement);
     asm.End(this);
 }
コード例 #7
0
 override public void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.SetFlag(Assembler.FLAG_HANA_CONCAT);
     asm.Add(LeftExpression);
     asm.AddSpace();
     asm.Add("||");
     asm.AddSpace();
     asm.Add(RightExpression);
     asm.ClearFlag(Assembler.FLAG_HANA_CONCAT);
     asm.End(this);
 }
コード例 #8
0
 public override void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.Add(Variable);
     asm.AddSpace();
     asm.Add(Type);
     if (Value != null)
     {
         asm.AddSpace();
         asm.AddToken(":=");
         asm.AddSpace();
         asm.Add(Value);
     }
     asm.End(this);
 }
コード例 #9
0
 public override void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.AddToken("WHILE");
     asm.AddSpace();
     asm.Add(Condition);
     asm.AddSpace();
     asm.AddToken("DO");
     asm.AddSpace();
     asm.IncreaseIndentation();
     asm.NewLine();
     asm.Add(Statement);
     asm.DecreaseIndentation();
     asm.NewLine();
     asm.AddToken("END WHILE");
     asm.End(this);
 }
コード例 #10
0
 public override void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.Add(Variable);
     asm.AddSpace();
     asm.Add(Variable.Value + "_TYPE");
     asm.End(this);
 }
コード例 #11
0
 public override void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.AddToken("CLOSE");
     asm.AddSpace();
     asm.Add(Source);
     asm.End(this);
 }
コード例 #12
0
 public override void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.AddToken("FETCH");
     asm.AddSpace();
     asm.Add(Source);
     if (VariableList != null)
     {
         asm.AddSpace();
         asm.AddToken("INTO");
         asm.AddSpace();
         foreach (VariableExpression var in VariableList)
         {
             asm.Add(var);
             if (var != VariableList.Last())
             {
                 asm.AddToken(",");
             }
         }
     }
     asm.End(this);
 }
コード例 #13
0
        override public void Assembly(Assembler asm)
        {
            asm.Begin(this);
            asm.AddToken("decimal");

            if (Precision != PrecisionDefault || Scale != ScaleDefault)
            {
                asm.AddToken("(");
                asm.Add(Precision);
                asm.AddToken(",");
                asm.AddSpace();
                asm.Add(Scale);
                asm.AddToken(")");
            }
            asm.End(this);
        }
コード例 #14
0
 public override void Assembly(Assembler asm)
 {
     asm.Begin(this);
     asm.AddToken("SELECT");
     asm.AddSpace();
     foreach (SelectVariableItem item in Items)
     {
         asm.Add(item.Expression);
         if (item != Items.Last())
         {
             asm.AddToken(", ");
         }
     }
     asm.AddSpace();
     asm.AddToken("INTO");
     asm.AddSpace();
     foreach (SelectVariableItem item in Items)
     {
         asm.Add(item.Variable);
         if (item != Items.Last())
         {
             asm.AddToken(", ");
         }
     }
     asm.AddSpace();
     if (FromClause != null)
     {
         asm.AddToken("FROM");
         asm.AddSpace();
         foreach (TableSource table in FromClause)
         {
             asm.Add(table);
             if (table != FromClause.Last())
             {
                 asm.AddToken(",");
                 asm.AddSpace();
                 asm.NewLine();
             }
         }
     }
     else
     {
         asm.AddToken("FROM DUMMY");
     }
     asm.End(this);
 }
コード例 #15
0
        public override void Assembly(Assembler asm)
        {
            asm.Begin(this);
            switch (Operator)
            {
            case AssignmentType.XorAssign:
                AddNote(Note.STRINGIFIER, ResStr.NO_BITWISE_XOR_OPERATOR);
                asm.End(this);
                return;

            case AssignmentType.OrAssign:
                AddNote(Note.STRINGIFIER, ResStr.NO_BITWISE_OR_OPERATOR);
                asm.End(this);
                return;
            }
            asm.Add(Variable);
            asm.AddSpace();
            asm.AddToken(":=");
            asm.AddSpace();
            switch (Operator)
            {
            case AssignmentType.AddAssign:
                asm.AddToken(":");
                asm.Add(Variable);
                asm.AddToken(" + ");
                asm.Add(Expression);
                break;

            case AssignmentType.AndAssign:
                asm.AddToken("BITAND(");
                asm.AddToken(":");
                asm.Add(Variable);
                asm.AddToken(", ");
                asm.Add(Expression);
                asm.AddToken(")");
                break;

            case AssignmentType.Assign:
                asm.Add(Expression);
                break;

            case AssignmentType.DivAssign:
                asm.AddToken(":");
                asm.Add(Variable);
                asm.AddToken(" / ");
                asm.Add(Expression);
                break;

            case AssignmentType.ModAssign:
                asm.AddToken("MOD(");
                asm.AddToken(":");
                asm.Add(Variable);
                asm.AddToken(", ");
                asm.Add(Expression);
                asm.AddToken(")");
                break;

            case AssignmentType.MulAssign:
                asm.AddToken(":");
                asm.Add(Variable);
                asm.AddToken(" * ");
                asm.Add(Expression);
                break;

            case AssignmentType.SubAssign:
                asm.AddToken(":");
                asm.Add(Variable);
                asm.AddToken(" - ");
                asm.Add(Expression);
                break;
            }
            asm.End(this);
        }