• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# CompilationUnit类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中CompilationUnit的典型用法代码示例。如果您正苦于以下问题:C# CompilationUnit类的具体用法?C# CompilationUnit怎么用?C# CompilationUnit使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



CompilationUnit类属于命名空间,在下文中一共展示了CompilationUnit类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: ToolTipData

			public ToolTipData (ICSharpCode.NRefactory.CSharp.CompilationUnit unit, ICSharpCode.NRefactory.Semantics.ResolveResult result, ICSharpCode.NRefactory.CSharp.AstNode node, CSharpAstResolver file)
			{
				this.Unit = unit;
				this.Result = result;
				this.Node = node;
				this.Resolver = file;
			}
开发者ID:vac0,项目名称:monodevelop,代码行数:7,代码来源:LanguageItemTooltipProvider.cs


示例2: Translate

 private string Translate(CompilationUnit typedCompilationUnit)
 {
     var code = new CodeWriter();
     WriteAction write = typedCompilationUnit.Visit(csTranslator);
     write(code);
     return code.ToString();
 }
开发者ID:rajeshpillai,项目名称:rook,代码行数:7,代码来源:RookCompiler.cs


示例3: TestGetNamespaceContentsCase2

		public void TestGetNamespaceContentsCase2 ()
		{
			CompilationUnit unit = new CompilationUnit ("file.cs");
			unit.Add (new DomType ("ANamespace.AnotherNamespace.AClass"));
			unit.Add (new DomType ("ANamespace.AnotherNamespace.BClass"));
			unit.Add (new DomType ("ANamespace.AnotherNamespace.CClass"));
			unit.Add (new DomType ("ANamespace.AClass2"));
			unit.Add (new DomType ("ANamespace.BClass2"));
			unit.Add (new DomType ("CClass3"));
			
			List<IMember> member = new List<IMember> ();
			unit.GetNamespaceContents (member, "ANamespace", true);
			
			Assert.AreEqual (3, member.Count);
			Namespace ns = member[0] as Namespace;
			Assert.IsNotNull (ns);
			Assert.AreEqual ("AnotherNamespace", ns.Name);
			
			IType type = member[1] as IType;
			Assert.IsNotNull (type);
			Assert.AreEqual ("AClass2", type.Name);
			
			type = member[2] as IType;
			Assert.IsNotNull (type);
			Assert.AreEqual ("BClass2", type.Name);
		}
开发者ID:Kalnor,项目名称:monodevelop,代码行数:26,代码来源:DomCompilationUnitTests.cs


示例4: ReplaceJumpToWhile

        public void ReplaceJumpToWhile()
        {
            var cu = new CompilationUnit().AddStatements(new Statement[]
                {
                    new ExpressionStatement(new MethodInvocation("Delay").AddArgument(60)){ StartOffset = 0, EndOffset = 4 },
                    new ExpressionStatement(new BinaryExpression(new ElementAccess("LocalVariables", 0), Operator.Assignment, new MethodInvocation("GetRandomNumber").AddArgument(10))){ StartOffset = 4, EndOffset = 8 },
                    new ExpressionStatement(new BinaryExpression(new ElementAccess("Variables", 103), Operator.Assignment, 0.ToLiteral())){ StartOffset = 8, EndOffset = 13 },
                    new JumpStatement(true.ToLiteral(), 0){ StartOffset = 13, EndOffset = 16 },
                    new ExpressionStatement(new MethodInvocation("StopObjectCode")){ StartOffset = 16, EndOffset = 17 },
                });
            var expectedCu = new CompilationUnit().AddStatements(new Statement[]
                {
                    new DoWhileStatement(true.ToLiteral(), new BlockStatement().AddStatements(
                            new Statement[]
                            {
                                new ExpressionStatement(new MethodInvocation("Delay").AddArgument(60)){ StartOffset = 0, EndOffset = 4 },
                                new ExpressionStatement(new BinaryExpression(new ElementAccess("LocalVariables", 0), Operator.Assignment, new MethodInvocation("GetRandomNumber").AddArgument(10))){ StartOffset = 4, EndOffset = 8 },
                                new ExpressionStatement(new BinaryExpression(new ElementAccess("Variables", 103), Operator.Assignment, 0.ToLiteral())){ StartOffset = 8, EndOffset = 13 },
                            })),
                    new ExpressionStatement(new MethodInvocation("StopObjectCode")){ StartOffset = 16, EndOffset = 17 },
                });

            var actualCu = new ReplaceJumpToWhile().Replace(cu);
            AstHelper.AstEquals(expectedCu, actualCu);
        }
