Skip to content

Commit f53efae

Browse files
committed
pip call operator precedence was fixed
1 parent 1942ca1 commit f53efae

File tree

2 files changed

+63
-63
lines changed

2 files changed

+63
-63
lines changed

jac/jaclang/compiler/jac.lark

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -289,17 +289,11 @@ expression: walrus_assign (KW_IF expression KW_ELSE expression)?
289289
| lambda_expr
290290

291291
// Walrus assignments
292-
walrus_assign: (named_ref WALRUS_EQ)? pipe
292+
walrus_assign: (named_ref WALRUS_EQ)? elvis_check
293293

294294
// Lambda expressions
295295
lambda_expr: KW_WITH func_decl_params? (RETURN_HINT expression)? KW_CAN expression
296296

297-
// Pipe expressions
298-
pipe: (pipe PIPE_FWD)? pipe_back
299-
300-
// Pipe back expressions
301-
pipe_back: (pipe_back PIPE_BKWD)? elvis_check
302-
303297
// Elvis expressions
304298
elvis_check: (elvis_check ELVIS_OP)? bitwise_or
305299

@@ -348,7 +342,13 @@ ds_spawn: (ds_spawn KW_SPAWN)? unpack
348342
unpack: STAR_MUL? ref
349343

350344
// References (unused)
351-
ref: BW_AND? pipe_call
345+
ref: BW_AND? pipe
346+
347+
// Pipe expressions
348+
pipe: (pipe PIPE_FWD)? pipe_back
349+
350+
// Pipe back expressions
351+
pipe_back: (pipe_back PIPE_BKWD)? pipe_call
352352

353353
// Data spatial calls
354354
pipe_call: (PIPE_FWD | A_PIPE_FWD | KW_SPAWN | KW_AWAIT)? atomic_chain

jac/support/jac-lang.org/docs/learn/jac_ref.md

Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -794,42 +794,6 @@
794794

795795
--8<-- "examples/reference/lambda_expressions.md"
796796

797-
## Pipe expressions
798-
**Code Example**
799-
=== "Jac"
800-
```jac linenums="1"
801-
--8<-- "examples/reference/pipe_expressions.jac"
802-
```
803-
=== "Python"
804-
```python linenums="1"
805-
--8<-- "examples/reference/pipe_expressions.py"
806-
```
807-
??? example "Jac Grammar Snippet"
808-
```yaml linenums="298"
809-
--8<-- "jaclang/compiler/jac.lark:298:298"
810-
```
811-
**Description**
812-
813-
--8<-- "examples/reference/pipe_expressions.md"
814-
815-
## Pipe back expressions
816-
**Code Example**
817-
=== "Jac"
818-
```jac linenums="1"
819-
--8<-- "examples/reference/pipe_back_expressions.jac"
820-
```
821-
=== "Python"
822-
```python linenums="1"
823-
--8<-- "examples/reference/pipe_back_expressions.py"
824-
```
825-
??? example "Jac Grammar Snippet"
826-
```yaml linenums="301"
827-
--8<-- "jaclang/compiler/jac.lark:301:301"
828-
```
829-
**Description**
830-
831-
--8<-- "examples/reference/pipe_back_expressions.md"
832-
833797
## Elvis expressions
834798
**Code Example**
835799
=== "Jac"
@@ -841,8 +805,8 @@
841805
--8<-- "examples/reference/elvis_expressions.py"
842806
```
843807
??? example "Jac Grammar Snippet"
844-
```yaml linenums="304"
845-
--8<-- "jaclang/compiler/jac.lark:304:304"
808+
```yaml linenums="298"
809+
--8<-- "jaclang/compiler/jac.lark:298:298"
846810
```
847811
**Description**
848812

@@ -859,8 +823,8 @@
859823
--8<-- "examples/reference/bitwise_expressions.py"
860824
```
861825
??? example "Jac Grammar Snippet"
862-
```yaml linenums="307"
863-
--8<-- "jaclang/compiler/jac.lark:307:310"
826+
```yaml linenums="301"
827+
--8<-- "jaclang/compiler/jac.lark:301:304"
864828
```
865829
**Description**
866830

@@ -877,8 +841,8 @@
877841
--8<-- "examples/reference/logical_and_compare_expressions.py"
878842
```
879843
??? example "Jac Grammar Snippet"
880-
```yaml linenums="313"
881-
--8<-- "jaclang/compiler/jac.lark:313:327"
844+
```yaml linenums="307"
845+
--8<-- "jaclang/compiler/jac.lark:307:321"
882846
```
883847
**Description**
884848

