================================================================================
Standalone semicolon in part section
================================================================================

pageextension 50100 "Test Page Extension" extends "Customer Card"
{
    layout
    {
        addafter(General)
        {
            part(TestPart; "Test Page")
            {
                ApplicationArea = All;
                Visible = true;
                ;
            }
        }
    }
}

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

(source_file
  (pageextension_declaration
    (pageextension_keyword)
    object_id: (integer)
    object_name: (quoted_identifier)
    (extends_keyword)
    base_object: (quoted_identifier)
    (layout_section
      (layout_keyword)
      (addafter_modification
        target: (identifier)
        (part_section
          (part_keyword)
          name: (identifier)
          source: (quoted_identifier)
          (property
            name: (property_name)
            value: (identifier))
          (property
            name: (property_name)
            value: (boolean))
          (empty_statement))))))

================================================================================
Standalone semicolon in action block
================================================================================

page 50100 "Test Page"
{
    actions
    {
        action(TestAction)
        {
            ApplicationArea = All;
            Caption = 'Test';
            ;
            trigger OnAction()
            begin
                Message('Test');
            end;
        }
    }
}

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

(source_file
  (page_declaration
    (page_keyword)
    object_id: (integer)
    object_name: (quoted_identifier)
    (actions_section
      (actions_keyword)
      (action_declaration
        name: (identifier)
        (property
          name: (property_name)
          value: (identifier))
        (property
          name: (property_name)
          value: (string_literal))
        (empty_statement)
        (trigger_declaration
          (trigger_keyword)
          name: (identifier)
          (code_block
            (call_expression
              function: (identifier)
              arguments: (argument_list
                (string_literal)))))))))

================================================================================
Multiple standalone semicolons in action
================================================================================

page 50100 "Test Page"
{
    actions
    {
        action(TestAction)
        {
            ;
            ApplicationArea = All;
            ;
            ;
            Caption = 'Test';
            ;
        }
    }
}

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

(source_file
  (page_declaration
    (page_keyword)
    object_id: (integer)
    object_name: (quoted_identifier)
    (actions_section
      (actions_keyword)
      (action_declaration
        name: (identifier)
        (empty_statement)
        (property
          name: (property_name)
          value: (identifier))
        (empty_statement)
        (empty_statement)
        (property
          name: (property_name)
          value: (string_literal))
        (empty_statement)))))

================================================================================
Standalone semicolon in systempart
================================================================================

page 50100 "Test Page"
{
    layout
    {
        area(FactBoxes)
        {
            systempart(Links; Links)
            {
                ApplicationArea = All;
                ;
            }
        }
    }
}

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

(source_file
  (page_declaration
    (page_keyword)
    object_id: (integer)
    object_name: (quoted_identifier)
    (layout_section
      (layout_keyword)
      (area_section
        (area_keyword)
        (systempart_section
          (systempart_keyword)
          name: (identifier)
          source: (identifier)
          (property
            name: (property_name)
            value: (identifier))
          (empty_statement))))))

================================================================================
Standalone semicolon in action group
================================================================================

page 50100 "Test Page"
{
    actions
    {
        area(Processing)
        {
            group(TestGroup)
            {
                Caption = 'Test Group';
                ;
                action(TestAction)
                {
                    ApplicationArea = All;
                    ;
                }
            }
        }
    }
}

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

(source_file
  (page_declaration
    (page_keyword)
    object_id: (integer)
    object_name: (quoted_identifier)
    (actions_section
      (actions_keyword)
      (action_area_section
        (area_keyword)
        (action_group_section
          (group_keyword)
          name: (identifier)
          (property
            name: (property_name)
            value: (string_literal))
          (empty_statement)
          (action_declaration
            name: (identifier)
            (property
              name: (property_name)
              value: (identifier))
            (empty_statement)))))))

================================================================================
Standalone semicolon at beginning of properties
================================================================================

page 50100 "Test Page"
{
    PageType = Card;
    actions
    {
        action(TestAction)
        {
            ;
            ApplicationArea = All;
        }
    }
}

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

(source_file
  (page_declaration
    (page_keyword)
    object_id: (integer)
    object_name: (quoted_identifier)
    (property
      name: (property_name)
      value: (identifier))
    (actions_section
      (actions_keyword)
      (action_declaration
        name: (identifier)
        (empty_statement)
        (property
          name: (property_name)
          value: (identifier))))))

================================================================================
Standalone semicolon in modify action
================================================================================

pageextension 50100 "Test Extension" extends "Customer List"
{
    actions
    {
        modify(NewCustomer)
        {
            Visible = false;
            ;
        }
    }
}

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

(source_file
  (pageextension_declaration
    (pageextension_keyword)
    object_id: (integer)
    object_name: (quoted_identifier)
    (extends_keyword)
    base_object: (quoted_identifier)
    (actions_section
      (actions_keyword)
      (modify_action_modification
        target: (identifier)
        (property
          name: (property_name)
          value: (boolean))
        (empty_statement)))))
