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();
 }
Ejemplo n.º 2
0
        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();
 }