コード例 #1
0
ファイル: RecordModule.cs プロジェクト: rizwan3d/elalang
 public ElaRecord AddFields(ElaRecord fields, ElaRecord rec)
 {
     var fieldList = new List<ElaRecordField>();
     fieldList.AddRange(rec);
     fieldList.AddRange(fields);
     return new ElaRecord(fieldList.ToArray());
 }
コード例 #2
0
ファイル: RecordModule.cs プロジェクト: rizwan3d/elalang
 public ElaRecord AddField(string field, ElaValue value, ElaRecord rec)
 {
     var fieldList = new List<ElaRecordField>();
     fieldList.AddRange(rec);
     fieldList.Add(new ElaRecordField(field, value));
     return new ElaRecord(fieldList.ToArray());
 }
コード例 #3
0
        public ElaRecord AddFields(ElaRecord fields, ElaRecord rec)
        {
            var fieldList = new List <ElaRecordField>();

            fieldList.AddRange(rec);
            fieldList.AddRange(fields);
            return(new ElaRecord(fieldList.ToArray()));
        }
コード例 #4
0
        public ElaRecord AddField(string field, ElaValue value, ElaRecord rec)
        {
            var fieldList = new List <ElaRecordField>();

            fieldList.AddRange(rec);
            fieldList.Add(new ElaRecordField(field, value));
            return(new ElaRecord(fieldList.ToArray()));
        }
コード例 #5
0
ファイル: MutableMapModule.cs プロジェクト: rizwan3d/elalang
        public ElaMutableMap CreateMap(ElaRecord rec)
        {
            var map = new ElaMutableMap();

            foreach (var k in rec.GetKeys())
                map.Map.Add(new ElaValue(k), rec[k]);

            return map;
        }
コード例 #6
0
ファイル: MapModule.cs プロジェクト: rizwan3d/elalang
        public ElaMap CreateMap(ElaRecord rec)
        {
            var map = ElaMap.Empty;

            foreach (var k in rec.GetKeys())
                map = new ElaMap(map.Tree.Add(new ElaValue(k), rec[k]));

            return map;
        }
コード例 #7
0
ファイル: RecordModule.cs プロジェクト: rizwan3d/elalang
        public ElaRecord RemoveField(string field, ElaRecord rec)
        {
            var fieldList = new List<ElaRecordField>();

            foreach (var f in rec)
                if (f.Field != field)
                    fieldList.Add(f);

            return new ElaRecord(fieldList.ToArray());
        }
コード例 #8
0
ファイル: RecordModule.cs プロジェクト: rizwan3d/elalang
        public ElaRecord RemoveFields(IEnumerable<String> fields, ElaRecord rec)
        {
            var fieldList = new List<ElaRecordField>();
            var fieldArr = new List<String>(fields);

            foreach (var f in rec)
                if (fieldArr.IndexOf(f.Field) == -1)
                    fieldList.Add(f);

            return new ElaRecord(fieldList.ToArray());
        }
コード例 #9
0
ファイル: LangModule.cs プロジェクト: hardliner66/ela-lang
        public ElaValue ShowRecordKey(int field, ElaRecord rec)
        {
            var fl = rec.keys[field];

            if (fl.IndexOf(' ') != -1 || Format.IsSymbolic(fl))
            {
                return(new ElaValue("\"" + fl + "\""));
            }

            return(new ElaValue(fl));
        }
コード例 #10
0
ファイル: RecordModule.cs プロジェクト: rizwan3d/elalang
        public ElaRecord ChangeField(string field, ElaValue value, ElaRecord rec)
        {
            var fieldList = new List<ElaRecordField>();

            foreach (var f in rec)
                if (f.Field == field)
                    fieldList.Add(new ElaRecordField(f.Field, value));
                else
                    fieldList.Add(f);

            return new ElaRecord(fieldList.ToArray());
        }
コード例 #11
0
        internal override ElaValue Concatenate(ElaValue left, ElaValue right, ExecutionContext ctx)
        {
            left  = left.Ref.Force(left, ctx);
            right = right.Ref.Force(right, ctx);

            if (right.TypeId != ElaMachine.REC)
            {
                NoOverloadBinary(TCF.RECORD, right, "concatenate", ctx);
                return(Default());
            }

            return(new ElaValue(ElaRecord.Concat((ElaRecord)left.Ref, (ElaRecord)right.Ref)));
        }
コード例 #12
0
        public ElaRecord RemoveField(string field, ElaRecord rec)
        {
            var fieldList = new List <ElaRecordField>();

            foreach (var f in rec)
            {
                if (f.Field != field)
                {
                    fieldList.Add(f);
                }
            }

            return(new ElaRecord(fieldList.ToArray()));
        }
コード例 #13
0
        public ElaRecord RemoveFields(IEnumerable <String> fields, ElaRecord rec)
        {
            var fieldList = new List <ElaRecordField>();
            var fieldArr  = new List <String>(fields);

            foreach (var f in rec)
            {
                if (fieldArr.IndexOf(f.Field) == -1)
                {
                    fieldList.Add(f);
                }
            }

            return(new ElaRecord(fieldList.ToArray()));
        }
コード例 #14
0
        public ElaRecord ChangeField(string field, ElaValue value, ElaRecord rec)
        {
            var fieldList = new List <ElaRecordField>();

            foreach (var f in rec)
            {
                if (f.Field == field)
                {
                    fieldList.Add(new ElaRecordField(f.Field, value));
                }
                else
                {
                    fieldList.Add(f);
                }
            }

            return(new ElaRecord(fieldList.ToArray()));
        }
コード例 #15
0
 public ElaList GetFields(ElaRecord rec)
 {
     return(ElaList.FromEnumerable(rec.GetKeys()));
 }
コード例 #16
0
ファイル: RecordModule.cs プロジェクト: rizwan3d/elalang
 public ElaList GetFields(ElaRecord rec)
 {
     return ElaList.FromEnumerable(rec.GetKeys());
 }