File 2971-Make-function-application-left-associative-so-it-can.patch of Package erlang
From 55bc8d4833649c9f486b4d6cc36cbbe05592229c Mon Sep 17 00:00:00 2001
From: Richard Carlsson <carlsson.richard@gmail.com>
Date: Wed, 18 Dec 2024 21:52:14 +0100
Subject: [PATCH 1/2] Make function application left associative so it can be
chained
---
lib/stdlib/src/erl_parse.yrl | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/lib/stdlib/src/erl_parse.yrl b/lib/stdlib/src/erl_parse.yrl
index 22a5953580..8d1de8a4e0 100644
--- a/lib/stdlib/src/erl_parse.yrl
+++ b/lib/stdlib/src/erl_parse.yrl
@@ -114,6 +114,7 @@ Left 400 add_op.
Left 500 mult_op.
Unary 600 prefix_op.
Nonassoc 700 '#'.
+Left 750 '('.
Nonassoc 800 ':'.
Nonassoc 900 clause_body_exprs.
@@ -271,9 +272,9 @@ expr -> map_expr : '$1'.
expr -> function_call : '$1'.
expr -> record_expr : '$1'.
expr -> expr_remote : '$1'.
+expr -> expr_max : '$1'.
-expr_remote -> expr_max ':' expr_max : {remote,?anno('$2'),'$1','$3'}.
-expr_remote -> expr_max : '$1'.
+expr_remote -> expr ':' expr : {remote,?anno('$2'),'$1','$3'}.
expr_max -> var : '$1'.
expr_max -> atomic : '$1'.
@@ -433,11 +434,8 @@ record_fields -> record_field ',' record_fields : ['$1' | '$3'].
record_field -> var '=' expr : {record_field,?anno('$1'),'$1','$3'}.
record_field -> atom '=' expr : {record_field,?anno('$1'),'$1','$3'}.
-%% N.B. This is called from expr.
-
-function_call -> expr_remote argument_list :
- {call,first_anno('$1'),'$1',element(1, '$2')}.
-
+function_call -> expr argument_list :
+ {call,first_anno('$1'),'$1',element(1, '$2')}.
if_expr -> 'if' if_clauses 'end' : {'if',?anno('$1'),'$2'}.
@@ -2037,7 +2035,8 @@ inop_prec('div') -> {500,500,600};
inop_prec('rem') -> {500,500,600};
inop_prec('band') -> {500,500,600};
inop_prec('and') -> {500,500,600};
-inop_prec('#') -> {800,700,800};
+inop_prec('#') -> {750,700,750};
+inop_prec('(') -> {750,750,800};
inop_prec(':') -> {900,800,900};
inop_prec('.') -> {900,900,1000}.
--
2.51.0