Ejemplo n.º 1
0
    static void TestFoo()
    {
        var spec = new MySpec();

        var root = new Racr.AstNode(spec, "A",
                                    new Racr.AstList(
                                        new B(spec, "abc"),
                                        new B(spec, "123"),
                                        new B(spec, "xyz")),
                                    new Racr.AstNode(spec, "C"),
                                    "hiya");


        root.ForEachChild((i, o) => {
            var node = o as Racr.AstNode;
            if (node != null)
            {
                Console.WriteLine("{0}: {1}", i, node.NodeType());
            }
            else
            {
                Console.WriteLine("{0}: {1}", i, o);
            }
        }, new Racr.Range(2));


        Console.WriteLine("---");


        Console.WriteLine("M: {0}", root.M());
        Console.WriteLine("N: {0}", root.N());

        Console.WriteLine("a: {0}", root.AttValue("a"));
        Console.WriteLine("b: {0}", root.AttValue("b", 3));

        Console.WriteLine("kids: {0}", root.AttValue("kids"));
        var index = root.GetList().Child(1).AttValue <int>("bar", 3);

        Console.WriteLine("index: {0}", index);


        Console.WriteLine("---");


        var c = root.FindChild((i, o) => {
            return(i == 2);
        }) as Racr.AstNode;

        Console.WriteLine("{0}", c.NodeType());


        Console.WriteLine("---");

        Console.WriteLine(root);
        Console.WriteLine("NodeType: {0}", root.NodeType());
        Console.WriteLine("IsNode: {0}", root.IsNode());
        Console.WriteLine("HasParent: {0}", root.HasParent());
        Console.WriteLine("NumChildren: {0}", root.NumChildren());
        Console.WriteLine("HasChild 'B: {0}", root.HasChild("B"));
        Console.WriteLine("HasChild 'List: {0}", root.HasChild("List"));

        Console.WriteLine("");

        var child = root.GetList();

        Console.WriteLine(child);
        Console.WriteLine("Child 1 -> t: {0}", child.Child(1).GetT());
        Console.WriteLine("IsNode: {0}", child.IsNode());
        Console.WriteLine("HasParent: {0}", child.HasParent());
        Console.WriteLine("ChildIndex: {0}", child.ChildIndex());
        Console.WriteLine("NumChildren: {0}", child.NumChildren());
    }
Ejemplo n.º 2
0
	static void TestFoo() {

		var spec = new MySpec();

		var root = new Racr.AstNode(spec, "A",
		                            new Racr.AstList(
			new B(spec, "abc"),
			new B(spec, "123"),
			new B(spec, "xyz")),
		                            new Racr.AstNode(spec, "C"),
		                            "hiya");


		root.ForEachChild((i, o) => {
			var node = o as Racr.AstNode;
			if (node != null)
				Console.WriteLine("{0}: {1}", i, node.NodeType());
			else
				Console.WriteLine("{0}: {1}", i, o);
		}, new Racr.Range(2));


		Console.WriteLine("---");


		Console.WriteLine("M: {0}", root.M());
		Console.WriteLine("N: {0}", root.N());

		Console.WriteLine("a: {0}", root.AttValue("a"));
		Console.WriteLine("b: {0}", root.AttValue("b", 3));

		Console.WriteLine("kids: {0}", root.AttValue("kids"));
		var index = root.GetList().Child(1).AttValue<int>("bar", 3);
		Console.WriteLine("index: {0}", index);


		Console.WriteLine("---");


		var c = root.FindChild((i, o) => {
			return i == 2;
		}) as Racr.AstNode;

		Console.WriteLine("{0}", c.NodeType());


		Console.WriteLine("---");

		Console.WriteLine(root);
		Console.WriteLine("NodeType: {0}", root.NodeType());
		Console.WriteLine("IsNode: {0}", root.IsNode());
		Console.WriteLine("HasParent: {0}", root.HasParent());
		Console.WriteLine("NumChildren: {0}", root.NumChildren());
		Console.WriteLine("HasChild 'B: {0}", root.HasChild("B"));
		Console.WriteLine("HasChild 'List: {0}", root.HasChild("List"));

		Console.WriteLine("");

		var child = root.GetList();

		Console.WriteLine(child);
		Console.WriteLine("Child 1 -> t: {0}", child.Child(1).GetT());
		Console.WriteLine("IsNode: {0}", child.IsNode());
		Console.WriteLine("HasParent: {0}", child.HasParent());
		Console.WriteLine("ChildIndex: {0}", child.ChildIndex());
		Console.WriteLine("NumChildren: {0}", child.NumChildren());

	}