Example #1
0
		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();
		}
Example #2
0
		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;

		}
Example #3
0
		private void ok_Click(object sender, System.EventArgs e)
		{
			get_node_info();
			snfi=nfi;
		}
Example #4
0
 private string NodeToString(node_field_info subnode)
 {
     return subnode.field_type_name + text_consts.space + subnode.field_code_name;
 }
Example #5
0
		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;
		}
Example #6
0
        public void add_subnode(node_field_info nfi)
		{
			_subnodes.Add(nfi);
		}
Example #7
0
 private bool is_container(node_field_info nfi)
 {
     if (nfi.field_type_name.StartsWith("List"))
         return true;
     return false;
 }
Example #8
0
 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;
 }
Example #9
0
		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;
		}
Example #10
0
		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");

		}