Esempio n. 1
0
        public override void Init(AstContext context, ParseTreeNode parseNode)
        {
            // _(".field") + repeatOpt + fieldAttr + type + id + atOpt + initOpt
            var fieldChildren = AstChildren.Empty()
                                .Add(".field")
                                .Add <RepeatOptAstNode>()
                                .Add <FieldAttrAstNode>()
                                .Add <TypeAstNode>()
                                .Add <IdAstNode>()
                                .Add <AtOptAstNode>()
                                .Add <InitOptAstNode>();

            if (fieldChildren.PopulateWith(parseNode))
            {
                Field = new CilField
                {
                    Name       = fieldChildren.Child5.Value,
                    Type       = fieldChildren.Child4.Type,
                    InitValue  = fieldChildren.Child7.InitValue,
                    Attributes = fieldChildren.Child3.FieldAttributes,
                    AtId       = fieldChildren.Child6.AtId
                };

                return;
            }

            throw new NotImplementedException();
        }
Esempio n. 2
0
        public void Visit(CilField field)
        {
            WriteIndentation();
            _writer.Write(".field ");
            if (_options.ShowBytes)
            {
                _writer.Write(string.Format("/* {0:X8} */ ", field.Token));
            }
            _writer.Write(field.Signature);

            if (field.HasDefault)
            {
                _writer.Write(string.Format(" = {0}", field.DefaultValue.GetValueString()));
            }
            _writer.WriteLine();

            foreach (var attribute in field.CustomAttributes)
            {
                attribute.Accept(this);
            }
        }
Esempio n. 3
0
        public void Visit(CilField field)
        {
            WriteIndentation();
            _writer.Write(".field ");
            if (_options.ShowBytes)
            {
                _writer.Write(string.Format("/* {0:X8} */ ", field.Token));
            }
            _writer.Write(field.Signature);

            if (field.HasDefault)
            {
                _writer.Write(string.Format(" = {0}",field.DefaultValue.GetValueString()));
            }
            _writer.WriteLine();

            foreach(var attribute in field.CustomAttributes)
            {
                attribute.Accept(this);
            }
        }
Esempio n. 4
0
 public FieldNode(CilField cf)
 {
     _field = cf;
 }