type: program
id: 0
range: 1:1 - 11:1
dataflow_sources:
    - 1
    - 5
    - 15
    - 22
    - 30
    - 37
    - 44
children:
    - type: string
      id: 1
      range: 1:1 - 1:5
      dataflow_sources:
        - 2
        - 3
        - 4
      children:
        - type: '"""'
          id: 2
          range: 1:1 - 1:2
        - type: string_content
          id: 3
          range: 1:2 - 1:4
          content: ab
        - type: '"""'
          id: 4
          range: 1:4 - 1:5
    - type: binary
      id: 5
      range: 3:1 - 3:10
      dataflow_sources:
        - 6
        - 10
        - 11
      children:
        - type: string
          id: 6
          range: 3:1 - 3:4
          dataflow_sources:
            - 7
            - 8
            - 9
          children:
            - type: '"""'
              id: 7
              range: 3:1 - 3:2
            - type: string_content
              id: 8
              range: 3:2 - 3:3
              content: a
            - type: '"""'
              id: 9
              range: 3:3 - 3:4
        - type: '"+"'
          id: 10
          range: 3:5 - 3:6
        - type: string
          id: 11
          range: 3:7 - 3:10
          dataflow_sources:
            - 12
            - 13
            - 14
          children:
            - type: '"""'
              id: 12
              range: 3:7 - 3:8
            - type: string_content
              id: 13
              range: 3:8 - 3:9
              content: b
            - type: '"""'
              id: 14
              range: 3:9 - 3:10
    - type: assignment
      id: 15
      range: 5:1 - 5:8
      alias_of:
        - 18
      queries:
        - 2
      children:
        - type: identifier
          id: 16
          range: 5:1 - 5:2
          content: x
        - type: '"="'
          id: 17
          range: 5:3 - 5:4
        - type: string
          id: 18
          range: 5:5 - 5:8
          dataflow_sources:
            - 19
            - 20
            - 21
          children:
            - type: '"""'
              id: 19
              range: 5:5 - 5:6
            - type: string_content
              id: 20
              range: 5:6 - 5:7
              content: a
            - type: '"""'
              id: 21
              range: 5:7 - 5:8
    - type: string
      id: 22
      range: 6:1 - 6:9
      dataflow_sources:
        - 23
        - 24
        - 28
        - 29
      children:
        - type: '"""'
          id: 23
          range: 6:1 - 6:2
        - type: interpolation
          id: 24
          range: 6:2 - 6:6
          dataflow_sources:
            - 25
            - 26
            - 27
          children:
            - type: '"#{"'
              id: 25
              range: 6:2 - 6:4
            - type: identifier
              id: 26
              range: 6:4 - 6:5
              content: x
              alias_of:
                - 15
            - type: '"}"'
              id: 27
              range: 6:5 - 6:6
        - type: string_content
          id: 28
          range: 6:6 - 6:8
          content: ' b'
        - type: '"""'
          id: 29
          range: 6:8 - 6:9
    - type: binary
      id: 30
      range: 8:1 - 8:15
      dataflow_sources:
        - 31
        - 32
        - 33
      children:
        - type: "false"
          id: 31
          range: 8:1 - 8:6
          content: "false"
        - type: '"||"'
          id: 32
          range: 8:7 - 8:9
        - type: string
          id: 33
          range: 8:10 - 8:15
          dataflow_sources:
            - 34
            - 35
            - 36
          children:
            - type: '"""'
              id: 34
              range: 8:10 - 8:11
            - type: string_content
              id: 35
              range: 8:11 - 8:14
              content: foo
            - type: '"""'
              id: 36
              range: 8:14 - 8:15
    - type: binary
      id: 37
      range: 9:1 - 9:15
      dataflow_sources:
        - 38
        - 39
        - 40
      children:
        - type: "false"
          id: 38
          range: 9:1 - 9:6
          content: "false"
        - type: '"or"'
          id: 39
          range: 9:7 - 9:9
        - type: string
          id: 40
          range: 9:10 - 9:15
          dataflow_sources:
            - 41
            - 42
            - 43
          children:
            - type: '"""'
              id: 41
              range: 9:10 - 9:11
            - type: string_content
              id: 42
              range: 9:11 - 9:14
              content: foo
            - type: '"""'
              id: 43
              range: 9:14 - 9:15
    - type: binary
      id: 44
      range: 10:1 - 10:15
      dataflow_sources:
        - 45
        - 49
        - 50
      children:
        - type: string
          id: 45
          range: 10:1 - 10:6
          dataflow_sources:
            - 46
            - 47
            - 48
          children:
            - type: '"""'
              id: 46
              range: 10:1 - 10:2
            - type: string_content
              id: 47
              range: 10:2 - 10:5
              content: hey
            - type: '"""'
              id: 48
              range: 10:5 - 10:6
        - type: '"||"'
          id: 49
          range: 10:7 - 10:9
        - type: string
          id: 50
          range: 10:10 - 10:15
          dataflow_sources:
            - 51
            - 52
            - 53
          children:
            - type: '"""'
              id: 51
              range: 10:10 - 10:11
            - type: string_content
              id: 52
              range: 10:11 - 10:14
              content: foo
            - type: '"""'
              id: 53
              range: 10:14 - 10:15

- node: 1
  content: '"ab"'
  data:
    value: ab
    isliteral: true
- node: 5
  content: '"a" + "b"'
  data:
    value: ab
    isliteral: true
- node: 22
  content: '"#{x} b"'
  data:
    value: a b
    isliteral: true
- node: 30
  content: false || "foo"
  data:
    value: foo
    isliteral: true
- node: 37
  content: false or "foo"
  data:
    value: foo
    isliteral: true
- node: 44
  content: '"hey" || "foo"'
  data:
    value: hey
    isliteral: true
- node: 44
  content: '"hey" || "foo"'
  data:
    value: foo
    isliteral: true
- node: 3
  content: ab
  data:
    value: ab
    isliteral: true
- node: 6
  content: '"a"'
  data:
    value: a
    isliteral: true
- node: 11
  content: '"b"'
  data:
    value: b
    isliteral: true
- node: 18
  content: '"a"'
  data:
    value: a
    isliteral: true
- node: 24
  content: '#{x}'
  data:
    value: a
    isliteral: true
- node: 28
  content: ' b'
  data:
    value: ' b'
    isliteral: true
- node: 33
  content: '"foo"'
  data:
    value: foo
    isliteral: true
- node: 40
  content: '"foo"'
  data:
    value: foo
    isliteral: true
- node: 45
  content: '"hey"'
  data:
    value: hey
    isliteral: true
- node: 50
  content: '"foo"'
  data:
    value: foo
    isliteral: true
- node: 8
  content: a
  data:
    value: a
    isliteral: true
- node: 13
  content: b
  data:
    value: b
    isliteral: true
- node: 20
  content: a
  data:
    value: a
    isliteral: true
- node: 35
  content: foo
  data:
    value: foo
    isliteral: true
- node: 42
  content: foo
  data:
    value: foo
    isliteral: true
- node: 47
  content: hey
  data:
    value: hey
    isliteral: true
- node: 52
  content: foo
  data:
    value: foo
    isliteral: true

