/// <summary> /// /// </summary> /// <param name="module"></param> /// <param name="previouslyParsedAttribute"></param> /// <param name="RequireDeclDef">If no colon and no open curly brace is given as lookahead, a DeclDef may be parsed otherwise, if parameter is true.</param> /// <returns></returns> IMetaDeclaration AttributeTrail(DBlockNode module, DAttribute previouslyParsedAttribute, bool RequireDeclDef = false) { if (laKind == Colon) { Step(); PushAttribute(previouslyParsedAttribute, true); AttributeMetaDeclarationSection metaDecl = null; //TODO: Put all remaining block/decl(?) attributes into the section definition.. if(module!=null) module.Add(metaDecl = new AttributeMetaDeclarationSection(previouslyParsedAttribute) { EndLocation = t.EndLocation }); return metaDecl; } else PushAttribute(previouslyParsedAttribute, false); if (laKind == OpenCurlyBrace) return AttributeBlock(module); else { if (IsEOF && module != null && previouslyParsedAttribute != null) // To enable attribute completion, add dummy node module.Add (new DVariable{ Attributes = new List<DAttribute>{ previouslyParsedAttribute } }); if (RequireDeclDef) DeclDef(module); return new AttributeMetaDeclaration(previouslyParsedAttribute) { EndLocation = previouslyParsedAttribute.EndLocation }; } }
public virtual void Visit(AttributeMetaDeclarationSection attributeMetaDeclarationSection) { Visit((AttributeMetaDeclaration)attributeMetaDeclarationSection); }
public virtual void VisitAttributeMetaDeclarationSection(AttributeMetaDeclarationSection m) { VisitAttributeMetaDeclaration(m); }
public override void Visit(AttributeMetaDeclarationSection attributeMetaDeclarationSection) { base.Visit(attributeMetaDeclarationSection); }
/// <summary> /// /// </summary> /// <param name="module"></param> /// <param name="previouslyParsedAttribute"></param> /// <param name="RequireDeclDef">If no colon and no open curly brace is given as lookahead, a DeclDef may be parsed otherwise, if parameter is true.</param> /// <returns></returns> IMetaDeclaration AttributeSpecifier(DBlockNode module, DAttribute previouslyParsedAttribute, bool RequireDeclDef = false) { DAttribute[] attrs; if (laKind == Colon) { Step(); PushAttribute(previouslyParsedAttribute, true); attrs = new DAttribute[1 + DeclarationAttributes.Count]; DeclarationAttributes.CopyTo(attrs, 0); DeclarationAttributes.Clear(); attrs[attrs.Length - 1] = previouslyParsedAttribute; AttributeMetaDeclarationSection metaDecl = null; //TODO: Put all remaining block/decl(?) attributes into the section definition.. if(module!=null) module.Add(metaDecl = new AttributeMetaDeclarationSection(attrs) { EndLocation = t.EndLocation }); return metaDecl; } else PushAttribute(previouslyParsedAttribute, false); if (laKind == OpenCurlyBrace) return AttributeBlock(module); else { if (IsEOF && module != null && previouslyParsedAttribute != null) // To enable attribute completion, add dummy node module.Add (new DVariable{ Attributes = new List<DAttribute>{ previouslyParsedAttribute } }); if (RequireDeclDef) { DeclDef(module); attrs = new DAttribute[1 + DeclarationAttributes.Count]; DeclarationAttributes.CopyTo(attrs, 0); DeclarationAttributes.Clear(); attrs[attrs.Length - 1] = previouslyParsedAttribute; return new AttributeMetaDeclaration(attrs) { EndLocation = previouslyParsedAttribute.EndLocation }; } } return null; }
public ulong VisitAttributeMetaDeclarationSection(AttributeMetaDeclarationSection m) { return(1002061); }
public override void Visit(AttributeMetaDeclarationSection attributeMetaDeclarationSection) { base.Visit(attributeMetaDeclarationSection); }