ref: 1b92befa76f09641c30fa751ce33af5ab47c4499
dir: /parse/ops.def/
/* operator name, is it pure */ O(Obad, 1) O(Oadd, 1) O(Osub, 1) O(Omul, 1) O(Odiv, 1) O(Omod, 1) O(Oneg, 1) O(Obor, 1) O(Oband, 1) O(Obxor, 1) O(Obsl, 1) O(Obsr, 1) O(Obnot, 1) O(Opreinc, 1) O(Opostinc, 1) O(Opredec, 1) O(Opostdec, 1) O(Oaddr, 1) O(Oderef, 1) O(Olor, 1) O(Oland, 1) O(Olnot, 1) O(Oeq, 1) O(One, 1) O(Ogt, 1) O(Oge, 1) O(Olt, 1) O(Ole, 1) O(Oasn, 1) O(Oaddeq, 1) O(Osubeq, 1) O(Omuleq, 1) O(Odiveq, 1) O(Omodeq, 1) O(Oboreq, 1) O(Obandeq, 1) O(Obxoreq, 1) O(Obsleq, 1) O(Obsreq, 1) O(Oidx, 1) O(Oslice, 1) O(Omemb, 1) O(Osize, 1) O(Ocall, 0) O(Ocast, 1) O(Oret, 1) O(Ojmp, 0) O(Obreak, 0) O(Ocontinue, 0) O(Ovar, 1) O(Olit, 1) O(Olbl, 1) O(Oucon, 1) O(Ouget, 1) O(Otup, 1) O(Ostruct, 1) O(Oarr, 1) /* all below this point are backend-only */ O(Ocjmp, 1) /* conditional jump */ O(Oset, 1) /* store to var */ O(Osllen, 1) /* size of slice */ O(Oslbase, 1) /* base of sice */ O(Oblit, 1) /* block copy of memory */ O(Otrunc, 1) /* truncating cast */ O(Ozwiden, 1) /* zero-extending widening cast */ O(Oswiden, 1) /* sign-extending widening cast */ O(Oflt2int, 1) /* float to int conversion */ O(Oint2flt, 1) /* int to float conversion */ O(Ofadd, 1) O(Ofsub, 1) O(Ofmul, 1) O(Ofdiv, 1) O(Ofneg, 1) /* floating point comparisons */ O(Ofeq, 1) O(Ofne, 1) O(Ofgt, 1) O(Ofge, 1) O(Oflt, 1) O(Ofle, 1) /* unsigned comparisons */ O(Oueq, 1) O(Oune, 1) O(Ougt, 1) O(Ouge, 1) O(Oult, 1) O(Oule, 1)