private string GetListTailStr(PrologCodeNonEmptyList list) { string listStr = ""; if (list.Head is PrologCodeNonEmptyList) { // listStr += "[" + GetListTailStr((PrologCodeNonEmptyList)list.Head) + "]"; listStr += "," + list.Head.ToString(); } else { listStr += "," + list.Head; } if (list.Tail is PrologCodeNonEmptyList) { listStr += GetListTailStr((PrologCodeNonEmptyList)list.Tail); } else if (list.Tail is PrologCodeEmptyList) { } else { listStr += "|" + list.Tail.ToString(); } return(listStr); }
private string GetListTailStr(PrologCodeNonEmptyList list) { string listStr = ""; if (list.Head is PrologCodeNonEmptyList) { // listStr += "[" + GetListTailStr((PrologCodeNonEmptyList)list.Head) + "]"; listStr += "," + list.Head.ToString(); } else { listStr += "," + list.Head; } if (list.Tail is PrologCodeNonEmptyList) { listStr += GetListTailStr((PrologCodeNonEmptyList)list.Tail); } else if (list.Tail is PrologCodeEmptyList) { } else { listStr += "|" + list.Tail.ToString(); } return listStr; }
private ArrayList GetListOperators(PrologCodeNonEmptyList list) { ArrayList listMembers = new ArrayList(); for (PrologCodeTerm l = list.Head; !(l is PrologCodeEmptyList); l = list.Tail) { if (l is PrologCodeAtom) { listMembers.Add(l); } else { _errors.Add(new PrologCompilerError("P0011", "Invalid operator definition.", "", false, _scanner.Current.Line, _scanner.Current.Column)); } } return listMembers; }
private PrologCodeTerm ConvertBinaryListToCodeDOM(BinaryTree l) { BinaryList list = (BinaryList)l; if (list.Head == null && list.Tail == null) { return new PrologCodeEmptyList(); } PrologCodeNonEmptyList NEList = null; if (list.Head.Name == ".") { NEList = new PrologCodeNonEmptyList(ConvertBinaryListToCodeDOM(list.Head)); } else { NEList = new PrologCodeNonEmptyList(ConvertGoalVariableBinaryTreeToCodeDOM(list.Head)); } // Check the tail if (list.Tail.Name == ".") { NEList.Tail = ConvertBinaryListToCodeDOM(list.Tail); } else { NEList.Tail = ConvertGoalVariableBinaryTreeToCodeDOM(list.Tail); } return NEList; }