================================================================================
Preprocessor-wrapped page with pragmas
================================================================================

#pragma warning disable AS0072
#if not CLEAN25
namespace Microsoft.Purchases.PowerBIReports;

page 36962 "Purchasing Scorecard"
{
    Caption = 'Purchasing Scorecard';
    PageType = Card;
}
#endif
#pragma warning restore AS0072

--------------------------------------------------------------------------------

(source_file
  (pragma)
  (preproc_conditional_object
    (preproc_if
      (preproc_not_expression
        (identifier)))
    (namespace_declaration
      (namespace_keyword)
      (namespace_name
        (identifier)
        (identifier)
        (identifier)))
    (page_declaration
      (page_keyword)
      (integer)
      (quoted_identifier)
      (property
        (property_name)
        (string_literal))
      (property
        (property_name)
        (identifier)))
    (preproc_endif))
  (pragma))

================================================================================
Preprocessor-wrapped codeunit with else branch
================================================================================

#pragma warning disable AL0432
#if CLEAN23
namespace Microsoft.Finance.Analysis;

codeunit 50100 "New Implementation"
{
    procedure NewMethod()
    begin
    end;
}
#else
codeunit 50100 "Legacy Implementation"
{
    procedure OldMethod()
    begin
    end;
}
#endif
#pragma warning restore AL0432

--------------------------------------------------------------------------------

(source_file
  (pragma)
  (preproc_conditional_object
    (preproc_if
      (identifier))
    (namespace_declaration
      (namespace_keyword)
      (namespace_name
        (identifier)
        (identifier)
        (identifier)))
    (codeunit_declaration
      (codeunit_keyword)
      (integer)
      (quoted_identifier)
      (procedure
        (procedure_keyword)
        (identifier)
        (code_block)))
    (preproc_else)
    (codeunit_declaration
      (codeunit_keyword)
      (integer)
      (quoted_identifier)
      (procedure
        (procedure_keyword)
        (identifier)
        (code_block)))
    (preproc_endif))
  (pragma))

================================================================================
Multiple pragmas with preprocessor-wrapped table
================================================================================

#pragma warning disable AA0072
#pragma warning disable AL0659
#if PRODUCTION
table 50000 MyTable
{
    fields
    {
        field(1; "Code"; Code[20])
        {
            Caption = 'Code';
        }
    }
}
#endif
#pragma warning restore AL0659
#pragma warning restore AA0072

--------------------------------------------------------------------------------

(source_file
  (pragma)
  (pragma)
  (preproc_conditional_object
    (preproc_if
      (identifier))
    (table_declaration
      (table_keyword)
      (integer)
      (identifier)
      (fields_section
        (fields_keyword)
        (field_declaration
          (integer)
          (quoted_identifier)
          (type_specification
            (code_type
              (integer)))
          (property
            (property_name)
            (string_literal)))))
    (preproc_endif))
  (pragma)
  (pragma))
