public override object VisitUsingDeclaration (ICSharpCode.NRefactory.Ast.UsingDeclaration usingDeclaration, object data)
			{
				DomUsing domUsing = new DomUsing ();
				domUsing.Region = ConvertRegion (usingDeclaration.StartLocation, usingDeclaration.EndLocation);
				domUsing.ValidRegion = ConvertRegion (usingDeclaration.StartLocation, namespaceEndLocationStack.Peek ()); 
				foreach (ICSharpCode.NRefactory.Ast.Using u in usingDeclaration.Usings) {
					if (u.IsAlias) {
						domUsing.Add (u.Name, ConvertReturnType (u.Alias));
					} else {
						domUsing.Add (u.Name);
					}
				}
				((CompilationUnit)result.CompilationUnit).Add (domUsing);
				return data;
			}
예제 #2
0
        public syntax_tree_node get_syntax_tree(ICSharpCode.NRefactory.Ast.CompilationUnit unit, string FileName)
        {
            unit_module   mod     = null;
            List <string> imports = new List <string>();

            foreach (ICSharpCode.NRefactory.Ast.INode cu in unit.Children)
            {
                if (cu is ICSharpCode.NRefactory.Ast.TypeDeclaration)
                {
                    ICSharpCode.NRefactory.Ast.TypeDeclaration td = cu as ICSharpCode.NRefactory.Ast.TypeDeclaration;
                    if (td.Type == ICSharpCode.NRefactory.Ast.ClassType.Module)
                    {
                        mod                       = new unit_module();
                        mod.Language              = LanguageId.VBNET;
                        mod.file_name             = FileName;
                        mod.unit_name             = new unit_name();
                        mod.unit_name.idunit_name = new ident(td.Name);
                        mod.compiler_directives   = new List <compiler_directive>();
                        mod.compiler_directives.Add(new compiler_directive(new token_info("reference"), new token_info("System.dll")));
                        mod.compiler_directives.Add(new compiler_directive(new token_info("reference"), new token_info("Microsoft.VisualBasic.dll")));
                        mod.compiler_directives.Add(new compiler_directive(new token_info("reference"), new token_info("System.Windows.Forms.dll")));
                        mod.compiler_directives.Add(new compiler_directive(new token_info("reference"), new token_info("System.Drawing.dll")));
                        mod.source_context = get_source_context(td);
                        mod.interface_part = new interface_node();
                        mod.interface_part.interface_definitions = new declarations();
                        //mod.interface_part.source_context = new SourceContext(td.StartLocation.Line,td.StartLocation.Column,td.EndLocation.Line,td.EndLocation.Column);
                        mod.interface_part.uses_modules = new uses_list();

                        foreach (string s in imports)
                        {
                            List <ident> id_name = new List <ident>();
                            id_name.Add(new ident(s));
                            mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(id_name)));
                        }
                        List <ident> ids = new List <ident>();
                        ids.Add(new ident("Microsoft.VisualBasic.Strings"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));
                        ids = new List <ident>();
                        ids.Add(new ident("System"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));
                        ids = new List <ident>();
                        ids.Add(new ident("System.Collections.Generic"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));
                        ids = new List <ident>();
                        ids.Add(new ident("Microsoft.VisualBasic.Constants"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));
                        ids = new List <ident>();
                        ids.Add(new ident("Microsoft.VisualBasic.VBMath"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));
                        ids = new List <ident>();
                        ids.Add(new ident("Microsoft.VisualBasic.Information"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));
                        ids = new List <ident>();
                        ids.Add(new ident("Microsoft.VisualBasic.Interaction"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));
                        ids = new List <ident>();
                        ids.Add(new ident("Microsoft.VisualBasic.FileSystem"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));
                        ids = new List <ident>();
                        ids.Add(new ident("Microsoft.VisualBasic.Financial"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));
                        ids = new List <ident>();
                        ids.Add(new ident("Microsoft.VisualBasic.DateAndTime"));
                        mod.interface_part.uses_modules.units.Add(new unit_or_namespace(new ident_list(ids)));

                        add_module_members(mod, td);
                    }
                }
                else if (cu is ICSharpCode.NRefactory.Ast.UsingDeclaration)
                {
                    ICSharpCode.NRefactory.Ast.UsingDeclaration usings = cu as ICSharpCode.NRefactory.Ast.UsingDeclaration;
                    for (int i = 0; i < usings.Usings.Count; i++)
                    {
                        imports.Add(usings.Usings[i].Name);
                    }
                }
            }
            return(mod);
        }