OpenSCAD User Manual's section on operators does not mention precedence. Quick Web searches found nothing. I assume the usual order of exponentiation, then multiplication, then addition does hold, but how does e.g. a conditional operator or unary minus interact with these? Is there an official document describing the precedence of operators in OpenSCAD?
Asked
Active
Viewed 253 times
1 Answers
6
Within OpenSCAD expressions, the order of precedence is:
| Operators | Description |
|---|---|
| () [] | group, vector, or range |
| () [] . | function call, indexing, member lookup |
| ^ | exponentiation |
| ! + - | unary operations |
| * / % | multiplication |
| + - | addition |
| < <= >= > | ordering |
| == != | equality |
| && | logical AND |
| || | logical OR |
| ?: function() let() assert() echo() | ternary operator and unary pseudo-operators |
There are no bit-wise operators, and neither comma nor "=" are operators.
Source: openscad/src/parser.y