/// <summary> /// Provides an explanation of the function's behaviour /// </summary> /// <param name="indentLevel">the number of white spaces to add at the beginning of each line</param> /// <returns></returns> public string getExplain(int indentLevel) { string retVal = ""; retVal = TextualExplainUtilities.Comment(Comment, indentLevel) + TextualExplainUtilities.Comment(TextualExplainUtilities.Iterate('-', 6 + Name.Length), indentLevel) + TextualExplainUtilities.Pad("{FUNCTION " + Name + "(", indentLevel); foreach (Parameter parameter in FormalParameters) { retVal = retVal + "\\par" + TextualExplainUtilities.Pad(parameter.Name + " : " + parameter.TypeName, indentLevel + 2); } if (FormalParameters.Count > 0) { retVal += "\\par"; } retVal = retVal + ") {\\b RETURNS} { \\cf2" + TypeName + "}}\\par"; foreach (Case cas in Cases) { retVal = retVal + "\\par" + TextualExplainUtilities.Pad("{\\cf11 // " + cas.Name + "}\\cf1\\par", indentLevel + 2) + cas.getExplain(indentLevel + 2); } return(retVal); }
/// <summary> /// Provides an explanation of the rule's behaviour /// </summary> /// <param name="indentLevel">the number of white spaces to add at the beginning of each line</param> /// <returns></returns> public string getExplain(int indentLevel, bool getExplain) { string retVal = ""; retVal = TextualExplainUtilities.Pad("{\\cf11 // " + TextualExplainUtilities.Iterate('*', 6 + Name.Length) + "}\\cf1\\par", indentLevel) + TextualExplainUtilities.Pad("{\\cf11 // State " + Name + "}\\cf1\\par", indentLevel) + TextualExplainUtilities.Pad("{\\cf11 // " + TextualExplainUtilities.Iterate('*', 6 + Name.Length) + "}\\cf1\\par", indentLevel); if (getExplain) { foreach (Rules.Rule rule in StateMachine.Rules) { retVal += "\\par" + rule.getExplain(indentLevel, true); } } return(retVal); }
/// <summary> /// Provides an explanation of the rule's behaviour /// </summary> /// <param name="indentLevel">the number of white spaces to add at the beginning of each line</param> /// <returns></returns> public string getExplain(int indentLevel, bool getExplain) { string retVal = ""; retVal = TextualExplainUtilities.Pad("{\\cf11 // " + TextualExplainUtilities.Iterate('-', 6 + Name.Length) + "}\\cf1\\par", indentLevel) + TextualExplainUtilities.Pad("{PROCEDURE " + Name + "(\\par", indentLevel); foreach (Parameter parameter in FormalParameters) { retVal = retVal + TextualExplainUtilities.Pad(parameter.Name + ":" + parameter.TypeName + ",\\par", indentLevel + 2); } retVal = retVal + ")}\\par"; foreach (Rules.Rule rule in Rules) { retVal += "\\par" + rule.getExplain(indentLevel + 2, true); } return(retVal); }