Пример #1
0
 /// <summary>
 /// Standard Konstruktor
 /// </summary>
 public Programm()
 {
     _actStats = null;
     _stm = new ListStm(this, null, Config.EXECUTE.BASE_STM);
     _stack = new Stack<DataSet>();
     _log = new LinkedList<Tuple<Statement, DataSet>>();
     _actRuntime = 0;
 }
Пример #2
0
 /// <summary>
 /// Kontruktor.
 /// </summary>
 /// <param name="programm">Die Programm Klasse, zu dem der Baustein gehoert.<</param>
 /// <param name="parent">Der Baustein, in dem sich dieser Baustein befindet.</param>
 /// <param name="brick">Art des Bausteins.</param>
 public Statement(Programm programm, ListStm parent, Config.EXECUTE brick)
 {
     this.programm = programm;
     this.parent = parent;
     this.brick = brick;
     this.content = switchContent(brick);
 }
Пример #3
0
 /// <summary>
 /// Konstruktor. Ruft zusaetzlich den Konstruktor der Klasse Statement auf.
 /// </summary>
 /// <param name="programm">Die Programm Klasse, zu dem der Baustein gehoert.</param>
 /// <param name="parent">Der Baustein, in dem sich dieser Baustein befindet.</param>
 /// <param name="brick">Art des Bausteins.</param>
 public ListStm(Programm programm, ListStm parent, Config.EXECUTE brick)
     : base(programm, parent, brick)
 {
     stmList = new LinkedList<Statement>();
     stmList.AddLast(new Statement(programm, this, Config.EXECUTE.LOOP_END));            
 }
Пример #4
0
        /// <summary>
        /// Prueft ob sich der uebergebene Baustein in der stmList befindet.
        /// </summary>
        /// <param name="stm">Gesuchter Baustein.</param>
        /// <param name="listStm">Zu durchsuchende Liste.</param>
        /// <returns>True, wenn der Baustein gefunden wurde. False, wenn nicht.</returns>
        public bool stmListContains(Statement stm, ListStm listStm)
        {
            if (stm == listStm)
                return true;

            foreach (Statement x in listStm.StmList)
            {
                if (x is ListStm)
                {
                    if (stmListContains(stm, x as ListStm))
                        return true;
                }
                else if(x == stm)
                {
                    return true;
                }
            }
            return false;
        }
Пример #5
0
 /// <summary>
 /// Erstellt aus der rekursiven Schachtelung der Statement und ListStm Klassen eine Listenstruktur.
 /// </summary>
 /// <param name="baseStm">Referenz auf ein ListStm.</param>
 /// <returns>Algorithmus Bausteine in Form einer Liste.</returns>
 private LinkedList<Statement> getActualStmNesting(ListStm baseStm)
 {
     LinkedList<Statement> itemList = new LinkedList<Statement>();
     itemList.AddLast(baseStm);
     foreach (Statement x in (baseStm as ListStm).StmList)
     {
         if (x is ListStm)
         {
             itemList = concatList(itemList, getActualStmNesting(x as ListStm));
         }
         else
         {
             itemList.AddLast(x);
         }
     }
     return itemList;
 }