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

C# Ast.TypeReferenceExpression类代码示例

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

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



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

示例1: TrackedVisitIdentifierExpression

        public override object TrackedVisitIdentifierExpression(IdentifierExpression identifierExpression, object data)
        {
            if (identifierExpression.Parent is InvocationExpression)
                return null;
            IList staticTypes = new ArrayList();

            staticTypes.Add("java.lang.String");
            staticTypes.Add("java.lang.Object");

            string type = GetStaticFullName(identifierExpression.Identifier, identifierExpression);
            if (type != null)
            {
                if (!staticTypes.Contains(type) && CodeBase.Mappings.Contains(type))
                {
                    string mappedType = CodeBase.Mappings[type].Target;
                    TypeReferenceExpression rpe = new TypeReferenceExpression(mappedType);
                    rpe.Parent = identifierExpression.Parent;
                    ReplaceCurrentNode(rpe);
                }
                else if (CodeBase.Types.Contains(type))
                {
                    if (!UsedTypes.Contains(type))
                        UsedTypes.Add(type);
                }
            }
            return null;
        }
开发者ID:sourcewarehouse,项目名称:janett,代码行数:27,代码来源:TypeMapper.cs


示例2: TrackedVisitFieldReferenceExpression

        public override object TrackedVisitFieldReferenceExpression(FieldReferenceExpression fieldReferenceExpression, object data)
        {
            string targetString;
            if (projectTypes)
            {
                targetString = GetTargetString(fieldReferenceExpression);
                if (CodeBase.Mappings.Contains(targetString))
                {
                    TypeReferenceExpression typeExpression = new TypeReferenceExpression(targetString);
                    typeExpression.Parent = fieldReferenceExpression.Parent;
                    ReplaceCurrentNode(typeExpression);
                    return null;
                }
            }
            else if (!IsMethodInvocation(fieldReferenceExpression) && ReachToInvocation(fieldReferenceExpression))
            {
                targetString = GetTargetString(fieldReferenceExpression);
                if (targetString.StartsWith("id"))
                    return null;
                string suffix = "__";
                if (targetString.IndexOf(suffix) != -1)
                {
                    if (targetString.EndsWith(suffix))
                        targetString = targetString.Substring(0, targetString.Length - suffix.Length);
                    else
                        return base.TrackedVisitFieldReferenceExpression(fieldReferenceExpression, data);
                }

                TypeReferenceExpression typeExpression = new TypeReferenceExpression(targetString);
                typeExpression.Parent = fieldReferenceExpression.Parent;
                ReplaceCurrentNode(typeExpression);
                return null;
            }
            return base.TrackedVisitFieldReferenceExpression(fieldReferenceExpression, data);
        }
开发者ID:sourcewarehouse,项目名称:janett,代码行数:35,代码来源:TypeReferenceCorrector.cs


示例3: TrackedVisitIdentifierExpression

 public override object TrackedVisitIdentifierExpression(IdentifierExpression identifierExpression, object data)
 {
     if (identifierExpression.Identifier == "System")
     {
         TypeReferenceExpression typeReferenceExpression = new TypeReferenceExpression("java.lang.System");
         ReplaceCurrentNode(typeReferenceExpression);
     }
     return base.TrackedVisitIdentifierExpression(identifierExpression, data);
 }
开发者ID:sourcewarehouse,项目名称:janett,代码行数:9,代码来源:SystemFieldsTransformer.cs


示例4: TrackedVisitIdentifierExpression

 public override object TrackedVisitIdentifierExpression(IdentifierExpression identifierExpression, object data)
 {
     if (similarTypes.Contains(identifierExpression.Identifier))
     {
         string fullTypeName = (string) similarTypes[identifierExpression.Identifier];
         TypeReferenceExpression typeReferenceExpression = new TypeReferenceExpression(fullTypeName);
         ReplaceCurrentNode(typeReferenceExpression);
     }
     return base.TrackedVisitIdentifierExpression(identifierExpression, data);
 }
开发者ID:sourcewarehouse,项目名称:janett,代码行数:10,代码来源:SameProjectAndExternalTypeNameTransformer.cs


示例5: TrackedVisitTypeReferenceExpression

        public override object TrackedVisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data)
        {
            TypeReference typeReference = typeReferenceExpression.TypeReference;

            if (typeReference.Kind == TypeReferenceKind.DotClass)
            {
                Expression replacedExpression = GetReplacedExpression(typeReference);
                ReplaceCurrentNode(replacedExpression);
            }
            return base.TrackedVisitTypeReferenceExpression(typeReferenceExpression, data);
        }
