/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
#mixed_content  // f.c.MixedContent; Location 1:1-18:8
    #if  // f.c.ConditionalBlock; Location 1:1-1:15
        - condition: exp  // f.c.Identifier; Location 1:6-1:8
        - AST-node subtype: "0"  // Integer
    #if  // f.c.ConditionalBlock; Location 2:1-2:16
        - condition: exp  // f.c.Identifier; Location 2:6-2:8
        - AST-node subtype: "0"  // Integer
        #text  // f.c.TextBlock; Location 2:10-2:10
            - content: "1"  // String
    #text  // f.c.TextBlock; Location 2:17-2:17
        - content: "\n"  // String
    #if  // f.c.ConditionalBlock; Location 3:1-3:20
        - condition: exp  // f.c.Identifier; Location 3:6-3:8
        - AST-node subtype: "0"  // Integer
        ${...}  // f.c.DollarVariable; Location 3:10-3:13
            - content: 1  // f.c.NumberLiteral; Location 3:12-3:12
        #text  // f.c.TextBlock; Location 3:14-3:14
            - content: "2"  // String
    #text  // f.c.TextBlock; Location 3:21-3:21
        - content: "\n"  // String
    #if-#elseif-#else-container  // f.c.IfBlock; Location 4:1-4:22
        #if  // f.c.ConditionalBlock; Location 4:1-4:9
            - condition: exp  // f.c.Identifier; Location 4:6-4:8
            - AST-node subtype: "0"  // Integer
        #else  // f.c.ConditionalBlock; Location 4:10-4:16
            - condition: null  // Null
            - AST-node subtype: "1"  // Integer
    #if-#elseif-#else-container  // f.c.IfBlock; Location 5:1-5:24
        #if  // f.c.ConditionalBlock; Location 5:1-5:10
            - condition: exp  // f.c.Identifier; Location 5:6-5:8
            - AST-node subtype: "0"  // Integer
            #text  // f.c.TextBlock; Location 5:10-5:10
                - content: "1"  // String
        #else  // f.c.ConditionalBlock; Location 5:11-5:18
            - condition: null  // Null
            - AST-node subtype: "1"  // Integer
            #text  // f.c.TextBlock; Location 5:18-5:18
                - content: "1"  // String
    #text  // f.c.TextBlock; Location 5:25-5:25
        - content: "\n"  // String
    #if-#elseif-#else-container  // f.c.IfBlock; Location 6:1-6:32
        #if  // f.c.ConditionalBlock; Location 6:1-6:14
            - condition: exp  // f.c.Identifier; Location 6:6-6:8
            - AST-node subtype: "0"  // Integer
            ${...}  // f.c.DollarVariable; Location 6:10-6:13
                - content: 1  // f.c.NumberLiteral; Location 6:12-6:12
            #text  // f.c.TextBlock; Location 6:14-6:14
                - content: "2"  // String
        #else  // f.c.ConditionalBlock; Location 6:15-6:26
            - condition: null  // Null
            - AST-node subtype: "1"  // Integer
            ${...}  // f.c.DollarVariable; Location 6:22-6:25
                - content: 1  // f.c.NumberLiteral; Location 6:24-6:24
            #text  // f.c.TextBlock; Location 6:26-6:26
                - content: "2"  // String
    #text  // f.c.TextBlock; Location 6:33-6:33
        - content: "\n"  // String
    #if-#elseif-#else-container  // f.c.IfBlock; Location 7:1-7:28
        #if  // f.c.ConditionalBlock; Location 7:1-7:9
            - condition: exp  // f.c.Identifier; Location 7:6-7:8
            - AST-node subtype: "0"  // Integer
        #elseif  // f.c.ConditionalBlock; Location 7:10-7:22
            - condition: exp  // f.c.Identifier; Location 7:19-7:21
            - AST-node subtype: "2"  // Integer
    #if-#elseif-#else-container  // f.c.IfBlock; Location 8:1-8:29
        #if  // f.c.ConditionalBlock; Location 8:1-8:9
            - condition: exp  // f.c.Identifier; Location 8:6-8:8
            - AST-node subtype: "0"  // Integer
        #elseif  // f.c.ConditionalBlock; Location 8:10-8:23
            - condition: exp  // f.c.Identifier; Location 8:19-8:21
            - AST-node subtype: "2"  // Integer
            #text  // f.c.TextBlock; Location 8:23-8:23
                - content: "1"  // String
    #text  // f.c.TextBlock; Location 8:30-8:30
        - content: "\n"  // String
    #attempt  // f.c.AttemptBlock; Location 9:1-9:31
        - error handler: #recover  // f.c.RecoveryBlock; Location 9:11-9:20
        #recover  // f.c.RecoveryBlock; Location 9:11-9:20
    #attempt  // f.c.AttemptBlock; Location 10:1-10:33
        - error handler: #recover  // f.c.RecoveryBlock; Location 10:12-10:22
            #text  // f.c.TextBlock; Location 10:22-10:22
                - content: "1"  // String
        #text  // f.c.TextBlock; Location 10:11-10:11
            - content: "1"  // String
        #recover  // f.c.RecoveryBlock; Location 10:12-10:22
            #text  // f.c.TextBlock; Location 10:22-10:22
                - content: "1"  // String
    #text  // f.c.TextBlock; Location 10:34-10:34
        - content: "\n"  // String
    #list  // f.c.IteratorBlock; Location 11:1-11:22
        - list source: s  // f.c.Identifier; Location 11:8-11:8
        - target loop variable: "i"  // String
    #list  // f.c.IteratorBlock; Location 12:1-12:23
        - list source: s  // f.c.Identifier; Location 12:8-12:8
        - target loop variable: "i"  // String
        #text  // f.c.TextBlock; Location 12:15-12:15
            - content: "1"  // String
    #text  // f.c.TextBlock; Location 12:24-12:24
        - content: "\n"  // String
    #list  // f.c.IteratorBlock; Location 13:1-13:28
        - list source: s  // f.c.Identifier; Location 13:8-13:8
        - target loop variable: "i"  // String
        #sep  // f.c.Sep; Location 13:15-13:20
    #list  // f.c.IteratorBlock; Location 14:1-14:30
        - list source: s  // f.c.Identifier; Location 14:8-14:8
        - target loop variable: "i"  // String
        #text  // f.c.TextBlock; Location 14:15-14:15
            - content: "1"  // String
        #sep  // f.c.Sep; Location 14:16-14:22
            #text  // f.c.TextBlock; Location 14:22-14:22
                - content: "1"  // String
    #text  // f.c.TextBlock; Location 14:31-14:31
        - content: "\n"  // String
    #list  // f.c.IteratorBlock; Location 15:1-15:45
        - list source: s  // f.c.Identifier; Location 15:8-15:8
        #items  // f.c.Items; Location 15:10-15:37
            - target loop variable: "i"  // String
            #sep  // f.c.Sep; Location 15:23-15:28
    #list  // f.c.IteratorBlock; Location 16:1-16:49
        - list source: s  // f.c.Identifier; Location 16:8-16:8
        #text  // f.c.TextBlock; Location 16:10-16:10
            - content: "1"  // String
        #items  // f.c.Items; Location 16:11-16:40
            - target loop variable: "i"  // String
            #text  // f.c.TextBlock; Location 16:24-16:24
                - content: "1"  // String
            #sep  // f.c.Sep; Location 16:25-16:31
                #text  // f.c.TextBlock; Location 16:31-16:31
                    - content: "1"  // String
        #text  // f.c.TextBlock; Location 16:41-16:41
            - content: "1"  // String
    #text  // f.c.TextBlock; Location 16:50-17:2
        - content: "\n1\n"  // String
    ${...}  // f.c.DollarVariable; Location 18:1-18:8
        - content: +  // f.c.AddConcatExpression; Location 18:3-18:7
            - left-hand operand: x  // f.c.Identifier; Location 18:3-18:3
            - right-hand operand: y  // f.c.Identifier; Location 18:7-18:7
