public subnode_editor(NodeGenerator.NodeGenerator ng,node_field_info nfi,node_info this_node) { InitializeComponent(); ngen=ng; this.nfi=nfi; subnodes_types.Items.Clear(); subnodes_types.Items.AddRange((object[])ngen.all_nodes.ToArray(typeof(object))); if (ngen.all_nodes.IndexOf(this_node)<0) { subnodes_types.Items.Insert(0,this_node); } if (this.nfi==null) { this.nfi=new node_field_info(); this.nfi.field_type=(node_info)ng.all_nodes[0]; } ninf=this_node; snfi=this.nfi; set_node_info(); }
private void get_node_info() { if (nfi==null) { nfi=new node_field_info(); } nfi.field_name=field_name.Text; int t=subnodes_types.SelectedIndex; if (t<0) { return; } nfi.field_type=(node_info)subnodes_types.Items[t]; ngen.help_storage.get_help_context(ninf.node_name+"."+nfi.field_name).help_context=this.help_context.Text; }
private void ok_Click(object sender, System.EventArgs e) { get_node_info(); snfi=nfi; }
private string NodeToString(node_field_info subnode) { return subnode.field_type_name + text_consts.space + subnode.field_code_name; }
public static node_field_info edit_field(node_field_info nfi,NodeGenerator.NodeGenerator ng,node_info this_node) { subnode_editor se=new subnode_editor(ng,nfi,this_node); se.ShowDialog(); /*if (se.ShowDialog()==DialogResult.OK) { return snfi; }*/ return snfi; }
public void add_subnode(node_field_info nfi) { _subnodes.Add(nfi); }
private bool is_container(node_field_info nfi) { if (nfi.field_type_name.StartsWith("List")) return true; return false; }
private bool is_node(node_field_info nfi) { var i = nfi.field_type; while (i != null) { if (i._node_name == "syntax_tree_node") return true; i = i.base_class; } return false; }
public static node_field_info edit_field(node_field_info nfi,NodeGenerator.NodeGenerator ng,node_info this_node) { subnode_editor se = new subnode_editor(ng,nfi,this_node); if (se.ShowDialog() == DialogResult.Cancel) { snfi.field_name = ""; } return snfi; }
private void button1_Click(object sender, System.EventArgs e) { NodeGenerator.NodeGenerator ng=new NodeGenerator.NodeGenerator(); ng.factory_name="nodes_factory"; ng.file_name="f1.cs"; ng.namespace_name="fnm"; ng.visitor_interface_file_name="vis.cs"; node_info nb=new node_info(); nb.node_name="base_node"; node_info n1=new node_info(); n1.node_name="if_node"; n1.base_class=nb; node_info n2=new node_info(); n2.node_name="condition"; n2.base_class=nb; node_info n3=new node_info(); n3.node_name="body"; n3.base_class=n2; node_field_info nf11=new node_field_info(); nf11.field_name="first"; nf11.field_type=n2; n1.add_subnode(nf11); node_field_info nf12=new node_field_info(); nf12.field_name="second"; nf12.field_type=n3; n1.add_subnode(nf12); node_field_info nf21=new node_field_info(); nf21.field_name="third"; nf21.field_type=n1; n2.add_subnode(nf21); ng.add_node(nb); ng.add_node(n1); ng.add_node(n2); ng.add_node(n3); ng.generate_code(); ng.generate_visitor_interface_code(); ng.generate_visitor_template("vis1","vis_templ.cs"); }