Подробности

[В начало]

Проблема в стандарте № S0679

Краткое описание

Ошибка в грамматике Shell Language: else_part

Подробное описание

В оригинальной грамматике:

else_part        : Elif compound_list Then else_part
                 | Else compound_list
                 ;

Откуда видно, что после Then должно сразу идти Else или Elif. Что неверно.

Раздел стандарта

The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition (SUS 3.0), Shell & Utilities, Shell Command Language, 2.10.2 Shell Grammar Rules.

Способы устранения

Предлагается следующий вариант грамматики:

else_part        : Elif compound_list Then compound_list
                 | Elif compound_list Then compound_list else_part
                 | Else compound_list
                 ;

Принято

POSIX aardvark

[В начало]