Skip to content
  • ydah's avatar
    c7213011
    Implement FOR NODE locations · c7213011
    ydah authored
    The following Location information has been added This is the information required for parse.y to be a universal parser:
    
    ```
    ❯ ruby --parser=prism --dump=parsetree -e "for a in b do end"
    @ ProgramNode (location: (1,0)-(1,17))
    +-- locals: [:a]
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,17))
        +-- body: (length: 1)
            +-- @ ForNode (location: (1,0)-(1,17))
                +-- index:
                |   @ LocalVariableTargetNode (location: (1,4)-(1,5))
                |   +-- name: :a
                |   +-- depth: 0
                +-- collection:
                |   @ CallNode (location: (1,9)-(1,10))
                |   +-- CallNodeFlags: variable_call, ignore_visibility
                |   +-- receiver: nil
                |   +-- call_operator_loc: nil
                |   +-- name: :b
                |   +-- message_loc: (1,9)-(1,10) = "b"
                |   +-- opening_loc: nil
                |   +-- arguments: nil
                |   +-- closing_loc: nil
                |   +-- block: nil
                +-- statements: nil
                +-- for_keyword_loc: (1,0)-(1,3) = "for"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- in_keyword_loc: (1,6)-(1,8) = "in"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- do_keyword_loc: (1,11)-(1,13) = "do"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- end_keyword_loc: (1,14)-(1,17) = "end"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ```
    c7213011
    Implement FOR NODE locations
    ydah authored
    The following Location information has been added This is the information required for parse.y to be a universal parser:
    
    ```
    ❯ ruby --parser=prism --dump=parsetree -e "for a in b do end"
    @ ProgramNode (location: (1,0)-(1,17))
    +-- locals: [:a]
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,17))
        +-- body: (length: 1)
            +-- @ ForNode (location: (1,0)-(1,17))
                +-- index:
                |   @ LocalVariableTargetNode (location: (1,4)-(1,5))
                |   +-- name: :a
                |   +-- depth: 0
                +-- collection:
                |   @ CallNode (location: (1,9)-(1,10))
                |   +-- CallNodeFlags: variable_call, ignore_visibility
                |   +-- receiver: nil
                |   +-- call_operator_loc: nil
                |   +-- name: :b
                |   +-- message_loc: (1,9)-(1,10) = "b"
                |   +-- opening_loc: nil
                |   +-- arguments: nil
                |   +-- closing_loc: nil
                |   +-- block: nil
                +-- statements: nil
                +-- for_keyword_loc: (1,0)-(1,3) = "for"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- in_keyword_loc: (1,6)-(1,8) = "in"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- do_keyword_loc: (1,11)-(1,13) = "do"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- end_keyword_loc: (1,14)-(1,17) = "end"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ```
Loading