| 1096 | #pragma clang diagnostic push |
| 1097 | #pragma clang diagnostic ignored "-Wexit-time-destructors" |
| 1098 | static const GameOperator* GetDefaultBinary(int* outSize = nullptr) |
| 1099 | { |
| 1100 | static const GameOperator DefaultBinary[] = { |
| 1101 | GameOperator(GameScalar, "^", mocnina, Na, GameScalar, GameScalar), |
| 1102 | GameOperator(GameScalar, "*", soucin, Soucin, GameScalar, GameScalar), |
| 1103 | GameOperator(GameScalar, "/", soucin, Podil, GameScalar, GameScalar), |
| 1104 | GameOperator(GameScalar, "%", soucin, Zbytek, GameScalar, GameScalar), |
| 1105 | GameOperator(GameScalar, "mod", soucin, Zbytek, GameScalar, GameScalar), |
| 1106 | GameOperator(GameScalar, "atan2", soucin, Atan2, GameScalar, GameScalar), |
| 1107 | GameOperator(GameScalar, "+", soucet, Soucet, GameScalar, GameScalar), |
| 1108 | GameOperator(GameScalar, "-", soucet, Rozdil, GameScalar, GameScalar), |
| 1109 | GameOperator(GameBool, ">=", comparison, CmpGE, GameScalar, GameScalar), |
| 1110 | GameOperator(GameBool, "<=", comparison, CmpLE, GameScalar, GameScalar), |
| 1111 | GameOperator(GameBool, ">", comparison, CmpG, GameScalar, GameScalar), |
| 1112 | GameOperator(GameBool, "<", comparison, CmpL, GameScalar, GameScalar), |
| 1113 | GameOperator(GameBool, "==", comparison, CmpE, GameScalar, GameScalar), |
| 1114 | GameOperator(GameBool, "!=", comparison, CmpNE, GameScalar, GameScalar), |
| 1115 | |
| 1116 | GameOperator(GameBool, "==", comparison, StrCmpE, GameString, GameString), |
| 1117 | GameOperator(GameBool, "!=", comparison, StrCmpNE, GameString, GameString), |
| 1118 | |
| 1119 | GameOperator(GameString, "+", soucet, StrAdd, GameString, GameString), |
| 1120 | GameOperator(GameArray, "+", soucet, ListAdd, GameArray, GameArray), |
| 1121 | GameOperator(GameArray, "-", soucet, ListSub, GameArray, GameArray), |
| 1122 | |
| 1123 | GameOperator(GameBool, "&&", logicAnd, BoolAnd, GameBool, GameBool), |
| 1124 | GameOperator(GameBool, "and", logicAnd, BoolAnd, GameBool, GameBool), |
| 1125 | GameOperator(GameBool, "||", logicOr, BoolOr, GameBool, GameBool), |
| 1126 | GameOperator(GameBool, "or", logicOr, BoolOr, GameBool, GameBool), |
| 1127 | |
| 1128 | GameOperator(GameVoid, "select", function, ListSelect, GameArray, GameScalar), |
| 1129 | GameOperator(GameVoid, "select", function, ListSelect, GameArray, GameBool), |
| 1130 | GameOperator(GameNothing, "set", function, ListSet, GameArray, GameArray), |
| 1131 | GameOperator(GameNothing, "resize", function, ListResize, GameArray, GameScalar), |
| 1132 | GameOperator(GameScalar, "count", function, ListCountCond, GameString, GameArray), |
| 1133 | GameOperator(GameNothing, "forEach", function, ListForEach, GameString, GameArray), |
| 1134 | GameOperator(GameBool, "in", function, ListIsIn, GameVoid, GameArray), |
| 1135 | GameOperator(GameScalar, "find", function, ListFind, GameArray, GameVoid), |
| 1136 | |
| 1137 | GameOperator(GameAny, "then", function, StringThen, GameIf, GameString), |
| 1138 | GameOperator(GameAny, "then", function, ArrayThen, GameIf, GameArray), |
| 1139 | GameOperator(GameAny, "exitWith", function, StringExitWith, GameIf, GameString), |
| 1140 | GameOperator(GameArray, "else", functionFirst, StringElse, GameString, GameString), |
| 1141 | GameOperator(GameNothing, "do", function, StringRepeat, GameWhile, GameString), |
| 1142 | |
| 1143 | // for "var" from N to M [step S] do { body } |
| 1144 | GameOperator(GameForFrom, "from", function, ForFromOp, GameFor, GameScalar), |
| 1145 | GameOperator(GameForTo, "to", function, ForToOp, GameForFrom, GameScalar), |
| 1146 | GameOperator(GameForTo, "step", function, ForStepOp, GameForTo, GameScalar), |
| 1147 | GameOperator(GameAny, "do", function, ForDoOp, GameForTo, GameString), |
| 1148 | |
| 1149 | GameOperator(GameAny, "call", function, StringCall, GameVoid, GameString), |
| 1150 | }; |
| 1151 | if (outSize) |
| 1152 | { |
| 1153 | *outSize = lenof(DefaultBinary); |
| 1154 | } |
| 1155 | return DefaultBinary; |