public static void FormatGlobalGet <T>(GlobalVariableId <T> globalVariable, Int32[] knownVariables, ScriptWriter sw, IScriptFormatterContext formatterContext, IServices executionContext) where T : unmanaged { if (knownVariables == null || Array.BinarySearch(knownVariables, globalVariable.VariableId) < 0) { sw.Append("("); sw.Append(GlobalVariableId <T> .TypeName); sw.Append(")"); sw.Append("G"); } else { sw.Append("G"); sw.Append(GlobalVariableId <T> .TypeName); } sw.Append("["); sw.Append(globalVariable.VariableId.ToString(CultureInfo.InvariantCulture)); sw.Append("]"); }
public Formatter(ScriptWriter sw, IScriptFormatterContext formatterContext, IServices executionContext) { Sw = sw; FormatterContext = formatterContext; ExecutionContext = executionContext; }
public static void FormatAnswers(ScriptWriter sw, String message, IJsmExpression top, IJsmExpression bottom, IJsmExpression begin, IJsmExpression cancel) { if (!(top is IConstExpression t) || !(bottom is IConstExpression b)) { FormatMonologue(sw, message); return; } if (!sw.HasWhiteLine) { sw.AppendLine(); } // Question //☞ Answer 1 // Answer 2 // Answer 3 //☜ Answer 4 Int32 to = t.Int32(); Int32 bo = b.Int32(); Int32 be = -1; Int32 ca = -1; if (begin is IConstExpression beg) { be = beg.Int32(); } if (cancel is IConstExpression can) { ca = can.Int32(); } String[] lines = SplitMonologue(message); for (Int32 i = 0; i < lines.Length; i++) { sw.Append("//"); if (i >= to && i <= bo) { if (i == be) { sw.Append("☞ "); } else if (i == ca) { sw.Append("☜ "); } else { sw.Append(" "); } } else { sw.Append(" "); } sw.AppendLine(lines[i]); } }
public static Formatter Format(this ScriptWriter sw, IScriptFormatterContext formatterContext, IServices executionContext) { return(new Formatter(sw, formatterContext, executionContext)); }