本文整理汇总了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;未经允许,请勿转载。 |
请发表评论