Unparenthesized ternary expressions cause syntax errors in various awk versions in various contexts, not just the context and awk version already mentioned. Heres another example on MacOS:
$ awk --version
awk version 20070501
$ awk 'BEGIN{print 1 == 2 ? 3 : 4}'
awk: syntax error at source line 1
context is
{print 1 >>> == <<<
awk: illegal statement at source line 1
awk: illegal statement at source line 1
$ awk 'BEGIN{print (1 == 2 ? 3 : 4)}'
4
$ awk 'BEGIN{print (1 == 2) ? 3 : 4}'
4
Of the 2 that work, I find print (1 == 2 ? 3 : 4) the more readable, especially when you get nested ternaries:
$ awk 'BEGIN{print (1 == 2 ? (6 == 7 ? 8 : 3) : 4)}'
4
$ awk 'BEGIN{print (1 == 2) ? (6 == 7) ? 8 : 3 : 4}'
4
so that's what I always use and the additionally add parens around just the conditions if/when useful, usually for readability.
Since parenthesized ternaries are always easier to read than unparenthesized, there's simply no good reason to ever write one without parentheses.
You should also never use an assignment in a conditional context unless you need the result of the assignment to be evaluated as a condition, which you don't.
What you're trying to do should be written as:
$ awk '{ORS=(NR%2 ? ";" : RS)} 1' file
A 25 27 50;B 35 37 75
C 75 78 80;D 99 88 76
awkcode that you say you're using. Tested with GNUawk,mawkand OpenBSDawk, all produce the correct output.awkcode was being executed. If yourawkcommand was stored in a file used withawk -f, then there would have been an issue with it if it was written exactly as you have shown (it's a shell command, not anawkcommand).