public Statement (Parser yyp, ReturnStatement rs ):base(((LSLSyntax )yyp)){ kids . Add ( rs ); }
/// <summary> /// Generates the code for a ReturnStatement node. /// </summary> /// <param name="rs">The ReturnStatement node.</param> /// <returns>String containing C# code for ReturnStatement rs.</returns> private string GenerateReturnStatement(ReturnStatement rs) { string retstr = ""; if (IsParentEnumerable) { retstr += Generate("{ "); if (rs.kids.Count == 0) retstr += Generate("yield break;", rs); else { retstr += Generate("yield return ", rs); foreach (SYMBOL kid in rs.kids) retstr += GenerateNode(kid); retstr += Generate("; yield break;", rs); } retstr += Generate(" }"); } else { retstr += Generate("return ", rs); foreach (SYMBOL kid in rs.kids) retstr += GenerateNode(kid); } return retstr.ToString(); }
/// <summary> /// Generates the code for a ReturnStatement node. /// </summary> /// <param name="rs">The ReturnStatement node.</param> /// <returns>String containing C# code for ReturnStatement rs.</returns> private string GenerateReturnStatement(ReturnStatement rs) { string retstr = ""; retstr += Generate("return ", rs); foreach (SYMBOL kid in rs.kids) retstr += GenerateNode(kid); return retstr.ToString(); }
/// <summary> /// Generates the code for a ReturnStatement node. /// </summary> /// <param name="rs">The ReturnStatement node.</param> /// <returns>String containing C# code for ReturnStatement rs.</returns> private string GenerateReturnStatement(ReturnStatement rs) { string retstr = ""; bool dump = FuncCallsMarc(); if (IsParentEnumerable) { retstr += GenerateLine("{ "); if (rs.kids.Count == 0) retstr += GenerateLine("yield break;", rs); else { retstr += Generate("yield return ", rs); foreach (SYMBOL kid in rs.kids) retstr += GenerateNode(kid); retstr += GenerateLine(";", null); retstr += GenerateLine("yield break;", null); } retstr += GenerateLine("}"); } else { retstr += Generate("return ", rs); foreach (SYMBOL kid in rs.kids) retstr += GenerateNode(kid); } if (dump) return DumpFunc(dump) + retstr; return retstr.ToString(); }
/// <summary> /// Generates the code for a ReturnStatement node. /// </summary> /// <param name="rs">The ReturnStatement node.</param> /// <returns>String containing C# code for ReturnStatement rs.</returns> private string GenerateReturnStatement(ReturnStatement rs) { StringBuilder retstr = new StringBuilder(); if(IsParentEnumerable) { retstr.Append(Generate("yield break;")); //Enumerator, must be broken, and will not have a return value since in this implementation, it replaces void } else { retstr.Append(Generate("return ", rs)); foreach (SYMBOL kid in rs.kids) retstr.Append(GenerateNode(kid)); } return retstr.ToString(); }