public override void Interpret(IContext context)
        {
            ExpressionA.Interpret(context);
            ExpressionB.Interpret(context);
            var result = context.Get(ExpressionA).Equals(context.Get(ExpressionB));

            context.AddVariable(this, result);
        }
Example #2
0
        public override void Interpret(IContext context)
        {
            ExpressionA.Interpret(context);
            ExpressionB.Interpret(context);
            var result = (bool)context.Get(ExpressionA) || (bool)context.Get(ExpressionB);

            context.AddVariable(this, result);
        }
        public override string GetLine(ParserOptions options, bool start)
        {
            StringBuilder sb = new StringBuilder();

            if (options.Offset)
            {
                sb.Append(Address.ToString("00 "));
            }

            if (options.Labels)
            {
                if (Label != null)
                {
                    sb.Append(Label.PadRight(13));
                }
                else
                {
                    sb.Append("             ");
                }
            }
            else
            {
                if (start)
                {
                    sb.Append("START  ");
                }
                else
                {
                    sb.Append("       ");
                }
            }

            //operation and modifier
            sb.Append(Operation);
            sb.Append(".");
            sb.Append(Modifier.ToString().PadRight(3));

            //A
            sb.Append(ModeHelper.ToString(ModeA));
            if (options.Expressions)
            {
                if (ExpressionA != null)
                {
                    sb.Append(ExpressionA.PadLeft(12));
                }
                else
                {
                    sb.Append(ValueA.ToString().PadLeft(12));
                }
            }
            else
            {
                sb.Append(ValueA.ToString().PadLeft(6));
            }

            //B
            sb.Append(", ");
            sb.Append(ModeHelper.ToString(ModeB));
            if (options.Expressions)
            {
                if (ExpressionB != null)
                {
                    sb.Append(ExpressionB.PadLeft(12));
                }
                else
                {
                    sb.Append(ValueB.ToString().PadLeft(12));
                }
            }
            else
            {
                sb.Append(ValueB.ToString().PadLeft(6));
            }

            //comment
            if (options.Comments && Comment != null && Comment.Length > 0)
            {
                int c = 35;
                if (options.Labels)
                {
                    c += 6;
                }
                if (options.Expressions)
                {
                    c += 19;
                }
                if (sb.Length < c)
                {
                    sb.Append(' ', c);
                }
                sb.Append(";");
                sb.Append(Comment);
            }
            return(sb.ToString());
        }