Ejemplo n.º 1
0
        /// <summary>
        /// Renders a single ReturnStatement with the given indentation
        /// </summary>
        /// <returns>The VHDL lines in the statement.</returns>
        /// <param name="method">The method the statement belongs to.</param>
        /// <param name="s">The statement to render.</param>
        /// <param name="indentation">The indentation to use.</param>
        private IEnumerable <string> RenderStatement(AST.Method method, AST.ReturnStatement s, int indentation)
        {
            if (!(s.ReturnExpression is EmptyExpression))
            {
                throw new Exception("Expected return expression to be empty");
            }

            var indent = new string(' ', indentation);

            yield return($"{indent}return {method.ReturnVariable.Name};");
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Renders a single ReturnStatement with the given indentation
        /// </summary>
        /// <returns>The VHDL lines in the statement.</returns>
        /// <param name="method">The method the statement belongs to.</param>
        /// <param name="s">The statement to render.</param>
        /// <param name="indentation">The indentation to use.</param>
        private IEnumerable <string> RenderStatement(AST.Method method, AST.ReturnStatement s, int indentation)
        {
            var indent = new string(' ', indentation);

            if (s.ReturnExpression is EmptyExpression && method != ((AST.Process)method.Parent).MainMethod)
            {
                yield return($"{indent}return {method.ReturnVariable.Name};");
            }
            else
            {
                yield return($"{indent}return {RenderExpression(s.ReturnExpression)};");
            }
        }