Example #1
0
 public override void ExitEnumDefinition([NotNull] EnumDefinitionContext context)
 {
     enumDefs.Add(currEnum.name, currEnum);
     enumStart = false;
     currEnum  = null;
     ethGlobal.DebugPrint("->Exit enum value " + context.Start.Text);
 }
Example #2
0
        /// <inheritdoc/>
        public Enum FindSymbolForNode(EnumDefinitionContext node)
        {
            if (this.FindSymbolForNode((IParseTree)node) is Enum @enum)
            {
                return(@enum);
            }

            return(null);
        }
Example #3
0
        protected Enum SetupMember(EnumDefinitionContext enumNode, string enumName, Document document)
        {
            var member = new EnumBuilder()
                         .SetNode(enumNode)
                         .SetName(enumName)
                         .Build();

            this.BinderProvider.GetBinder(enumNode).Returns(this.enumBinder);
            this.EnumBinder.Bind <INamedSymbol>(enumNode, document).Returns(member);
            this.EnumBinder.Bind <Enum>(enumNode, document).Returns(member);

            return(member);
        }
        public override AstNode?VisitEnumDefinition(EnumDefinitionContext context)
        {
            _hasDefinitions = true;

            var enumDef = new EnumDefinition
            {
                ParseContext = context,
                Name         = GetId(context.name),
                Options      = _currentMemberOptions
            };

            var accessModifier = context.accessModifier();

            if (accessModifier != null)
            {
                ProcessTypeModifiers(enumDef, new[] { accessModifier.type });
            }

            ProcessAttributes(enumDef.Attributes, context.attributes());

            if (context.underlyingType != null)
            {
                enumDef.UnderlyingType = context.underlyingType.GetText();
            }

            foreach (var enumMemberContext in context.enumMember())
            {
                var memberDef = new EnumMemberDefinition
                {
                    ParseContext = enumMemberContext,
                    Name         = GetId(enumMemberContext.name),
                    Value        = enumMemberContext.value?.GetFullText()
                };

                ProcessAttributes(memberDef.Attributes, enumMemberContext.attributes());

                enumDef.Members.Add(memberDef);
            }

            _contracts.Enums.Add(enumDef);
            return(enumDef);
        }
Example #5
0
 public override void EnterEnumDefinition([NotNull] EnumDefinitionContext context)
 {
     //string nm = context.Start.Text;
     enumStart = true;
     currEnum  = new SolidityEnum();
 }