Пример #1
0
     static void Main(String[] args)
 {
     Console.WriteLine("\nTesting the IfStatementElement class");
     Console.WriteLine("\n==========================================\n");
     EqualityOperationElement elem = new EqualityOperationElement();
     VariableElement var_elem = new VariableElement();
     var_elem.setText("a");
     elem.setequalityLhs(var_elem);
     IntegerElement int_elem = new IntegerElement();
     int_elem.setText("1");
     elem.setequalityRhs(int_elem);
     VariableElement elem2 = new VariableElement();
     elem2.setText("b");
     IfStatementElement if_elem = new IfStatementElement();
     if_elem.CONDITION= elem;
     ScalarVariableDeclaration scalar_elem = new ScalarVariableDeclaration();
     scalar_elem.setType("int");
     scalar_elem.setVar(var_elem);
     List<Element> Iflist = new List<Element>();
     Iflist.Add(scalar_elem);
     if_elem.IFCODE = Iflist;
     List<Element> ElseList = new List<Element>();
     ElseList.Add(int_elem);
     if_elem.ELSECODE = ElseList;
     Console.Write("IfStatement element " + var_elem1.GetType().ToString()+" "+ var_elem1.getText().ToString() + "\n");
     EqualityOperationElement eq_elem = new EqualityOperationElement();
     eq_elem = (EqualityOperationElement)if_elem.CONDITION;
     Console.Write("The condition has : "+eq_elem.ToString()+"->"+eq_elem.getequalityLhs()+" == "+eq_elem.getequalityRhs()+"\n");
     List<Element> elem_list = new List<Element>();
     elem_list = if_elem.IFCODE;
     for (int i = 0; i < elem_list.Count; i++)
     {
         Console.Write("The if loop list has " + elem_list[i].ToString() + "\n");
     }
     elem_list = if_elem.ELSECODE;
     for (int i = 0; i < elem_list.Count; i++)
     {
         Console.Write("The Else loop list has " + elem_list[i].ToString() + "\n");
     }
 }
Пример #2
0
 public abstract void VisitIfStatementElement(IfStatementElement element);
Пример #3
0
 public override void VisitIfStatementElement(IfStatementElement element)
 {
     Console.Write("if ");
     VisitElement(element.CONDITION);
     Console.Write("\n{\n\t");
     List<Element> If_code = new List<Element>();
     If_code = element.IFCODE;
     for (int i = 0; i < If_code.Count; i++)
     {
         VisitElement(If_code[i]);
         if (i < (If_code.Count - 1))
         {
             Console.Write("\n\t");
         }
         else
         {
             Console.Write("\n");
         }
     }
     Console.Write("}\n");
     List<Element> else_code = new List<Element>();
     else_code = element.ELSECODE;
     if (else_code!= null)
     {
         Console.Write("else\n{\n");
         for (int i = 0; i < else_code.Count; i++)
         {
             VisitElement(else_code[i]);
             if (i < (else_code.Count - 1))
             {
                 Console.Write("\n\t");
             }
             else
             {
                 Console.Write("\n");
             }
         }
         Console.Write("}\n");
     }
 }
Пример #4
0
        public override void VisitIfStatementElement(IfStatementElement element)
        {
            if (inParallelFor == 1)
            {
                createIf(element);
                createElse(element);

            }
            else
            {
            }

        }
Пример #5
0
 private void createElse(IfStatementElement element)
 {
     
     //struct
     parallelString.Append("else");
     parallelString.Append("{\n");
     for (int i = 0; element.ELSECODE.Count != 0 && i < element.ELSECODE.Count; i++)
     {
         VisitElement(element.ELSECODE[i]);
         parallelString.Append(";");
     }
     parallelString.Append("\n}");
 }
Пример #6
0
        private void createIf(IfStatementElement element)
        {
            string strlhs = "";
            string strrhs = "";
            if (element.getLhs() is VariableElement)
                strlhs = ((VariableElement)element.getLhs()).getText();
            //struct
            parallelString.Append("if(" + strlhs);
            if (element.OP == "eq")
                parallelString.Append("==");
            else if (element.OP == "ne")
                parallelString.Append("!=");
            else if (element.OP == "lt")
                parallelString.Append("<");
            else if (element.OP == "le")
                parallelString.Append("<=");
            else if (element.OP == "gt")
                parallelString.Append(">");
            else if (element.OP == "ge")
                parallelString.Append(">=");

            if (element.getRhs() is VariableElement)
                strrhs = ((VariableElement)element.getRhs()).getText();
            else if(element.getRhs() is IntegerElement)
                strrhs = ((IntegerElement)element.getRhs()).getText();
            else if (element.getRhs() is DoubleElement)
                strrhs = ((DoubleElement)element.getRhs()).getText();
            else if (element.getRhs() is StringElement) 
                strrhs = ((StringElement)element.getRhs()).getText();
            parallelString.Append(strrhs + ")" + "\n" + "{\n");
            for (int i = 0; element.IFCODE.Count != 0 && i < element.IFCODE.Count; i++)
            {
                VisitElement(element.IFCODE[i]);
                parallelString.Append(";");
            }
            parallelString.Append("\n}");
        }
Пример #7
0
        public override void VisitIfStatementElement(IfStatementElement element)
        {
            String lhs = getIfElement(element.getLhs()); //.getConditionLhs());
            String rhs = getIfElement(element.getRhs()); //.getConditionRhs());

            if (lhs == null || rhs == null)
            { Console.WriteLine("\n Variable not allowed. "); return; }

            if (mVariableMap.ContainsKey(lhs) == false || mVariableMap.ContainsKey(rhs) == false)
                Console.WriteLine("\n Invalid Comparison.");

            if (
                 (element.OP == "eq" && String.Compare(lhs, rhs) == 0) ||
                 (element.OP == "ne" && String.Compare(lhs, rhs) != 0) ||
                 (element.OP == "lt" && String.Compare(lhs, rhs) < 0) ||
                 (element.OP == "le" && String.Compare(lhs, rhs) <= 0) ||
                 (element.OP == "gt" && String.Compare(lhs, rhs) < 0) ||
                 (element.OP == "ge" && String.Compare(lhs, rhs) >= 0)
               )
            {
                Console.WriteLine("\n Loop condition true - entered true. ");
            }
            else
            {
                if (element.ELSECODE.Count != 0)
                { Console.WriteLine("\n Loop condition false - entered else. "); }
            }

            //throw new NotImplementedException();
        }
Пример #8
0
 public override void VisitIfStatementElement(IfStatementElement element)
 {
     //throw new NotImplementedException();
 }