public override void Compile(LinkedListNode<Token> node, Listitem lastInsertedAction) { node = node.Next; if (node.Value.Text == "(") { DoNothing end = new DoNothing(); JumpConditional jc = new JumpConditional(); jc.Condition = GetExpression(ref node); jc.OnTrue = new DoNothing(); ActionList.AddLast(jc); ActionList.AddLast(jc.OnTrue); node = node.Next; if (node.Value.Text == "{") { List<LinkedListNode<Token>> statement = GetStatement(ref node); Jump tmpjump = new Jump(); tmpjump.Goto = end; tmpjump.Statement = statement; ActionList.AddLast(tmpjump); } // Hier moet eigelijk nog een else check komen jc.OnFalse = end; ActionList.AddLast(end); } else Console.WriteLine("Expected '(' exception"); }
public void InsertBefore(Listitem before, Listitem insert) { Listitem tmp = before.Previous; before.Previous = insert; insert.Previous = tmp; insert.Next = before; }
public override void Compile(LinkedListNode<Token> node, Listitem lastInsertedAction) { node = node.Next; if (node.Value.Text == "(") { List<LinkedListNode<Token>> expression = GetExpression(ref node); JumpConditional temp = new JumpConditional(); temp.Condition = expression; temp.OnTrue = new DoNothing(); ActionList.AddLast(temp); ActionList.AddLast(temp.OnTrue); node = node.Next; if (node.Value.Text == "{") { List<LinkedListNode<Token>> statement = GetStatement(ref node); Jump tempjump = new Jump(); tempjump.Goto = (Action) lastInsertedAction; tempjump.Statement = statement; ActionList.AddLast(tempjump); } temp.OnFalse = new DoNothing(); ActionList.AddLast(temp.OnFalse); } else Console.WriteLine("Expected '(' exception"); }
/// <summary> /// 获取统计大类ID /// </summary> /// <param name="statID">中心统计大类ID</param> /// <returns>本院统计大类ID</returns> private int getsubitemId(int statID) { Basic_StatItem subitem = Listitem.Find(x => x.StatID == statID); if (subitem == null) { return(0); } return(subitem.ID); }
public void AddLast(Listitem item) { if (First == null) { First = item; } else { Last.Next = item; item.Previous = Last; } Last = item; }
/// <summary> /// 获取分类明细ID /// </summary> /// <param name="subtype">类型</param> /// <param name="statID">统计大类ID</param> /// <returns>分类明细ID</returns> private int getsubclassId(int subtype, int statID) { Basic_StatItem subitem = Listitem.Find(x => x.StatID == statID); if (subitem == null) { return(0); } Basic_StatItemSubclass subclass = null; switch (subtype) { case 1: subclass = Listsubclass.Find(x => x.SubID == subitem.AccItemID); break; case 2: subclass = Listsubclass.Find(x => x.SubID == subitem.CostItemID); break; case 3: subclass = Listsubclass.Find(x => x.SubID == subitem.BaItemID); break; case 4: subclass = Listsubclass.Find(x => x.SubID == subitem.PoItemID); break; case 5: subclass = Listsubclass.Find(x => x.SubID == subitem.OutFpItemID); break; case 6: subclass = Listsubclass.Find(x => x.SubID == subitem.InFpItemID); break; } if (subclass == null) { return(0); } return(subclass.SubID); }
public virtual void Compile(LinkedListNode<Token> node, Listitem lastInsertedAction) { }
public override void Compile(LinkedListNode<Token> node, Listitem lastInsertedAction) { // add var node.next.value to varlist with type node.value }