示例#1
0
 protected internal void AssignStartAndStop(CsharpParseItem parseItem, ParserRuleContext context)
 {
     if (parseItem == null)
     {
         return;
     }
     parseItem.BodyStart = GetBodyStart(context);
     parseItem.Start     = new Tuple <int, int>(context.Start.Line, context.Start.Column);
     parseItem.End       = new Tuple <int, int>(context.Stop.Line, context.Stop.Column);
 }
示例#2
0
        public override void EnterEnum_member_declaration(CSharpParser.Enum_member_declarationContext context)
        {
            var nm        = context.identifier().GetText();
            var parseItem = new CsharpParseItem {
                Name = nm
            };

            AssignAttributes(parseItem, context.attributes());
            AssignStartAndStop(parseItem, context);
            AssignNsAndTypeValues(parseItem);
            Results.TypeMemberBodies.Add(parseItem);
        }
示例#3
0
        protected internal void AssignParameterType2Names(CsharpParseItem parseItem, IParseTree context)
        {
            if (parseItem == null)
            {
                return;
            }

            var paramNames = GetParameterType2Names(context);

            if (paramNames != null && paramNames.Any())
            {
                parseItem.Parameters.AddRange(paramNames);
            }
        }
示例#4
0
 protected internal void AssignNsAndTypeValues(CsharpParseItem parseItem)
 {
     if (parseItem == null)
     {
         return;
     }
     parseItem.DeclTypeName       = _typeNameCurrent;
     parseItem.Namespace          = _namespaceNameCurrent;
     parseItem.DeclBodyStart      = _typeBodyStartCurrent;
     parseItem.DeclEnd            = _typeEndCurrent;
     parseItem.NamespaceBodyStart = _namespaceBodyStartCurrent;
     parseItem.NamespaceEnd       = _namespaceEndCurrent;
     parseItem.DeclStart          = _typeStartCurrent;
     parseItem.NamespaceStart     = _namespaceStartCurrent;
 }
示例#5
0
 protected internal void AssignAttributes(CsharpParseItem parseItem, CSharpParser.AttributesContext attrs)
 {
     if (parseItem == null)
     {
         return;
     }
     if (attrs == null)
     {
         return;
     }
     foreach (var a in attrs.children)
     {
         parseItem.Attributes.Add(a.GetText());
     }
 }
示例#6
0
        protected internal void AssignAccessMods(CsharpParseItem parseItem,
                                                 CSharpParser.All_member_modifiersContext acMods)
        {
            if (parseItem == null)
            {
                return;
            }

            if (acMods == null)
            {
                return;
            }
            foreach (var m in acMods.children)
            {
                parseItem.AccessModifiers.Add(m.GetText());
            }
        }
示例#7
0
        public override void EnterStruct_member_declaration(CSharpParser.Struct_member_declarationContext context)
        {
            var cmdecl = context.common_member_declaration();

            if (cmdecl == null)
            {
                return;
            }
            var nm = GetContextName(cmdecl);

            var parseItem = new CsharpParseItem {
                Name = nm
            };

            AssignAccessMods(parseItem, context.all_member_modifiers());
            AssignAttributes(parseItem, context.attributes());
            AssignParameterType2Names(parseItem, cmdecl);;
            AssignStartAndStop(parseItem, context);
            AssignNsAndTypeValues(parseItem);
        }