@@ -895,8 +859,8 @@
895859
--8<-- "examples/reference/arithmetic_expressions.py"
896860
```
897861
??? example "Jac Grammar Snippet"
898-
```yaml linenums="330"
899-
--8<-- "jaclang/compiler/jac.lark:330:333"
862+
```yaml linenums="324"
863+
--8<-- "jaclang/compiler/jac.lark:324:327"
900864
```
901865
**Description**
902866

@@ -913,8 +877,8 @@
913877
--8<-- "examples/reference/connect_expressions.py"
914878
```
915879
??? example "Jac Grammar Snippet"
916-
```yaml linenums="336"
917-
--8<-- "jaclang/compiler/jac.lark:336:336"
880+
```yaml linenums="330"
881+
--8<-- "jaclang/compiler/jac.lark:330:330"
918882
```
919883
**Description**
920884

@@ -931,8 +895,8 @@
931895
--8<-- "examples/reference/atomic_expressions.py"
932896
```
933897
??? example "Jac Grammar Snippet"
934-
```yaml linenums="339"
935-
--8<-- "jaclang/compiler/jac.lark:339:339"
898+
```yaml linenums="333"
899+
--8<-- "jaclang/compiler/jac.lark:333:333"
936900
```
937901
**Description**
938902

@@ -949,8 +913,8 @@
949913
--8<-- "examples/reference/atomic_pipe_back_expressions.py"
950914
```
951915
??? example "Jac Grammar Snippet"
952-
```yaml linenums="342"
953-
--8<-- "jaclang/compiler/jac.lark:342:342"
916+
```yaml linenums="336"
917+
--8<-- "jaclang/compiler/jac.lark:336:336"
954918
```
955919
**Description**
956920

@@ -967,8 +931,8 @@
967931
--8<-- "examples/reference/data_spatial_spawn_expressions.py"
968932
```
969933
??? example "Jac Grammar Snippet"
970-
```yaml linenums="345"
971-
--8<-- "jaclang/compiler/jac.lark:345:345"
934+
```yaml linenums="339"
935+
--8<-- "jaclang/compiler/jac.lark:339:339"
972936
```
973937
**Description**
974938

@@ -985,8 +949,8 @@
985949
--8<-- "examples/reference/unpack_expressions.py"
986950
```
987951
??? example "Jac Grammar Snippet"
988-
```yaml linenums="348"
989-
--8<-- "jaclang/compiler/jac.lark:348:348"
952+
```yaml linenums="342"
953+
--8<-- "jaclang/compiler/jac.lark:342:342"
990954
```
991955
**Description**
992956

@@ -1002,13 +966,49 @@
1002966
```python linenums="1"
1003967
--8<-- "examples/reference/references_(unused).py"
1004968
```
969+
??? example "Jac Grammar Snippet"
970+
```yaml linenums="345"
971+
--8<-- "jaclang/compiler/jac.lark:345:345"
972+
```
973+
**Description**
974+
975+
--8<-- "examples/reference/references_(unused).md"
976+
977+
## Pipe expressions
978+
**Code Example**
979+
=== "Jac"
980+
```jac linenums="1"
981+
--8<-- "examples/reference/pipe_expressions.jac"
982+
```
983+
=== "Python"
984+
```python linenums="1"
985+
--8<-- "examples/reference/pipe_expressions.py"
986+
```
987+
??? example "Jac Grammar Snippet"
988+
```yaml linenums="348"
989+
--8<-- "jaclang/compiler/jac.lark:348:348"
990+
```
991+
**Description**
992+
993+
--8<-- "examples/reference/pipe_expressions.md"
994+
995+
## Pipe back expressions
996+
**Code Example**
997+
=== "Jac"
998+
```jac linenums="1"
999+
--8<-- "examples/reference/pipe_back_expressions.jac"
1000+
```
1001+
=== "Python"
1002+
```python linenums="1"
1003+
--8<-- "examples/reference/pipe_back_expressions.py"
1004+
```
10051005
??? example "Jac Grammar Snippet"
10061006
```yaml linenums="351"
10071007
--8<-- "jaclang/compiler/jac.lark:351:351"
10081008
```
10091009
**Description**
10101010

1011-
--8<-- "examples/reference/references_(unused).md"
1011+
--8<-- "examples/reference/pipe_back_expressions.md"
10121012

10131013
## Data spatial calls
10141014
**Code Example**

0 commit comments

Comments
 (0)