开发者ID:scemino,项目名称:nscumm,代码行数:25,代码来源:ReplaceJumpToWhileFixtureFixture.cs


示例5: PsiVisitor

        public PsiVisitor(CompilationUnit cu, CompilerDTO dto)
        {
            DTO = dto;
            CurrentCompilationUnit = cu;

            InitHelpers();
        }
开发者ID:hunpody,项目名称:psimulex,代码行数:7,代码来源:PsiVisitor.cs


示例6: ReplaceJumpToIf

        public void ReplaceJumpToIf()
        {
            var cu = new CompilationUnit().AddStatements(new Statement[]
                {
                    new JumpStatement(
                        new BinaryExpression(
                            new SimpleName("Var1"), Operator.Greater, 0.ToLiteral()),
                        10){ StartOffset = 0, EndOffset = 5 },
                    new ExpressionStatement(
                        new MethodInvocation("Print").AddArgument("Var1 is lower or equals to 0".ToLiteral())) { StartOffset = 5, EndOffset = 10 },
                    new ExpressionStatement(
                        new MethodInvocation("Print").AddArgument("End".ToLiteral())) { StartOffset = 10, EndOffset = 15 }
                });
            var expectedCu = new CompilationUnit().AddStatements(new Statement[]
                {
                    new IfStatement(
                        new BinaryExpression(
                            new SimpleName("Var1"), Operator.LowerOrEquals, 0.ToLiteral()),
                        new BlockStatement().AddStatement(
                            new ExpressionStatement(
                                new MethodInvocation("Print").AddArgument("Var1 is lower or equals to 0".ToLiteral())) { StartOffset = 5, EndOffset = 10 })
                    ){ StartOffset = 0, EndOffset = 10 },
                    new ExpressionStatement(
                        new MethodInvocation("Print").AddArgument("End".ToLiteral())) { StartOffset = 10, EndOffset = 15 }
                });

            var actualCu = new ReplaceJumpToIf().Replace(cu);

            AstHelper.AstEquals(expectedCu, actualCu);
        }
开发者ID:scemino,项目名称:nscumm,代码行数:30,代码来源:ChangeJumpToIfFixture.cs


示例7: GatherVisitor

			public GatherVisitor (BaseRefactoringContext context, CompilationUnit unit,
								  AccessToClosureIssue issueProvider)
				: base (context)
			{
				this.title = context.TranslateString (issueProvider.Title);
				this.unit = unit;
				this.issueProvider = issueProvider;
			}
开发者ID:mono-soc-2012,项目名称:NRefactory,代码行数:8,代码来源:AccessToClosureIssue.cs


示例8: Validate

			public void Validate(CompilationUnit cu)
			{
				foreach (AstNode node in cu.DescendantsAndSelf.Except(resolvedNodes)) {
					if (!CSharpAstResolver.IsUnresolvableNode(node)) {
						Console.WriteLine("Forgot to resolve " + node);
					}
				}
			}
开发者ID:KAW0,项目名称:Alter-Native,代码行数:8,代码来源:ResolverTest.cs


示例9: PsiSemanticAnaliserVisitor

        public PsiSemanticAnaliserVisitor(CompilationUnit cu, CompilerDTO dto)
            : base(cu, dto)
        {
            CurrentCompilationUnit = cu;
            DTO = dto;

            InitHelpers();
        }
