Можно ли как-то создать однозначное условие для "if else" без Warning-ов и разширений синтаксиса.
Здравствуйте, VVVa, Вы писали:
VVV>Можно ли как-то создать однозначное условие для "if else" без Warning-ов и разширений синтаксиса.
А что мешает? (кроме постановки задачи)
Здравствуйте, kov_serg, Вы писали:
_>А что мешает? (кроме постановки задачи)
да в обще как я думаю — выходит что в обще теоретически невозможно
если рассматривать что может парсится
if(expr) if(expr)op else op else op
то по любому будет конфликт свертки и сдвига из-за else
видел в интернете задают через приоритеты условий
Здравствуйте, VVVa, Вы писали:
VVV>да в обще как я думаю — выходит что в обще теоретически невозможно
VVV>если рассматривать что может парсится
VVV>VVV>if(expr) if(expr)op else op else op
VVV>
VVV>то по любому будет конфликт свертки и сдвига из-за else
Где конфликт-то?
if (EXPR) OP [else OP]
OP=if (EXPR) OP [else OP] | ...
и результат аналогичный этому:
if(expr) { if(expr)op else op } else op
Здравствуйте, kov_serg, Вы писали:
_>Где конфликт-то?
_>_>if (EXPR) OP [else OP]
_>OP=if (EXPR) OP [else OP] | ...
_>
_>и результат аналогичный этому:
_>_>if(expr) { if(expr)op else op } else op
_>
предположим что определено так
OP : if'('expr')' OP else OP | ...
и если рассматривать вложенную конструкцию (без {} то будет конфликт)
OP : if'('expr')'
OP else OP | ...
подставляем вместо него OP — он стоит перед else и то что подставляем содержит else ...
блин ! конфликты и варнинги лезут из -за того что появляются неоднозначности
например в
if(expr) if(expr)op else op else op
1 else можно отнести к 1 или 2 if