protected override void visitArchitecture(Architecture architecture) { writer.Append(KeywordEnum.ARCHITECTURE.ToString()).Append(' '); writer.AppendIdentifier(architecture).Append(' '); writer.Append(KeywordEnum.OF.ToString()).Append(' '); writer.AppendIdentifier(architecture.Entity).Append(' '); writer.Append(KeywordEnum.IS.ToString()).NewLine().Indent(); output.writeDeclarationMarkers(architecture.Declarations); writer.Dedent().Append(KeywordEnum.BEGIN.ToString()).NewLine().Indent(); output.writeConcurrentStatements(architecture.Statements); writer.Dedent().Append(KeywordEnum.END.ToString()).Append(";").NewLine(); }
protected override void visitFunctionBody(FunctionBody declaration) { if (declaration.Impure) { writer.Append(KeywordEnum.IMPURE.ToString()).Append(' '); } writer.Append(KeywordEnum.FUNCTION.ToString()).Append(' ').AppendIdentifier(declaration); appendFunctionParameters(declaration.Parameters); writer.Append(' ').Append(KeywordEnum.RETURN.ToString()).Append(' '); output.writeSubtypeIndication(declaration.ReturnType); writer.Append(' ').Append(KeywordEnum.IS.ToString()).NewLine().Indent(); output.writeDeclarationMarkers(declaration.Declarations); writer.Dedent().Append(KeywordEnum.BEGIN.ToString()).NewLine().Indent(); output.writeSequentialStatements(declaration.Statements); //TODO: add repeated label writer.Dedent().Append(KeywordEnum.END.ToString()).Append(";").NewLine(); }
private void appendGenerateStatementSuffix(AbstractGenerateStatement statement) { writer.Append(' ').Append(KeywordEnum.GENERATE.ToString()).NewLine(); if (statement.Declarations.Count != 0) { writer.Indent(); output.writeDeclarationMarkers(statement.Declarations); writer.Dedent().Append(KeywordEnum.BEGIN.ToString()).NewLine(); } writer.Indent(); visit(statement.Statements); writer.Dedent(); writer.Append(KeywordEnum.END.ToString()).Append(KeywordEnum.GENERATE.ToString()); if (writer.Format.RepeatLabels) { writer.Append(' ').Append(statement.Label); } writer.Append(";").NewLine(); }