Represents a non-empty Prolog list.
Inheritance: PrologCodeList
        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;
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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;
        }