开发者ID:sourcewarehouse,项目名称:janett,代码行数:11,代码来源:DotClassTransformer.cs


示例6: TrackedVisitMethodDeclaration

        public override object TrackedVisitMethodDeclaration(MethodDeclaration methodDeclaration, object data)
        {
            if (AstUtil.ContainsModifier(methodDeclaration, Modifiers.Synchronized))
            {
                List<Expression> positionalArgs = new List<Expression>();
                TypeReferenceExpression system = new TypeReferenceExpression("System.Runtime.CompilerServices.MethodImplOptions");
                FieldReferenceExpression attributeArgument = new FieldReferenceExpression(system, "Synchronized");
                positionalArgs.Add(attributeArgument);

                AttributeSection attributeSection = CreateAttributeSection("System.Runtime.CompilerServices.MethodImplAttribute", positionalArgs);
                MethodDeclaration replacedMethod = methodDeclaration;
                replacedMethod.Attributes.Add(attributeSection);
                attributeSection.Parent = replacedMethod;
                ReplaceCurrentNode(replacedMethod);
            }
            return base.TrackedVisitMethodDeclaration(methodDeclaration, data);
        }
开发者ID:sourcewarehouse,项目名称:janett,代码行数:17,代码来源:JavaModifiersTransformer.cs


示例7: TrackedVisitIdentifierExpression

        public override object TrackedVisitIdentifierExpression(IdentifierExpression identifierExpression, object data)
        {
            string identifier = ContainsIdentifier(identifierExpression);

            if (identifier != null)
            {
                TypeReferenceExpression replacedIdentifier = new TypeReferenceExpression(identifier);
                replacedIdentifier.Parent = identifierExpression.Parent;

                ReplaceCurrentNode(replacedIdentifier);
            }
            else
            {
                TypeDeclaration typeDeclaration = (TypeDeclaration) AstUtil.GetParentOfType(identifierExpression, typeof(TypeDeclaration));
                if (typeDeclaration != null)
                    CheckThroughParents(typeDeclaration, identifierExpression);
            }
            return null;
        }
开发者ID:sourcewarehouse,项目名称:janett,代码行数:19,代码来源:ReferenceTransformer.cs


示例8: CheckThroughParents

 private void CheckThroughParents(TypeDeclaration typeDeclaration, IdentifierExpression identifierExpression)
 {
     if (typeDeclaration.Parent is TypeDeclaration)
     {
         TypeDeclaration parent = (TypeDeclaration) typeDeclaration.Parent;
         CheckThroughParents(parent, identifierExpression);
     }
     if (typeDeclaration.BaseTypes.Count > 0)
     {
         foreach (TypeReference baseType in typeDeclaration.BaseTypes)
         {
             string fullName = GetFullName(baseType);
             if (CodeBase.References.Contains(fullName))
             {
                 string referedBaseType = (string) CodeBase.References[fullName];
                 TypeReference newBaseType = AstUtil.GetTypeReference(referedBaseType, baseType.Parent);
                 string referenceBaseType = GetFullName(newBaseType);
                 TypeDeclaration baseTypeDeclaration = (TypeDeclaration) CodeBase.Types[referenceBaseType];
                 if (baseTypeDeclaration != null)
                 {
                     if (DefinedInFieldsClass(baseTypeDeclaration, identifierExpression.Identifier))
                     {
                         TypeReferenceExpression id = new TypeReferenceExpression(referedBaseType);
                         FieldReferenceExpression replaced = new FieldReferenceExpression(id, identifierExpression.Identifier);
                         replaced.Parent = identifierExpression.Parent;
                         ReplaceCurrentNode(replaced);
                     }
                     else
                     {
                         TypeDeclaration type = (TypeDeclaration) CodeBase.Types[fullName];
                         CheckThroughParents(type, identifierExpression);
                     }
                 }
             }
             else if (CodeBase.Types.Contains(fullName))
             {
                 TypeDeclaration baseTypeDeclaration = (TypeDeclaration) CodeBase.Types[fullName];
                 CheckThroughParents(baseTypeDeclaration, identifierExpression);
             }
         }
     }
 }
开发者ID:sourcewarehouse,项目名称:janett,代码行数:42,代码来源:ReferenceTransformer.cs


示例9: VisitTypeReferenceExpression

 public virtual object VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data)
 {
     Debug.Assert((typeReferenceExpression != null));
     Debug.Assert((typeReferenceExpression.TypeReference != null));
     return typeReferenceExpression.TypeReference.AcceptVisitor(this, data);
 }
