public Node Follow(string key) { if(Children.ContainsKey(key)) { return Children[key]; }else { Node n; Children.Add(key,n=new Node(this, key)); return n; } }
private Node process(Node root, string value) { return null; }
public Node(Node parent, string key) { Parent = parent; Key = key; this.Children = new Dictionary<string, Node>(); this.Links = new List<string>(); this.TemplateIndex = 0; }
/* function process( root, value ) { var result; var i; var key; var node; if ( typeof value === "object" ) { // if it's an array, if (Object.prototype.toString.apply(value) === '[object Array]') { // process each item in the array. result = []; for( i = 0; i < value.length; i++ ) { result.push( process( root, value[i] ) ); } } else { node = root; result = { "":[] }; // it's an object. For each key, for (key in value) { if ( Object.hasOwnProperty.call( value, key ) ) { // follow the node. node = node.follow( key ); // add its value to the array. result[""].push( process( root, value[key] ) ); } } node.links.push( result ); } } else { result = value; } return result; } }*/ public string Compress(string txt) { var root = new Node(null, ""); var values = process(root, txt); //var templates = createTemplates(root); //if (templates.Count() > 0) { /* return JSON.stringify( { "f": "cjson", "t": templates, "v": values }, null, null );*/ } //else return txt; }