type: program
id: 0
range: 1:1 - 9:2
dataflow_sources:
    - 1
children:
    - type: class_declaration
      id: 1
      range: 1:1 - 9:2
      dataflow_sources:
        - 2
        - 4
        - 5
        - 6
      queries:
        - 1
      children:
        - type: modifiers
          id: 2
          range: 1:1 - 1:7
          dataflow_sources:
            - 3
          children:
            - type: '"public"'
              id: 3
              range: 1:1 - 1:7
        - type: '"class"'
          id: 4
          range: 1:8 - 1:13
        - type: identifier
          id: 5
          range: 1:14 - 1:18
          content: User
        - type: class_body
          id: 6
          range: 2:1 - 9:2
          children:
            - type: '"{"'
              id: 7
              range: 2:1 - 2:2
            - type: field_declaration
              id: 8
              range: 3:5 - 3:24
              dataflow_sources:
                - 9
                - 11
                - 12
                - 14
              children:
                - type: modifiers
                  id: 9
                  range: 3:5 - 3:11
                  dataflow_sources:
                    - 10
                  children:
                    - type: '"public"'
                      id: 10
                      range: 3:5 - 3:11
                - type: type_identifier
                  id: 11
                  range: 3:12 - 3:18
                  content: String
                - type: variable_declarator
                  id: 12
                  range: 3:19 - 3:23
                  children:
                    - type: identifier
                      id: 13
                      range: 3:19 - 3:23
                      content: name
                      alias_of:
                        - 8
                - type: '";"'
                  id: 14
                  range: 3:23 - 3:24
            - type: method_declaration
              id: 15
              range: 5:5 - 8:6
              children:
                - type: modifiers
                  id: 16
                  range: 5:5 - 5:11
                  dataflow_sources:
                    - 17
                  children:
                    - type: '"public"'
                      id: 17
                      range: 5:5 - 5:11
                - type: type_identifier
                  id: 18
                  range: 5:12 - 5:18
                  content: String
                - type: identifier
                  id: 19
                  range: 5:19 - 5:32
                  content: LowercaseName
                - type: formal_parameters
                  id: 20
                  range: 5:32 - 5:34
                  dataflow_sources:
                    - 21
                    - 22
                  children:
                    - type: '"("'
                      id: 21
                      range: 5:32 - 5:33
                    - type: '")"'
                      id: 22
                      range: 5:33 - 5:34
                - type: block
                  id: 23
                  range: 6:5 - 8:6
                  children:
                    - type: '"{"'
                      id: 24
                      range: 6:5 - 6:6
                    - type: return_statement
                      id: 25
                      range: 7:9 - 7:35
                      dataflow_sources:
                        - 26
                        - 27
                        - 34
                      children:
                        - type: '"return"'
                          id: 26
                          range: 7:9 - 7:15
                        - type: method_invocation
                          id: 27
                          range: 7:16 - 7:34
                          dataflow_sources:
                            - 31
                          children:
                            - type: identifier
                              id: 28
                              range: 7:16 - 7:20
                              content: name
                              alias_of:
                                - 13
                            - type: '"."'
                              id: 29
                              range: 7:20 - 7:21
                            - type: identifier
                              id: 30
                              range: 7:21 - 7:32
                              content: toLowerCase
                            - type: argument_list
                              id: 31
                              range: 7:32 - 7:34
                              dataflow_sources:
                                - 32
                                - 33
                              children:
                                - type: '"("'
                                  id: 32
                                  range: 7:32 - 7:33
                                - type: '")"'
                                  id: 33
                                  range: 7:33 - 7:34
                        - type: '";"'
                          id: 34
                          range: 7:34 - 7:35
                    - type: '"}"'
                      id: 35
                      range: 8:5 - 8:6
            - type: '"}"'
              id: 36
              range: 9:1 - 9:2

- node: 1
  content: |-
    public class User
    {
        public String name;

        public String LowercaseName()
        {
            return name.toLowerCase();
        }
    }
  data:
    properties:
        - name: User
          node: null
          object:
            ruleid: object
            matchnode:
                id: 1
                typeid: 1
                contentstart:
                    byte: 0
                    line: 1
                    column: 1
                contentend:
                    byte: 127
                    line: 9
                    column: 2
                executingdetectors: []
            data:
                properties:
                    - name: name
                      node:
                        id: 13
                        typeid: 5
                        contentstart:
                            byte: 38
                            line: 3
                            column: 19
                        contentend:
                            byte: 42
                            line: 3
                            column: 23
                        executingdetectors: []
                      object: null
                    - name: LowercaseName
                      node:
                        id: 19
                        typeid: 5
                        contentstart:
                            byte: 63
                            line: 5
                            column: 19
                        contentend:
                            byte: 76
                            line: 5
                            column: 32
                        executingdetectors: []
                      object: null
                isvirtual: false
    isvirtual: false

