Inheritance: MidMemberDecl
Exemplo n.º 1
0
        private FieldInfo CreateField(
            MidPipelineDecl pipeline,
            MidElementDecl element,
            MidAttributeDecl attribute,
            MidFieldDecl field)
        {
            var midExp = _exps.FieldRef(
                attribute.Range,
                _exps.AttributeRef(attribute.Range, attribute),
                field);

            var name = _identifiers.unique(
                string.Format("{0}_{1}", attribute.Name, field.Name));

            var newAttr = element.CacheAttr(
                midExp,
                field.Type);

            newAttr.TrySetName(name, attribute.Range);

            return(new FieldInfo {
                AttrDecl = newAttr,
                FieldDecl = field
            });
        }
Exemplo n.º 2
0
 public MidFieldMemberRef(
     MidVal obj,
     MidFieldDecl decl)
 {
     _obj  = obj;
     _decl = decl;
 }
Exemplo n.º 3
0
 public MidFieldRef FieldRef(
     SourceRange range,
     MidPath obj,
     MidFieldDecl decl)
 {
     return((MidFieldRef)_fieldRefs.Get(obj).Get(decl).Cache(
                () => new MidFieldRef(range, obj, decl)));
 }
Exemplo n.º 4
0
 public MidFieldRef(
     SourceRange range,
     MidPath obj,
     MidFieldDecl decl)
     : base(range, decl.Type)
 {
     _obj  = obj;
     _decl = decl;
 }
Exemplo n.º 5
0
        private MidMemberDecl EmitMemberDeclImpl(
            MidStructDecl midStruct,
            IResFieldDecl resField,
            MidEmitEnv env)
        {
            var midField = new MidFieldDecl(midStruct, resField.Name);

            midField.AddBuildAction(() =>
            {
                midField.Type = EmitTypeExp(resField.Type, env);
            });
            midField.DoneBuilding();

            midStruct.AddField(midField);
            return(midField);
        }
Exemplo n.º 6
0
 public void AddField(MidFieldDecl field)
 {
     _fields.Add(field);
 }
Exemplo n.º 7
0
 public MidFieldRef(
     SourceRange range,
     MidPath obj,
     MidFieldDecl decl)
     : base(range, decl.Type)
 {
     _obj = obj;
     _decl = decl;
 }
Exemplo n.º 8
0
 public MidFieldMemberRef(
     MidVal obj,
     MidFieldDecl decl)
 {
     _obj = obj;
     _decl = decl;
 }
Exemplo n.º 9
0
 public void AddField(MidFieldDecl field)
 {
     _fields.Add(field);
 }
        private FieldInfo CreateField(
            MidPipelineDecl pipeline,
            MidElementDecl element,
            MidAttributeDecl attribute,
            MidFieldDecl field)
        {
            var midExp = _exps.FieldRef(
                    attribute.Range,
                    _exps.AttributeRef( attribute.Range, attribute ),
                    field );

            var name = _identifiers.unique(
                string.Format( "{0}_{1}", attribute.Name, field.Name ) );

            var newAttr = element.CacheAttr(
                midExp,
                field.Type);
            newAttr.TrySetName(name, attribute.Range);

            return new FieldInfo{
                AttrDecl = newAttr,
                FieldDecl = field};
        }