package Ġat . hs chro ed l . fluent ast . ast . expression Ċ Ċ import Ġat . hs chro ed l . fluent ast . exception . Fluent ArgumentException Ċ import Ġorg . eclipse . jdt . core . dom . AST Ċ import Ġorg . eclipse . jdt . core . dom . Assignment Ċ Ċ class ĠFluent Assignment Ġinternal Ġconstructor ( private Ġval Ġleft : ĠFluent Expression , Ġprivate Ġval Ġoperator : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġright : ĠFluent Expression ) Ġ: ĠFluent Expression () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbuild ( ast : ĠAST ): ĠAssignment Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexp Ġ= Ġast . new Assignment () ĊĠĠĠĠĠĠĠ Ġexp . left Hand Side Ġ= Ġleft . build ( ast ) ĊĠĠĠĠĠĠĠ Ġexp . operator Ġ= Ġassignment Operator ( operator ) ĊĠĠĠĠĠĠĠ Ġexp . right Hand Side Ġ= Ġright . build ( ast ) ĊĠĠĠĠĠĠĠ Ġreturn Ġexp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassignment Operator ( operator : ĠString ): ĠAssignment . Operator Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( operator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"=" Ġ-> ĠAssignment . Operator . ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"+ =" Ġ-> ĠAssignment . Operator . PLUS _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- =" Ġ-> ĠAssignment . Operator . MINUS _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"* =" Ġ-> ĠAssignment . Operator . TIMES _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ =" Ġ-> ĠAssignment . Operator . DI VID E _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"& =" Ġ-> ĠAssignment . Operator . BIT _ AND _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"| =" Ġ-> ĠAssignment . Operator . BIT _ OR _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"^ =" Ġ-> ĠAssignment . Operator . BIT _ XOR _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"% =" Ġ-> ĠAssignment . Operator . RE MA IND ER _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"<< =" Ġ-> ĠAssignment . Operator . LEFT _ SHIFT _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" >> =" Ġ-> ĠAssignment . Operator . RIGHT _ SHIFT _ SIGNED _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" >>> =" Ġ-> ĠAssignment . Operator . RIGHT _ SHIFT _ UNSIGNED _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠFluent ArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Invalid Ġassignment Ġoperator Ġ'$ operator .' ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