コード例 #1
0
ファイル: StackData.cs プロジェクト: hahoyer/reni.cs
 internal virtual StackData BitArrayBinaryOp(string opToken, Size size, StackData right)
 {
     var leftData = GetBitsConst();
     var rightData = right.GetBitsConst();
     var resultData = leftData.BitArrayBinaryOp(opToken, size, rightData);
     return new BitsStackData(resultData, OutStream);
 }
コード例 #2
0
ファイル: DataStack.cs プロジェクト: hahoyer/reni.cs
 void IStackDataAddressBase.SetTop(Size offset, StackData right)
 {
     var oldTop = Data.DoGetTop(Data.Size + offset);
     var tail = Data.DoPull(Data.Size + offset + right.Size);
     var newDataTail = tail.Push(right);
     var newData = newDataTail.Push(oldTop);
     Data = newData;
 }
コード例 #3
0
ファイル: StackDataAddress.cs プロジェクト: hahoyer/reni.cs
        internal override StackData BitArrayBinaryOp(string opToken, Size size, StackData right)
        {
            if(size == DataStack.RefSize && opToken == "Plus")
                return RefPlus(Size.Create(right.GetBitsConst().ToInt32()));


            NotImplementedMethod(opToken, size, right);
            return null;
        }
コード例 #4
0
 void ITraceCollector.Call(StackData argsAndRefs, FunctionId functionId)
     => Frames.Insert
         (
             0,
             new FrameItem
             {
                 Text = argsAndRefs.Dump(),
                 FunctionId = functionId,
                 CallStep = new TraceLogItem(new[] {Steps.Last()}, SourceView)
             });
コード例 #5
0
ファイル: ListStack.cs プロジェクト: hahoyer/reni.cs
 internal override StackData Push(StackData stackData) => stackData.PushOnto(this);
コード例 #6
0
ファイル: ListStack.cs プロジェクト: hahoyer/reni.cs
 internal override StackData Push(StackData formerStack) => formerStack.PushOnto(this);
コード例 #7
0
ファイル: StackDataAddress.cs プロジェクト: hahoyer/reni.cs
 internal new void Assign(Size size, StackData right)
     => _data.SetTop(_offset, right.Dereference(size, size));
コード例 #8
0
ファイル: DataStack.cs プロジェクト: hahoyer/reni.cs
 void Push(StackData value) { Data = Data.Push(value); }
コード例 #9
0
ファイル: DataStack.cs プロジェクト: hahoyer/reni.cs
 public LocalData(IOutStream outStream) { Data = new EmptyStackData(outStream); }
コード例 #10
0
ファイル: EmptyStackData.cs プロジェクト: hahoyer/reni.cs
 internal override StackData Push(StackData stackData) => stackData;
コード例 #11
0
ファイル: StackData.cs プロジェクト: hahoyer/reni.cs
 internal virtual StackData Push(StackData stackData)
 {
     NotImplementedMethod(stackData);
     return null;
 }
コード例 #12
0
ファイル: StackData.cs プロジェクト: hahoyer/reni.cs
 internal void Assign(Size size, StackData right) => GetAddress().Assign(size, right);
コード例 #13
0
 void IStackDataAddressBase.SetTop(Size offset, StackData right)
 {
     var dataForTrace = ((IStackDataAddressBase) this).GetTop(offset, right.Size);
     NotImplementedMethod(offset, right);
 }