开发者ID:pusp,项目名称:o2platform,代码行数:6,代码来源:AbstractASTVisitor.cs


示例10: VisitTypeReferenceExpression

		public override object VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data)
		{
			string[] types = typeReferenceExpression.TypeReference.Type.Split ('.');
			if (types == null || types.Length == 0)
				return null;
			if (types.Length == 1) {
				ResolveResult result = resolver.ResolveIdentifier (this, typeReferenceExpression.TypeReference.Type);
				if (result == null) 
					result = CreateResult (typeReferenceExpression.TypeReference);
				result.StaticResolve = true;
				return result;
			}
			Expression expr = new IdentifierExpression (types[0]);
			for (int i = 1; i < types.Length; i++) {
				if (types[i] != "?")
					expr = new MemberReferenceExpression (expr, types[i]);
			}
			
			return expr.AcceptVisitor (this, data);
		}
开发者ID:Ein,项目名称:monodevelop,代码行数:20,代码来源:ResolveVisitor.cs


示例11: SimpleNonInvocationExpression


//.........这里部分代码省略.........
				break;
			}
			case 2: case 47: case 49: case 50: case 51: case 70: case 95: case 134: case 144: case 169: case 176: case 177: case 205: {
				Identifier();

#line  1616 "VBNET.ATG" 
				pexpr = new IdentifierExpression(t.val); 

#line  1617 "VBNET.ATG" 
				pexpr.StartLocation = t.Location; pexpr.EndLocation = t.EndLocation; 
				break;
			}
			case 52: case 54: case 65: case 76: case 77: case 84: case 111: case 117: case 133: case 159: case 160: case 165: case 191: case 192: case 193: case 194: {

#line  1618 "VBNET.ATG" 
				string val = String.Empty; 
				if (StartOf(10)) {
					PrimitiveTypeName(
#line  1619 "VBNET.ATG" 
out val);
				} else if (la.kind == 133) {
					lexer.NextToken();

#line  1619 "VBNET.ATG" 
					val = "Object"; 
				} else SynErr(240);
				Expect(10);

#line  1620 "VBNET.ATG" 
				t.val = ""; 
				Identifier();

#line  1620 "VBNET.ATG" 
				pexpr = new MemberReferenceExpression(new TypeReferenceExpression(val), t.val); 
				break;
			}
			case 119: {
				lexer.NextToken();

#line  1621 "VBNET.ATG" 
				pexpr = new ThisReferenceExpression(); 
				break;
			}
			case 124: case 125: {

#line  1622 "VBNET.ATG" 
				Expression retExpr = null; 
				if (la.kind == 124) {
					lexer.NextToken();

#line  1623 "VBNET.ATG" 
					retExpr = new BaseReferenceExpression(); 
				} else if (la.kind == 125) {
					lexer.NextToken();

#line  1624 "VBNET.ATG" 
					retExpr = new ClassReferenceExpression(); 
				} else SynErr(241);
				Expect(10);
				IdentifierOrKeyword(
#line  1626 "VBNET.ATG" 
out name);

#line  1626 "VBNET.ATG" 
				pexpr = new MemberReferenceExpression(retExpr, name); 
				break;
开发者ID:almazik,项目名称:ILSpy,代码行数:67,代码来源:Parser.cs


示例12: SimpleNonInvocationExpression


//.........这里部分代码省略.........

#line  1755 "VBNET.ATG" 
				pexpr = new IdentifierExpression(t.val);
				pexpr.StartLocation = t.Location; pexpr.EndLocation = t.EndLocation;
				
				if (
#line  1758 "VBNET.ATG" 
la.kind == Tokens.OpenParenthesis && Peek(1).kind == Tokens.Of) {
					lexer.NextToken();
					Expect(172);
					TypeArgumentList(
#line  1759 "VBNET.ATG" 
((IdentifierExpression)pexpr).TypeArguments);
					Expect(38);
				}
				break;
			}
			case 70: case 73: case 84: case 101: case 102: case 111: case 143: case 154: case 171: case 199: case 204: case 205: case 211: case 224: case 225: case 228: {

#line  1761 "VBNET.ATG" 
				string val = String.Empty; 
				if (StartOf(12)) {
					PrimitiveTypeName(
#line  1762 "VBNET.ATG" 
out val);
				} else if (la.kind == 171) {
					lexer.NextToken();

#line  1762 "VBNET.ATG" 
					val = "System.Object"; 
				} else SynErr(284);

#line  1763 "VBNET.ATG" 
				pexpr = new TypeReferenceExpression(new TypeReference(val, true)); 
				break;
			}
			case 156: {
				lexer.NextToken();

#line  1764 "VBNET.ATG" 
				pexpr = new ThisReferenceExpression(); 
				break;
			}
			case 161: case 162: {

#line  1765 "VBNET.ATG" 
				Expression retExpr = null; 
				if (la.kind == 161) {
					lexer.NextToken();

#line  1766 "VBNET.ATG" 
					retExpr = new BaseReferenceExpression() { StartLocation = t.Location, EndLocation = t.EndLocation }; 
				} else if (la.kind == 162) {
					lexer.NextToken();

#line  1767 "VBNET.ATG" 
					retExpr = new ClassReferenceExpression() { StartLocation = t.Location, EndLocation = t.EndLocation }; 
				} else SynErr(285);
				Expect(26);
				IdentifierOrKeyword(
#line  1769 "VBNET.ATG" 
out name);

#line  1769 "VBNET.ATG" 
				pexpr = new MemberReferenceExpression(retExpr, name) { StartLocation = startLocation, EndLocation = t.EndLocation }; 
				break;
开发者ID:BooMWax,项目名称:SharpDevelop,代码行数:67,代码来源:Parser.cs


示例13: VisitTypeReferenceExpression

 // RG: CodeTypeReferenceExpression
 public override object VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data)
 {
     return new CodeTypeReferenceExpression(ConvType(typeReferenceExpression.TypeReference));
 }
