This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
511
unikernel/duniverse/ppxlib/test/ppxlib-pp-ast/show-locs.t
Normal file
511
unikernel/duniverse/ppxlib/test/ppxlib-pp-ast/show-locs.t
Normal file
|
|
@ -0,0 +1,511 @@
|
|||
ppxlib-pp-ast as a --show-loc flag that controls whether locations are shown
|
||||
|
||||
Consider the following .ml file:
|
||||
|
||||
$ cat > test.ml << EOF
|
||||
> let x = 2
|
||||
> let y = true
|
||||
> let z =
|
||||
> fun x ->
|
||||
> x
|
||||
> EOF
|
||||
|
||||
This is how it's printed without the flag:
|
||||
|
||||
$ ppxlib-pp-ast test.ml
|
||||
[ Pstr_value
|
||||
( Nonrecursive
|
||||
, [ { pvb_pat = Ppat_var "x"
|
||||
; pvb_expr = Pexp_constant (Pconst_integer ( "2", None))
|
||||
; pvb_constraint = None
|
||||
; pvb_attributes = __attrs
|
||||
; pvb_loc = __loc
|
||||
}
|
||||
]
|
||||
)
|
||||
; Pstr_value
|
||||
( Nonrecursive
|
||||
, [ { pvb_pat = Ppat_var "y"
|
||||
; pvb_expr = Pexp_construct ( Lident "true", None)
|
||||
; pvb_constraint = None
|
||||
; pvb_attributes = __attrs
|
||||
; pvb_loc = __loc
|
||||
}
|
||||
]
|
||||
)
|
||||
; Pstr_value
|
||||
( Nonrecursive
|
||||
, [ { pvb_pat = Ppat_var "z"
|
||||
; pvb_expr =
|
||||
Pexp_function
|
||||
( [ { pparam_loc = __loc
|
||||
; pparam_desc = Pparam_val ( Nolabel, None, Ppat_var "x")
|
||||
}
|
||||
]
|
||||
, None
|
||||
, Pfunction_body (Pexp_ident (Lident "x"))
|
||||
)
|
||||
; pvb_constraint = None
|
||||
; pvb_attributes = __attrs
|
||||
; pvb_loc = __loc
|
||||
}
|
||||
]
|
||||
)
|
||||
]
|
||||
|
||||
Now how it's printed with the flag:
|
||||
|
||||
$ ppxlib-pp-ast --show-locs test.ml
|
||||
[ Pstr_value
|
||||
( Nonrecursive
|
||||
, [ { pvb_pat =
|
||||
{ ppat_desc = Ppat_var { txt = "x"; loc = l1c4..5}
|
||||
; ppat_loc = l1c4..5
|
||||
; ppat_loc_stack = __lstack
|
||||
; ppat_attributes = __attrs
|
||||
}
|
||||
; pvb_expr =
|
||||
{ pexp_desc = Pexp_constant (Pconst_integer ( "2", None))
|
||||
; pexp_loc = l1c8..9
|
||||
; pexp_loc_stack = __lstack
|
||||
; pexp_attributes = __attrs
|
||||
}
|
||||
; pvb_constraint = None
|
||||
; pvb_attributes = __attrs
|
||||
; pvb_loc = l1c0..9
|
||||
}
|
||||
]
|
||||
)
|
||||
; Pstr_value
|
||||
( Nonrecursive
|
||||
, [ { pvb_pat =
|
||||
{ ppat_desc = Ppat_var { txt = "y"; loc = l2c4..5}
|
||||
; ppat_loc = l2c4..5
|
||||
; ppat_loc_stack = __lstack
|
||||
; ppat_attributes = __attrs
|
||||
}
|
||||
; pvb_expr =
|
||||
{ pexp_desc =
|
||||
Pexp_construct
|
||||
( { txt = Lident "true"; loc = l2c8..12}, None)
|
||||
; pexp_loc = l2c8..12
|
||||
; pexp_loc_stack = __lstack
|
||||
; pexp_attributes = __attrs
|
||||
}
|
||||
; pvb_constraint = None
|
||||
; pvb_attributes = __attrs
|
||||
; pvb_loc = l2c0..12
|
||||
}
|
||||
]
|
||||
)
|
||||
; Pstr_value
|
||||
( Nonrecursive
|
||||
, [ { pvb_pat =
|
||||
{ ppat_desc = Ppat_var { txt = "z"; loc = l3c4..5}
|
||||
; ppat_loc = l3c4..5
|
||||
; ppat_loc_stack = __lstack
|
||||
; ppat_attributes = __attrs
|
||||
}
|
||||
; pvb_expr =
|
||||
{ pexp_desc =
|
||||
Pexp_function
|
||||
( [ { pparam_loc = l4c5..6
|
||||
; pparam_desc =
|
||||
Pparam_val
|
||||
( Nolabel
|
||||
, None
|
||||
, { ppat_desc =
|
||||
Ppat_var { txt = "x"; loc = l4c5..6}
|
||||
; ppat_loc = l4c5..6
|
||||
; ppat_loc_stack = __lstack
|
||||
; ppat_attributes = __attrs
|
||||
}
|
||||
)
|
||||
}
|
||||
]
|
||||
, None
|
||||
, Pfunction_body
|
||||
{ pexp_desc =
|
||||
Pexp_ident { txt = Lident "x"; loc = l5c1..2}
|
||||
; pexp_loc = l5c1..2
|
||||
; pexp_loc_stack = __lstack
|
||||
; pexp_attributes = __attrs
|
||||
}
|
||||
)
|
||||
; pexp_loc = l4c1..l5c2
|
||||
; pexp_loc_stack = __lstack
|
||||
; pexp_attributes = __attrs
|
||||
}
|
||||
; pvb_constraint = None
|
||||
; pvb_attributes = __attrs
|
||||
; pvb_loc = l3c0..l5c2
|
||||
}
|
||||
]
|
||||
)
|
||||
]
|
||||
|
||||
You can also pass an additional --full-locs flag to display location in their
|
||||
original form as opposed to the default, condensed one shown above:
|
||||
|
||||
$ ppxlib-pp-ast --show-locs --full-locs test.ml
|
||||
[ Pstr_value
|
||||
( Nonrecursive
|
||||
, [ { pvb_pat =
|
||||
{ ppat_desc =
|
||||
Ppat_var
|
||||
{ txt = "x"
|
||||
; loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 1
|
||||
; pos_bol = 0
|
||||
; pos_cnum = 4
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 1
|
||||
; pos_bol = 0
|
||||
; pos_cnum = 5
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
}
|
||||
; ppat_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 1
|
||||
; pos_bol = 0
|
||||
; pos_cnum = 4
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 1
|
||||
; pos_bol = 0
|
||||
; pos_cnum = 5
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
; ppat_loc_stack = __lstack
|
||||
; ppat_attributes = __attrs
|
||||
}
|
||||
; pvb_expr =
|
||||
{ pexp_desc = Pexp_constant (Pconst_integer ( "2", None))
|
||||
; pexp_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 1
|
||||
; pos_bol = 0
|
||||
; pos_cnum = 8
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 1
|
||||
; pos_bol = 0
|
||||
; pos_cnum = 9
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
; pexp_loc_stack = __lstack
|
||||
; pexp_attributes = __attrs
|
||||
}
|
||||
; pvb_constraint = None
|
||||
; pvb_attributes = __attrs
|
||||
; pvb_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 1
|
||||
; pos_bol = 0
|
||||
; pos_cnum = 0
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 1
|
||||
; pos_bol = 0
|
||||
; pos_cnum = 9
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
}
|
||||
]
|
||||
)
|
||||
; Pstr_value
|
||||
( Nonrecursive
|
||||
, [ { pvb_pat =
|
||||
{ ppat_desc =
|
||||
Ppat_var
|
||||
{ txt = "y"
|
||||
; loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 14
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 15
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
}
|
||||
; ppat_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 14
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 15
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
; ppat_loc_stack = __lstack
|
||||
; ppat_attributes = __attrs
|
||||
}
|
||||
; pvb_expr =
|
||||
{ pexp_desc =
|
||||
Pexp_construct
|
||||
( { txt = Lident "true"
|
||||
; loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 18
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 22
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
}
|
||||
, None
|
||||
)
|
||||
; pexp_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 18
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 22
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
; pexp_loc_stack = __lstack
|
||||
; pexp_attributes = __attrs
|
||||
}
|
||||
; pvb_constraint = None
|
||||
; pvb_attributes = __attrs
|
||||
; pvb_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 10
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 2
|
||||
; pos_bol = 10
|
||||
; pos_cnum = 22
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
}
|
||||
]
|
||||
)
|
||||
; Pstr_value
|
||||
( Nonrecursive
|
||||
, [ { pvb_pat =
|
||||
{ ppat_desc =
|
||||
Ppat_var
|
||||
{ txt = "z"
|
||||
; loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 3
|
||||
; pos_bol = 23
|
||||
; pos_cnum = 27
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 3
|
||||
; pos_bol = 23
|
||||
; pos_cnum = 28
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
}
|
||||
; ppat_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 3
|
||||
; pos_bol = 23
|
||||
; pos_cnum = 27
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 3
|
||||
; pos_bol = 23
|
||||
; pos_cnum = 28
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
; ppat_loc_stack = __lstack
|
||||
; ppat_attributes = __attrs
|
||||
}
|
||||
; pvb_expr =
|
||||
{ pexp_desc =
|
||||
Pexp_function
|
||||
( [ { pparam_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 4
|
||||
; pos_bol = 31
|
||||
; pos_cnum = 36
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 4
|
||||
; pos_bol = 31
|
||||
; pos_cnum = 37
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
; pparam_desc =
|
||||
Pparam_val
|
||||
( Nolabel
|
||||
, None
|
||||
, { ppat_desc =
|
||||
Ppat_var
|
||||
{ txt = "x"
|
||||
; loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 4
|
||||
; pos_bol = 31
|
||||
; pos_cnum = 36
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 4
|
||||
; pos_bol = 31
|
||||
; pos_cnum = 37
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
}
|
||||
; ppat_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 4
|
||||
; pos_bol = 31
|
||||
; pos_cnum = 36
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 4
|
||||
; pos_bol = 31
|
||||
; pos_cnum = 37
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
; ppat_loc_stack = __lstack
|
||||
; ppat_attributes = __attrs
|
||||
}
|
||||
)
|
||||
}
|
||||
]
|
||||
, None
|
||||
, Pfunction_body
|
||||
{ pexp_desc =
|
||||
Pexp_ident
|
||||
{ txt = Lident "x"
|
||||
; loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 5
|
||||
; pos_bol = 41
|
||||
; pos_cnum = 42
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 5
|
||||
; pos_bol = 41
|
||||
; pos_cnum = 43
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
}
|
||||
; pexp_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 5
|
||||
; pos_bol = 41
|
||||
; pos_cnum = 42
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 5
|
||||
; pos_bol = 41
|
||||
; pos_cnum = 43
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
; pexp_loc_stack = __lstack
|
||||
; pexp_attributes = __attrs
|
||||
}
|
||||
)
|
||||
; pexp_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 4
|
||||
; pos_bol = 31
|
||||
; pos_cnum = 32
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 5
|
||||
; pos_bol = 41
|
||||
; pos_cnum = 43
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
; pexp_loc_stack = __lstack
|
||||
; pexp_attributes = __attrs
|
||||
}
|
||||
; pvb_constraint = None
|
||||
; pvb_attributes = __attrs
|
||||
; pvb_loc =
|
||||
{ loc_start =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 3
|
||||
; pos_bol = 23
|
||||
; pos_cnum = 23
|
||||
}
|
||||
; loc_end =
|
||||
{ pos_fname = "test.ml"
|
||||
; pos_lnum = 5
|
||||
; pos_bol = 41
|
||||
; pos_cnum = 43
|
||||
}
|
||||
; loc_ghost = false
|
||||
}
|
||||
}
|
||||
]
|
||||
)
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue