@@ -1763,84 +1763,81 @@ add_cursor(_Line, Column, noprune, Terminators, Tokens) ->
1763
1763
{Column , Terminators , Tokens };
1764
1764
add_cursor (Line , Column , prune_and_cursor , Terminators , Tokens ) ->
1765
1765
PrePrunedTokens = prune_identifier (Tokens ),
1766
- { PrunedTokens , PrunedTerminators } = prune_tokens (PrePrunedTokens , [], Terminators ),
1766
+ PrunedTokens = prune_tokens (PrePrunedTokens , []),
1767
1767
CursorTokens = [
1768
1768
{')' , {Line , Column + 11 , nil }},
1769
1769
{'(' , {Line , Column + 10 , nil }},
1770
1770
{paren_identifier , {Line , Column , nil }, '__cursor__' }
1771
1771
| PrunedTokens
1772
1772
],
1773
- {Column + 12 , PrunedTerminators , CursorTokens }.
1773
+ {Column + 12 , Terminators , CursorTokens }.
1774
1774
1775
1775
prune_identifier ([{identifier , _ , _ } | Tokens ]) -> Tokens ;
1776
1776
prune_identifier (Tokens ) -> Tokens .
1777
1777
1778
1778
% %% Any terminator needs to be closed
1779
- prune_tokens ([{'end' , _ } | Tokens ], Opener , Terminators ) ->
1780
- prune_tokens (Tokens , ['end' | Opener ], Terminators );
1781
- prune_tokens ([{')' , _ } | Tokens ], Opener , Terminators ) ->
1782
- prune_tokens (Tokens , [')' | Opener ], Terminators );
1783
- prune_tokens ([{']' , _ } | Tokens ], Opener , Terminators ) ->
1784
- prune_tokens (Tokens , [']' | Opener ], Terminators );
1785
- prune_tokens ([{'}' , _ } | Tokens ], Opener , Terminators ) ->
1786
- prune_tokens (Tokens , ['}' | Opener ], Terminators );
1787
- prune_tokens ([{'>>' , _ } | Tokens ], Opener , Terminators ) ->
1788
- prune_tokens (Tokens , ['>>' | Opener ], Terminators );
1779
+ prune_tokens ([{'end' , _ } | Tokens ], Opener ) ->
1780
+ prune_tokens (Tokens , ['end' | Opener ]);
1781
+ prune_tokens ([{')' , _ } | Tokens ], Opener ) ->
1782
+ prune_tokens (Tokens , [')' | Opener ]);
1783
+ prune_tokens ([{']' , _ } | Tokens ], Opener ) ->
1784
+ prune_tokens (Tokens , [']' | Opener ]);
1785
+ prune_tokens ([{'}' , _ } | Tokens ], Opener ) ->
1786
+ prune_tokens (Tokens , ['}' | Opener ]);
1787
+ prune_tokens ([{'>>' , _ } | Tokens ], Opener ) ->
1788
+ prune_tokens (Tokens , ['>>' | Opener ]);
1789
1789
% %% Close opened terminators
1790
- prune_tokens ([{'fn' , _ } | Tokens ], ['end' | Opener ], Terminators ) ->
1791
- prune_tokens (Tokens , Opener , Terminators );
1792
- prune_tokens ([{'do' , _ } | Tokens ], ['end' | Opener ], Terminators ) ->
1793
- prune_tokens (Tokens , Opener , Terminators );
1794
- prune_tokens ([{'(' , _ } | Tokens ], [')' | Opener ], Terminators ) ->
1795
- prune_tokens (Tokens , Opener , Terminators );
1796
- prune_tokens ([{'[' , _ } | Tokens ], [']' | Opener ], Terminators ) ->
1797
- prune_tokens (Tokens , Opener , Terminators );
1798
- prune_tokens ([{'{' , _ } | Tokens ], ['}' | Opener ], Terminators ) ->
1799
- prune_tokens (Tokens , Opener , Terminators );
1800
- prune_tokens ([{'<<' , _ } | Tokens ], ['>>' | Opener ], Terminators ) ->
1801
- prune_tokens (Tokens , Opener , Terminators );
1802
- % %% Handle anonymous functions
1803
- prune_tokens ([{'(' , _ }, {capture_op , _ , _ } | Tokens ], [], [{'(' , _ , _ } | Terminators ]) ->
1804
- prune_tokens (Tokens , [], Terminators );
1790
+ prune_tokens ([{'fn' , _ } | Tokens ], ['end' | Opener ]) ->
1791
+ prune_tokens (Tokens , Opener );
1792
+ prune_tokens ([{'do' , _ } | Tokens ], ['end' | Opener ]) ->
1793
+ prune_tokens (Tokens , Opener );
1794
+ prune_tokens ([{'(' , _ } | Tokens ], [')' | Opener ]) ->
1795
+ prune_tokens (Tokens , Opener );
1796
+ prune_tokens ([{'[' , _ } | Tokens ], [']' | Opener ]) ->
1797
+ prune_tokens (Tokens , Opener );
1798
+ prune_tokens ([{'{' , _ } | Tokens ], ['}' | Opener ]) ->
1799
+ prune_tokens (Tokens , Opener );
1800
+ prune_tokens ([{'<<' , _ } | Tokens ], ['>>' | Opener ]) ->
1801
+ prune_tokens (Tokens , Opener );
1805
1802
% %% or it is time to stop...
1806
- prune_tokens ([{';' , _ } | _ ] = Tokens , [], Terminators ) ->
1807
- { Tokens , Terminators } ;
1808
- prune_tokens ([{'eol' , _ } | _ ] = Tokens , [], Terminators ) ->
1809
- { Tokens , Terminators } ;
1810
- prune_tokens ([{',' , _ } | _ ] = Tokens , [], Terminators ) ->
1811
- { Tokens , Terminators } ;
1812
- prune_tokens ([{'fn' , _ } | _ ] = Tokens , [], Terminators ) ->
1813
- { Tokens , Terminators } ;
1814
- prune_tokens ([{'do' , _ } | _ ] = Tokens , [], Terminators ) ->
1815
- { Tokens , Terminators } ;
1816
- prune_tokens ([{'(' , _ } | _ ] = Tokens , [], Terminators ) ->
1817
- { Tokens , Terminators } ;
1818
- prune_tokens ([{'[' , _ } | _ ] = Tokens , [], Terminators ) ->
1819
- { Tokens , Terminators } ;
1820
- prune_tokens ([{'{' , _ } | _ ] = Tokens , [], Terminators ) ->
1821
- { Tokens , Terminators } ;
1822
- prune_tokens ([{'<<' , _ } | _ ] = Tokens , [], Terminators ) ->
1823
- { Tokens , Terminators } ;
1824
- prune_tokens ([{identifier , _ , _ } | _ ] = Tokens , [], Terminators ) ->
1825
- { Tokens , Terminators } ;
1826
- prune_tokens ([{block_identifier , _ , _ } | _ ] = Tokens , [], Terminators ) ->
1827
- { Tokens , Terminators } ;
1828
- prune_tokens ([{kw_identifier , _ , _ } | _ ] = Tokens , [], Terminators ) ->
1829
- { Tokens , Terminators } ;
1830
- prune_tokens ([{kw_identifier_safe , _ , _ } | _ ] = Tokens , [], Terminators ) ->
1831
- { Tokens , Terminators } ;
1832
- prune_tokens ([{kw_identifier_unsafe , _ , _ } | _ ] = Tokens , [], Terminators ) ->
1833
- { Tokens , Terminators } ;
1834
- prune_tokens ([{OpType , _ , _ } | _ ] = Tokens , [], Terminators )
1803
+ prune_tokens ([{';' , _ } | _ ] = Tokens , []) ->
1804
+ Tokens ;
1805
+ prune_tokens ([{'eol' , _ } | _ ] = Tokens , []) ->
1806
+ Tokens ;
1807
+ prune_tokens ([{',' , _ } | _ ] = Tokens , []) ->
1808
+ Tokens ;
1809
+ prune_tokens ([{'fn' , _ } | _ ] = Tokens , []) ->
1810
+ Tokens ;
1811
+ prune_tokens ([{'do' , _ } | _ ] = Tokens , []) ->
1812
+ Tokens ;
1813
+ prune_tokens ([{'(' , _ } | _ ] = Tokens , []) ->
1814
+ Tokens ;
1815
+ prune_tokens ([{'[' , _ } | _ ] = Tokens , []) ->
1816
+ Tokens ;
1817
+ prune_tokens ([{'{' , _ } | _ ] = Tokens , []) ->
1818
+ Tokens ;
1819
+ prune_tokens ([{'<<' , _ } | _ ] = Tokens , []) ->
1820
+ Tokens ;
1821
+ prune_tokens ([{identifier , _ , _ } | _ ] = Tokens , []) ->
1822
+ Tokens ;
1823
+ prune_tokens ([{block_identifier , _ , _ } | _ ] = Tokens , []) ->
1824
+ Tokens ;
1825
+ prune_tokens ([{kw_identifier , _ , _ } | _ ] = Tokens , []) ->
1826
+ Tokens ;
1827
+ prune_tokens ([{kw_identifier_safe , _ , _ } | _ ] = Tokens , []) ->
1828
+ Tokens ;
1829
+ prune_tokens ([{kw_identifier_unsafe , _ , _ } | _ ] = Tokens , []) ->
1830
+ Tokens ;
1831
+ prune_tokens ([{OpType , _ , _ } | _ ] = Tokens , [])
1835
1832
when OpType =:= comp_op ; OpType =:= at_op ; OpType =:= unary_op ; OpType =:= and_op ;
1836
1833
OpType =:= or_op ; OpType =:= arrow_op ; OpType =:= match_op ; OpType =:= in_op ;
1837
1834
OpType =:= in_match_op ; OpType =:= type_op ; OpType =:= dual_op ; OpType =:= mult_op ;
1838
1835
OpType =:= power_op ; OpType =:= concat_op ; OpType =:= range_op ; OpType =:= xor_op ;
1839
1836
OpType =:= pipe_op ; OpType =:= stab_op ; OpType =:= when_op ; OpType =:= assoc_op ;
1840
1837
OpType =:= rel_op ; OpType =:= ternary_op ; OpType =:= capture_op ; OpType =:= ellipsis_op ->
1841
- { Tokens , Terminators } ;
1838
+ Tokens ;
1842
1839
% %% or we traverse until the end.
1843
- prune_tokens ([_ | Tokens ], Opener , Terminators ) ->
1844
- prune_tokens (Tokens , Opener , Terminators );
1845
- prune_tokens ([], [], Terminators ) ->
1846
- {[], Terminators } .
1840
+ prune_tokens ([_ | Tokens ], Opener ) ->
1841
+ prune_tokens (Tokens , Opener );
1842
+ prune_tokens ([], _Opener ) ->
1843
+ [] .
0 commit comments