开发者ID:almazik,项目名称:ILSpy,代码行数:5,代码来源:CodeDOMOutputVisitor.cs


示例14: TrackedVisitTypeReferenceExpression

 public override object TrackedVisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data)
 {
     this.Append(this.GetTypeName(typeReferenceExpression.TypeReference));
     return null;
 }
开发者ID:L3tum,项目名称:BesiegeScriptingMod,代码行数:5,代码来源:NRefactoryToPythonConverter.cs


示例15: VisitTypeReferenceExpression

		public override object VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data)
		{
			return CreateReturnType(typeReferenceExpression.TypeReference);
		}
开发者ID:xuchuansheng,项目名称:GenXSource,代码行数:4,代码来源:TypeVisitor.cs


示例16: SimpleNonInvocationExpression


//.........这里部分代码省略.........

#line  1668 "VBNET.ATG" 
				pexpr = new IdentifierExpression(t.val);
				pexpr.StartLocation = t.Location; pexpr.EndLocation = t.EndLocation;
				
				if (
#line  1671 "VBNET.ATG" 
la.kind == Tokens.OpenParenthesis && Peek(1).kind == Tokens.Of) {
					lexer.NextToken();
					Expect(155);
					TypeArgumentList(
#line  1672 "VBNET.ATG" 
((IdentifierExpression)pexpr).TypeArguments);
					Expect(26);
				}
				break;
			}
			case 55: case 58: case 69: case 86: case 87: case 96: case 128: case 137: case 154: case 181: case 186: case 187: case 193: case 206: case 207: case 210: {

#line  1674 "VBNET.ATG" 
				string val = String.Empty; 
				if (StartOf(11)) {
					PrimitiveTypeName(
#line  1675 "VBNET.ATG" 
out val);
				} else if (la.kind == 154) {
					lexer.NextToken();

#line  1675 "VBNET.ATG" 
					val = "System.Object"; 
				} else SynErr(257);

#line  1676 "VBNET.ATG" 
				pexpr = new TypeReferenceExpression(new TypeReference(val, true)); 
				break;
			}
			case 139: {
				lexer.NextToken();

#line  1677 "VBNET.ATG" 
				pexpr = new ThisReferenceExpression(); 
				break;
			}
			case 144: case 145: {

#line  1678 "VBNET.ATG" 
				Expression retExpr = null; 
				if (la.kind == 144) {
					lexer.NextToken();

#line  1679 "VBNET.ATG" 
					retExpr = new BaseReferenceExpression(); 
				} else if (la.kind == 145) {
					lexer.NextToken();

#line  1680 "VBNET.ATG" 
					retExpr = new ClassReferenceExpression(); 
				} else SynErr(258);
				Expect(16);
				IdentifierOrKeyword(
#line  1682 "VBNET.ATG" 
out name);

#line  1682 "VBNET.ATG" 
				pexpr = new MemberReferenceExpression(retExpr, name); 
				break;
开发者ID:Adam-Fogle,项目名称:agentralphplugin,代码行数:67,代码来源:Parser.cs


示例17: TrackedVisitTypeReferenceExpression

		public virtual object TrackedVisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data) {
			return base.VisitTypeReferenceExpression(typeReferenceExpression, data);
		}