开发者ID:hunpody,项目名称:psimulex,代码行数:8,代码来源:PsiSemanticAnaliserVisitor.cs


示例10: VisitCompilationUnit

		public override object VisitCompilationUnit(CompilationUnit compilationUnit, object data)
		{
			base.VisitCompilationUnit(compilationUnit, data);
			for (int i = 0; i < nodesToMoveToCompilationUnit.Count; i++) {
				compilationUnit.Children.Insert(i, nodesToMoveToCompilationUnit[i]);
				nodesToMoveToCompilationUnit[i].Parent = compilationUnit;
			}
			return null;
		}
开发者ID:mgagne-atman,项目名称:Projects,代码行数:9,代码来源:ToVBNetConvertVisitor.cs


示例11: Replace

 public CompilationUnit Replace(CompilationUnit cu)
 {
     var visitor = new JumpAstVisitor();
     cu.Accept(visitor);
     var jumps = visitor.Jumps.Where(AcceptJump).ToList();
     var newCu = cu.Accept(new JumpReplacer());
     newCu.Accept(new LabelInserter(jumps));
     return (CompilationUnit)newCu;
 }
开发者ID:scemino,项目名称:nscumm,代码行数:9,代码来源:ReplaceJumpToGoTo.cs


示例12: DynamicallyCompiledLibraries

 public DynamicallyCompiledLibraries(ErrorCollector collector)
 {
     this.collector = collector;
     var name = "DynamicallyCompiledLibraries" + GetHashCode();
     var assembly_builder = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName(name), AssemblyBuilderAccess.Run);
     CompilationUnit.MakeDebuggable(assembly_builder);
     var module_builder = assembly_builder.DefineDynamicModule(name, true);
     unit = new CompilationUnit(module_builder, true);
 }
开发者ID:brian-brazil,项目名称:flabbergast,代码行数:9,代码来源:dlcompile.cs


示例13: CSharpParameterCompletionEngine

		public CSharpParameterCompletionEngine (IDocument document, IParameterCompletionDataFactory factory, IProjectContent content, CSharpTypeResolveContext ctx, CompilationUnit unit, CSharpParsedFile parsedFile) : base (content, ctx, unit, parsedFile)
		{
			if (document == null)
				throw new ArgumentNullException ("document");
			if (factory == null)
				throw new ArgumentNullException ("factory");
			this.document = document;
			this.factory = factory;
		}
开发者ID:Netring,项目名称:ILSpy,代码行数:9,代码来源:CSharpParameterCompletionEngine.cs


示例14: Resolve

		public static ResolveResult Resolve(ICompilation compilation, CSharpParsedFile parsedFile, CompilationUnit cu, TextLocation location,
		                                    CancellationToken cancellationToken = default(CancellationToken))
		{
			AstNode node = cu.GetNodeAt(location);
			if (node == null)
				return null;
			AstNode resolvableNode;
			if (node is AstType) {
				resolvableNode = node;
				if (resolvableNode.Parent is ComposedType) {
					while (resolvableNode.Parent is ComposedType)
						resolvableNode = resolvableNode.Parent;
					//node is preffered over the resolvable node. Which shouldn't be done in the case of nullables, arrays etc.
					node = resolvableNode;
				}
			} else if (node is Identifier) {
				resolvableNode = node.Parent;
			} else if (node.NodeType == NodeType.Token) {
				if (node.Parent is ConstructorInitializer) {
					resolvableNode = node.Parent;
				} else {
					return null;
				}
			} else {
				// don't resolve arbitrary nodes - we don't want to show tooltips for everything
				return null;
			}
			
			if (resolvableNode != null && resolvableNode.Parent is ObjectCreateExpression) {
				resolvableNode = resolvableNode.Parent;
			}
			
			InvocationExpression parentInvocation = null;
			if ((resolvableNode is IdentifierExpression || resolvableNode is MemberReferenceExpression || resolvableNode is PointerReferenceExpression)) {
				// we also need to resolve the invocation
				parentInvocation = resolvableNode.Parent as InvocationExpression;
			}
			
			IResolveVisitorNavigator navigator;
			if (parentInvocation != null)
				navigator = new NodeListResolveVisitorNavigator(new[] { resolvableNode, parentInvocation });
			else
				navigator = new NodeListResolveVisitorNavigator(new[] { resolvableNode });
			
			CSharpResolver resolver = new CSharpResolver(compilation);
			ResolveVisitor v = new ResolveVisitor(resolver, parsedFile, navigator);
			v.Scan(cu);
			
			// Prefer the RR from the token itself, if it was assigned a ResolveResult
			// (this can happen with the identifiers in various nodes such as catch clauses or foreach statements)
			ResolveResult rr = v.GetResolveResult(node) ?? v.GetResolveResult(resolvableNode);
			if (rr is MethodGroupResolveResult && parentInvocation != null)
				return v.GetResolveResult(parentInvocation);
			else
				return rr;
		}
开发者ID:nylen,项目名称:SharpDevelop,代码行数:56,代码来源:ResolveAtLocation.cs


示例15: Resolve

		public static ResolveResult Resolve(Lazy<ICompilation> compilation, CSharpParsedFile parsedFile, CompilationUnit cu, TextLocation location, out AstNode node,
		                                    CancellationToken cancellationToken = default(CancellationToken))
		{
			node = cu.GetNodeAt(location);
			if (node == null || node is ArrayInitializerExpression)
				return null;
			if (CSharpAstResolver.IsUnresolvableNode(node)) {
				if (node is Identifier) {
					node = node.Parent;
				} else if (node.NodeType == NodeType.Token) {
					if (node.Parent is IndexerExpression || node.Parent is ConstructorInitializer) {
						Console.WriteLine (2);
						// There's no other place where one could hover to see the indexer's tooltip,
						// so we need to resolve it when hovering over the '[' or ']'.
						// For constructor initializer, the same applies to the 'base'/'this' token.
						node = node.Parent;
					} else {
						return null;
					}
				} else {
					// don't resolve arbitrary nodes - we don't want to show tooltips for everything
					return null;
				}
			} else {
				// It's a resolvable node.
				// However, we usually don't want to show the tooltip everywhere
				// For example, hovering with the mouse over an empty line between two methods causes
				// node==TypeDeclaration, but we don't want to show any tooltip.
				
				if (!node.GetChildByRole(Roles.Identifier).IsNull) {
					// We'll suppress the tooltip for resolvable nodes if there is an identifier that
					// could be hovered over instead:
					return null;
				}
			}
			if (node == null)
				return null;
			
			if (node.Parent is ObjectCreateExpression && node.Role == Roles.Type) {
				node = node.Parent;
			}
			
			InvocationExpression parentInvocation = null;
			if ((node is IdentifierExpression || node is MemberReferenceExpression || node is PointerReferenceExpression) && node.Role != Roles.Argument) {
				// we also need to resolve the invocation
				parentInvocation = node.Parent as InvocationExpression;
			}
			
			// TODO: I think we should provide an overload so that an existing CSharpAstResolver can be reused
			CSharpAstResolver resolver = new CSharpAstResolver(compilation.Value, cu, parsedFile);
			ResolveResult rr = resolver.Resolve(node, cancellationToken);
			if (rr is MethodGroupResolveResult && parentInvocation != null)
				return resolver.Resolve(parentInvocation);
			else
				return rr;
		}
开发者ID:xamarin-release-manager,项目名称:monodevelop,代码行数:56,代码来源:ResolveAtLocation.cs


