1 module main; 2 3 import feature.parser; 4 import std.stdio; 5 void main(){ 6 Parser parser = new Parser(); 7 auto f = File("example.feature", "r"); 8 9 string src = "html\n\thead\n\ttitle\n\tExample App\n\t"; 10 11 f.readf!"%s"(src); 12 13 f.close(); 14 //Node root = parser.parse(src); 15 16 Node root = new Node(null, [], "", "html"); 17 18 Node head = new Node(root, [], "", "head"); 19 20 Node body = new Node(root, [], "", "body"); 21 22 Node p = new Node(body, [], "", "p"); 23 24 p.attr["id"] = "text"; 25 26 Node tex = new Node(p, [], "This is a paragaph", "raw_text_"); 27 28 p.children ~= [tex]; 29 30 body.children ~= [p]; 31 32 root.children = [head, body]; 33 HtmlGenerator gen = new HtmlGenerator(); 34 35 string html = gen.Generate(root); 36 37 visit(root, 0); 38 39 writeln(html); 40 41 42 } 43 44 void visit(Node node, uint deep){ 45 for(uint i = 0; i < deep; i++) 46 write("-"); 47 writef("%s", node.name); 48 if(node.value != "") 49 writefln(" %s", node.value); 50 else 51 writeln(); 52 foreach(n; node.children){ 53 visit(n, deep + 1); 54 } 55 }