开发者ID:transformersprimeabcxyz,项目名称:monodevelop-1,代码行数:3,代码来源:NodeTrackingAstVisitor.cs


示例18: PrimaryExpr

	void PrimaryExpr(
#line  1895 "cs.ATG" 
out Expression pexpr) {

#line  1897 "cs.ATG" 
		TypeReference type = null;
		Expression expr;
		pexpr = null;
		

#line  1902 "cs.ATG" 
		Location startLocation = la.Location; 
		if (la.kind == 113) {
			lexer.NextToken();

#line  1904 "cs.ATG" 
			pexpr = new PrimitiveExpression(true, "true");  
		} else if (la.kind == 72) {
			lexer.NextToken();

#line  1905 "cs.ATG" 
			pexpr = new PrimitiveExpression(false, "false"); 
		} else if (la.kind == 90) {
			lexer.NextToken();

#line  1906 "cs.ATG" 
			pexpr = new PrimitiveExpression(null, "null");  
		} else if (la.kind == 2) {
			lexer.NextToken();

#line  1907 "cs.ATG" 
			pexpr = new PrimitiveExpression(t.literalValue, t.val) { LiteralFormat = t.literalFormat };  
		} else if (
#line  1908 "cs.ATG" 
StartOfQueryExpression()) {
			QueryExpression(
#line  1909 "cs.ATG" 
out pexpr);
		} else if (
#line  1910 "cs.ATG" 
IdentAndDoubleColon()) {
			Identifier();

#line  1911 "cs.ATG" 
			type = new TypeReference(t.val); 
			Expect(10);

#line  1912 "cs.ATG" 
			pexpr = new TypeReferenceExpression(type); 
			Identifier();

#line  1913 "cs.ATG" 
			if (type.Type == "global") { type.IsGlobal = true; type.Type = t.val ?? "?"; } else type.Type += "." + (t.val ?? "?"); 
		} else if (la.kind == 64) {
			lexer.NextToken();
			AnonymousMethodExpr(
#line  1915 "cs.ATG" 
out expr);

#line  1915 "cs.ATG" 
			pexpr = expr; 
		} else if (
#line  1916 "cs.ATG" 
la.kind == Tokens.Async && Peek(1).kind == Tokens.Delegate) {
			Expect(145);
			Expect(64);
			AnonymousMethodExpr(
#line  1917 "cs.ATG" 
out expr);

#line  1917 "cs.ATG" 
			pexpr = expr; 

#line  1918 "cs.ATG" 
			((AnonymousMethodExpression)expr).IsAsync = true; 
		} else if (
#line  1920 "cs.ATG" 
la.kind == Tokens.Async && Peek(1).kind == Tokens.OpenParenthesis) {
			Expect(145);
			LambdaExpression(
#line  1922 "cs.ATG" 
out pexpr);

#line  1923 "cs.ATG" 
			((LambdaExpression)pexpr).IsAsync = true; 
		} else if (
#line  1925 "cs.ATG" 
la.kind == Tokens.Async && IsIdentifierToken(Peek(1))) {
			Expect(145);
			Identifier();

#line  1927 "cs.ATG" 
			pexpr = new IdentifierExpression(t.val); 
			ShortedLambdaExpression(
#line  1928 "cs.ATG" 
(IdentifierExpression)pexpr, out pexpr);

#line  1929 "cs.ATG" 
			((LambdaExpression)pexpr).IsAsync = true; 
		} else if (StartOf(18)) {
//.........这里部分代码省略.........
开发者ID:pluraldj,项目名称:SharpDevelop,代码行数:101,代码来源:Parser.cs


示例19: VisitTypeReferenceExpression

 public object VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data)
 {
     typeReferenceExpression.TypeReference.AcceptVisitor (this, data);
     return data;
 }
开发者ID:Monobjc,项目名称:monobjc-tools,代码行数:5,代码来源:CodeDomExpressionPrinter.cs


示例20: IsMatch

 private bool IsMatch(TypeReferenceExpression left, TypeReferenceExpression right)
 {
     return true;
 }
开发者ID:Adam-Fogle,项目名称:agentralphplugin,代码行数:4,代码来源:AstComparisonVisitor.cs



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C# Ast.UnaryOperatorExpression类代码示例发布时间:2022-05-26
下一篇:
C# Ast.TypeReference类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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