示例16: Replace

 public CompilationUnit Replace(CompilationUnit cu)
 {
     var visitor = new JumpAstVisitor();
     cu.Accept(visitor);
     var jumps = visitor.Jumps.Where(jump => jump.JumpOffset < jump.StartOffset).OrderByDescending(jmp => jmp.JumpOffset).ThenByDescending(jmp => jmp.StartOffset).ToList();
     foreach (var jump in jumps)
     {
         cu = new CompilationUnit().AddStatements(ReplaceJump(jump, cu.Statement));
     }
     return cu;
 }
开发者ID:scemino,项目名称:nscumm,代码行数:11,代码来源:ReplaceJumpToWhile.cs


示例17: CSharpAstResolver

		/// <summary>
		/// Creates a new C# AST resolver.
		/// Use this overload if you are resolving within a complete C# file.
		/// </summary>
		/// <param name="compilation">The current compilation.</param>
		/// <param name="compilationUnit">The compilation unit corresponding to the specified parsed file.</param>
		/// <param name="parsedFile">
		/// Optional: Result of the <see cref="TypeSystemConvertVisitor"/> for the file being resolved.
		/// <para>
		/// This is used for setting up the context on the resolver. The parsed file must be registered in the compilation.
		/// </para>
		/// <para>
		/// When a parsedFile is specified, the resolver will use the member's StartLocation/EndLocation to identify
		/// member declarations in the AST with members in the type system.
		/// When no parsedFile is specified (<c>null</c> value for this parameter), the resolver will instead compare the
		/// member's signature in the AST with the signature in the type system.
		/// </para>
		/// </param>
		public CSharpAstResolver(ICompilation compilation, CompilationUnit compilationUnit, CSharpParsedFile parsedFile = null)
		{
			if (compilation == null)
				throw new ArgumentNullException("compilation");
			if (compilationUnit == null)
				throw new ArgumentNullException("compilationUnit");
			this.initialResolverState = new CSharpResolver(compilation);
			this.rootNode = compilationUnit;
			this.parsedFile = parsedFile;
			this.resolveVisitor = new ResolveVisitor(initialResolverState, parsedFile);
		}
开发者ID:M1C,项目名称:monodevelop,代码行数:29,代码来源:CSharpAstResolver.cs


示例18: Build

        public CompilerResult Build(CompilationUnit compilationUnit)
        {
            var typeChecker = new TypeChecker();
            var typedCompilationUnit = typeChecker.TypeCheck(compilationUnit);

            if (typeChecker.HasErrors)
                return new CompilerResult(Language.Rook, typeChecker.Errors);

            string translatedCode = Translate(typedCompilationUnit);
            return csCompiler.Build(translatedCode);
        }
开发者ID:rajeshpillai,项目名称:rook,代码行数:11,代码来源:RookCompiler.cs


示例19: InitializeTest

 public void InitializeTest()
 {
     _compilationUnit = new CompilationUnit();
     _compilation = new Compilation(new SourceAssembly("TestAssembly")
     {
         SourceFiles = { new SourceFile("dummy") { CompilationUnit = _compilationUnit } }
     })
     {
         Assemblies = { _mscorlibAssembly },
     };
 }
开发者ID:JerreS,项目名称:AbstractCode,代码行数:11,代码来源:MemberResolutionTests.cs


示例20: FindUsage

		protected static bool FindUsage (BaseRefactoringContext context, CompilationUnit unit,
										 ITypeParameter typaParameter, AstNode declaration)
		{
			var found = false;
			refFinder.FindTypeParameterReferences (typaParameter, context.ParsedFile, unit, context.Compilation,
				(node, resolveResult) =>
				{
					found = found || node != declaration;
				}, context.CancellationToken);
			return found;
		}
开发者ID:mono-soc-2012,项目名称:NRefactory,代码行数:11,代码来源:TypeParameterNotUsedIssue.cs



注:本文中的CompilationUnit类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# CompileMessages类代码示例发布时间:2022-05-24
下一篇:
C# CompilationStartAnalysisContext类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap