package Ġorg . elm . lang . core . psi . elements Ċ Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġcom . intellij . psi . Psi Comment Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġorg . elm . lang . core . psi .* Ċ import Ġorg . elm . lang . core . psi . elements . Pipeline . Left Pipeline Ċ import Ġorg . elm . lang . core . psi . elements . Pipeline . Right Pipeline ĊĊ Ċ /** Ċ Ġ* ĠOne Ġor Ġmore Ġbinary Ġoperator Ġexpressions . Ċ Ġ* Ċ Ġ* ĠExamples : Ċ Ġ* Ċ Ġ* Ġ Ġ``` Ċ Ġ* ĠĠ 4 Ġ+ Ġ 3 Ċ Ġ* ĠĠ 4 Ġ+ Ġ 3 Ġ== Ġ 7 Ċ Ġ* Ġ ĠString . from Int Ġx Ġ++ Ġ" Ġthings " Ċ Ġ* Ġ Ġ``` Ċ Ġ*/ Ċ class ĠEl m Bin Op Expr ( node : ĠAST Node ) Ġ: ĠEl m Psi Element Impl ( node ), ĠEl m Expression Tag Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn Ġinter leaved Ġsequence Ġof Ġoperands Ġand Ġbinary Ġoperators . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġexample , Ġ` String . from Int Ġx Ġ++ Ġ" Ġthings "` Ġwould Ġbe Ġa Ġ 3 - element Ġsequence Ġconsisting Ġof ĊĠĠĠĠ Ġ* Ġ[ Elm Function Call Expr ] Ġfollowed Ġby Ġ[ Elm Operator ] Ġfollowed Ġby Ġ[ Elm Atom Tag ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġparts : ĠSequence < Elm Bin Op Part Tag > Ġget () Ġ= Ġdirect Children . filter Is Instance < Elm Bin Op Part Tag >() ĊĠĠĠ Ġval Ġpart sWith Comments : ĠSequence < Psi Element > Ġget () Ġ= Ġdirect Children . filter Ġ{ Ġit Ġis ĠPsi Comment Ġ|| Ġit Ġis ĠEl m Bin Op Part Tag Ġ} ĊĊĊĠĠĠ Ġfun Ġas Pipeline (): ĠPipeline ? Ġ{ ĊĠĠĠĠĠĠĠ Ġparts . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠEl m Operator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . reference Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"< |" Ġ-> Ġreturn ĠLeft Pipeline ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"| >" Ġ-> Ġreturn ĠRight Pipeline ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ } Ċ