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