void Attribute( #line 232 "Frames/cs.ATG" out ASTAttribute attribute) { #line 233 "Frames/cs.ATG" string qualident; string alias = null; #line 237 "Frames/cs.ATG" Location startPos = la.Location; if ( #line 238 "Frames/cs.ATG" IdentAndDoubleColon()) { Identifier(); #line 239 "Frames/cs.ATG" alias = t.val; Expect(10); } Qualident( #line 242 "Frames/cs.ATG" out qualident); #line 243 "Frames/cs.ATG" List<Expression> positional = null; List<NamedArgumentExpression> named = null; string name = (alias != null && alias != "global") ? alias + "." + qualident : qualident; if (la.kind == 20) { AttributeArguments( #line 247 "Frames/cs.ATG" out positional, out named); } #line 248 "Frames/cs.ATG" attribute = new ASTAttribute(name, positional, named); attribute.StartLocation = startPos; attribute.EndLocation = t.EndLocation; }
public override object VisitDeclareDeclaration(DeclareDeclaration declareDeclaration, object data) { if (usings != null && !usings.ContainsKey("System.Runtime.InteropServices")) { UsingDeclaration @using = new UsingDeclaration("System.Runtime.InteropServices"); addedUsings.Add(@using); base.VisitUsingDeclaration(@using, data); } MethodDeclaration method = new MethodDeclaration { Name = declareDeclaration.Name, Modifier = declareDeclaration.Modifier, TypeReference = declareDeclaration.TypeReference, Parameters = declareDeclaration.Parameters, Attributes = declareDeclaration.Attributes }; if ((method.Modifier & Modifiers.Visibility) == 0) method.Modifier |= Modifiers.Public; method.Modifier |= Modifiers.Extern | Modifiers.Static; if (method.TypeReference.IsNull) { method.TypeReference = new TypeReference("System.Void", true); } Attribute att = new Attribute("DllImport", null, null); att.PositionalArguments.Add(CreateStringLiteral(declareDeclaration.Library)); if (declareDeclaration.Alias.Length > 0) { att.NamedArguments.Add(new NamedArgumentExpression("EntryPoint", CreateStringLiteral(declareDeclaration.Alias))); } switch (declareDeclaration.Charset) { case CharsetModifier.Auto: att.NamedArguments.Add(new NamedArgumentExpression("CharSet", new MemberReferenceExpression(new IdentifierExpression("CharSet"), "Auto"))); break; case CharsetModifier.Unicode: att.NamedArguments.Add(new NamedArgumentExpression("CharSet", new MemberReferenceExpression(new IdentifierExpression("CharSet"), "Unicode"))); break; default: att.NamedArguments.Add(new NamedArgumentExpression("CharSet", new MemberReferenceExpression(new IdentifierExpression("CharSet"), "Ansi"))); break; } att.NamedArguments.Add(new NamedArgumentExpression("SetLastError", new PrimitiveExpression(true, true.ToString()))); att.NamedArguments.Add(new NamedArgumentExpression("ExactSpelling", new PrimitiveExpression(true, true.ToString()))); method.Attributes.Add(new AttributeSection { Attributes = { att } }); ReplaceCurrentNode(method); return base.VisitMethodDeclaration(method, data); }
public override object VisitDeclareDeclaration(DeclareDeclaration declareDeclaration, object data) { if (usings != null && !usings.ContainsKey("System.Runtime.InteropServices")) { UsingDeclaration @using = new UsingDeclaration("System.Runtime.InteropServices"); addedUsings.Add(@using); base.VisitUsingDeclaration(@using, data); } MethodDeclaration method = new MethodDeclaration { Name = declareDeclaration.Name, Modifier = declareDeclaration.Modifier, TypeReference = declareDeclaration.TypeReference, Parameters = declareDeclaration.Parameters, Attributes = declareDeclaration.Attributes }; if ((method.Modifier & Modifiers.Visibility) == 0) { method.Modifier |= Modifiers.Public; } method.Modifier |= Modifiers.Extern | Modifiers.Static; if (method.TypeReference.IsNull) { method.TypeReference = new TypeReference("System.Void", true); } Attribute att = new Attribute("DllImport", null, null); att.PositionalArguments.Add(CreateStringLiteral(declareDeclaration.Library)); if (declareDeclaration.Alias.Length > 0) { att.NamedArguments.Add(new NamedArgumentExpression("EntryPoint", CreateStringLiteral(declareDeclaration.Alias))); } switch (declareDeclaration.Charset) { case CharsetModifier.Auto: att.NamedArguments.Add(new NamedArgumentExpression("CharSet", new MemberReferenceExpression(new IdentifierExpression("CharSet"), "Auto"))); break; case CharsetModifier.Unicode: att.NamedArguments.Add(new NamedArgumentExpression("CharSet", new MemberReferenceExpression(new IdentifierExpression("CharSet"), "Unicode"))); break; default: att.NamedArguments.Add(new NamedArgumentExpression("CharSet", new MemberReferenceExpression(new IdentifierExpression("CharSet"), "Ansi"))); break; } att.NamedArguments.Add(new NamedArgumentExpression("SetLastError", new PrimitiveExpression(true, true.ToString()))); att.NamedArguments.Add(new NamedArgumentExpression("ExactSpelling", new PrimitiveExpression(true, true.ToString()))); method.Attributes.Add(new AttributeSection { Attributes = { att } }); ReplaceCurrentNode(method); return(base.VisitMethodDeclaration(method, data)); }
void Attribute( #line 2544 "VBNET.ATG" out ASTAttribute attribute) { #line 2545 "VBNET.ATG" string name; List<Expression> positional = new List<Expression>(); List<NamedArgumentExpression> named = new List<NamedArgumentExpression>(); if (la.kind == 117) { lexer.NextToken(); Expect(16); } Qualident( #line 2550 "VBNET.ATG" out name); if (la.kind == 25) { AttributeArguments( #line 2551 "VBNET.ATG" positional, named); } #line 2553 "VBNET.ATG" attribute = new ASTAttribute(name, positional, named); }
public virtual object VisitAttribute(ICSharpCode.OldNRefactory.Ast.Attribute attribute, object data) { throw new global::System.NotImplementedException("Attribute"); }