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); }
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 void Interpret(IContext context) { ExpressionA.Interpret(context); ExpressionB.Interpret(context); var exprAresult = context.Get(ExpressionA); var exprBResult = context.Get(ExpressionB); var resultA = exprAresult as string; var resultB = exprBResult as string; if (resultA != null && resultB != null && resultA.IndexOf(resultB, StringComparison.Ordinal) != -1) { context.AddVariable(this, true); return; } context.AddVariable(this, false); }
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()); }