コード例 #1
0
ファイル: SigilException.cs プロジェクト: JasonPunyon/Sigil
        internal SigilVerificationException(string message, string[] instructions, StackState atBranch, int branchLoc, StackState atLabel, int labelLoc)
            : this(message, instructions)
        {
            Stack = atBranch;
            SecondStack = atLabel;

            BranchLoc = branchLoc;
            LabelLoc = labelLoc;
        }
コード例 #2
0
ファイル: StackState.cs プロジェクト: JasonPunyon/Sigil
 private StackState(StackState prev, TypeOnStack val)
 {
     Previous = prev;
     Value = val;
 }
コード例 #3
0
ファイル: SigilException.cs プロジェクト: JasonPunyon/Sigil
 internal SigilVerificationException(string message, string[] instructions, StackState stack, params int[] locsOnStack)
     : this(message, instructions)
 {
     BadValueLocation = locsOnStack;
     Stack = stack;
 }
コード例 #4
0
ファイル: SigilException.cs プロジェクト: JasonPunyon/Sigil
        private static void EmitStack(StringBuilder sb, StackState stack, int[] highlightLocation)
        {
            if (stack.IsRoot)
            {
                sb.AppendLine("!!EMPTY!!");
            }

            int i = 0;

            while (!stack.IsRoot)
            {
                var val = stack.Value.ToString();

                if (highlightLocation != null && highlightLocation.Any(l => l == i))
                {
                    val += " // Bad value";
                }

                sb.AppendLine(val);
                stack = stack.Pop();

                i++;
            }
        }