Skip to content

Commit 89054a8

Browse files
committed
Replace \> with />>
This makes it visually clear which argument is being piped into
1 parent 46e3076 commit 89054a8

File tree

5 files changed

+15
-13
lines changed

5 files changed

+15
-13
lines changed

src/expr.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ function _to_expr(node::SyntaxNode; iteration_spec=false, need_linenodes=true,
326326
args[1] = Expr(headsym, args[1].args...)
327327
headsym = :const
328328
end
329-
elseif headsym == Symbol("/>") || headsym == Symbol("\\>")
329+
elseif headsym == Symbol("/>") || headsym == Symbol("/>>")
330330
callex = only(args)
331331
@assert Meta.isexpr(callex, :call)
332332
args = callex.args
@@ -364,7 +364,7 @@ function _to_expr(node::SyntaxNode; iteration_spec=false, need_linenodes=true,
364364
return Expr(:call, func, args...)
365365
end
366366
elseif headsym == :chain
367-
if kind(node_args[1]) in KSet"/> \>"
367+
if kind(node_args[1]) in KSet"/> />>"
368368
return Expr(:call, :(JuliaSyntax.compose_chain), args...)
369369
else
370370
return Expr(:call, :(JuliaSyntax.chain), args...)
@@ -374,7 +374,7 @@ function _to_expr(node::SyntaxNode; iteration_spec=false, need_linenodes=true,
374374
end
375375

376376
#-------------------------------------------------------------------------------
377-
# Targets for lowering /> and \> syntax
377+
# Targets for lowering /> and />> syntax
378378

379379
# For use with />
380380
struct FixButFirst{F,Args,Kws}
@@ -390,7 +390,7 @@ Fix all arguments except for the first
390390
"""
391391
fixbutfirst(f, args...; kws...) = FixButFirst(f, args, kws)
392392

393-
# For use with \>
393+
# For use with />>
394394
struct FixButLast{F,Args,Kws}
395395
f::F
396396
args::Args
@@ -408,7 +408,7 @@ chain(x, f, fs...) = chain(f(x), fs...)
408408
chain(x) = x
409409

410410
# An example of how chain() can be used to rewrite
411-
# `x \> map(f) \> reduce(g)` into `mapreduce(f, g, x)`
411+
# `x />> map(f) />> reduce(g)` into `mapreduce(f, g, x)`
412412
function chain(x, f1::FixButLast{typeof(map)}, f2::FixButLast{typeof(reduce)}, fs...)
413413
chain(x, fixbutlast(mapreduce, f1.args..., f2.args...; f1.kwargs..., f2.kwargs...), fs...)
414414
end

src/kinds.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ const _kind_names =
824824
".'"
825825
"->"
826826
"/>"
827-
"\\>"
827+
"/>>"
828828

829829
"BEGIN_UNICODE_OPS"
830830
"¬"

src/parser.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -826,14 +826,14 @@ end
826826
function parse_curry_chain(ps::ParseState)
827827
mark = position(ps)
828828
nterms = 0
829-
if (k = peek(ps); k != K"/>" && k != K"\>")
829+
if (k = peek(ps); k != K"/>" && k != K"/>>")
830830
# x /> f(a) ==> (chain x (/> (call f a)))
831831
parse_range(ps)
832832
nterms += 1
833833
else
834834
# /> f(a) ==> (/> (call f a))
835835
end
836-
while (k = peek(ps); k == K"/>" || k == K"\>")
836+
while (k = peek(ps); k == K"/>" || k == K"/>>")
837837
m = position(ps)
838838
bump(ps, TRIVIA_FLAG)
839839
parse_range(ps)
@@ -847,7 +847,7 @@ function parse_curry_chain(ps::ParseState)
847847
# x /> f(a) /> g(b) ==> (chain x (/> (call f a)) (/> (call g b)))
848848
# x /> A.f(a,b) ==> (chain x (/> (call (. A (quote f)) a b)))
849849
# /> f(a) /> g(b) ==> (chain (/> (call f a)) (/> (call g b)))
850-
# x /> f() \> g() ==> (chain x (/> (call f)) (\> (call g)))
850+
# x /> f() />> g() ==> (chain x (/> (call f)) (/>> (call g)))
851851
# x /> $call ==> (chain x (/> ($ call)))
852852
# x /> notcall[] ==> (chain x (/> (error (ref notcall))))
853853
emit(ps, mark, K"chain")

src/tokenize.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -933,7 +933,11 @@ function lex_forwardslash(l::Lexer)
933933
elseif accept(l, '=')
934934
return emit(l, K"/=")
935935
elseif accept(l, '>')
936-
return emit(l, K"/>")
936+
if accept(l, '>')
937+
return emit(l, K"/>>")
938+
else
939+
return emit(l, K"/>")
940+
end
937941
else
938942
return emit(l, K"/")
939943
end
@@ -942,8 +946,6 @@ end
942946
function lex_backslash(l::Lexer)
943947
if accept(l, '=')
944948
return emit(l, K"\=")
945-
elseif accept(l, '>')
946-
return emit(l, K"\>")
947949
end
948950
return emit(l, K"\\")
949951
end

test/parser.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ tests = [
137137
"x /> f(a) /> g(b)" => "(chain x (/> (call f a)) (/> (call g b)))"
138138
"x /> A.f(a,b)" => "(chain x (/> (call (. A (quote f)) a b)))"
139139
"/> f(a) /> g(b)" => "(chain (/> (call f a)) (/> (call g b)))"
140-
"x /> f() \\> g()" => "(chain x (/> (call f)) (\\> (call g)))"
140+
"x /> f() />> g()" => "(chain x (/> (call f)) (/>> (call g)))"
141141
"x /> \$call" => "(chain x (/> (\$ call)))"
142142
"x /> notcall[]" => "(chain x (/> (error (ref notcall))))"
143143
],

0 commit comments

Comments
 (0)