Перейти к содержимому
Топаз6.0 · До релиза
Загрузка →

Поиск в документации

Спецификация 6.0

Выберите результат стрелками и нажмите Enter, чтобы открыть его.

Введите имя API, номер диагностики, правило или тему проекта.

    Диагностика TPZ2001

    The parser found a token that cannot appear in this grammar position.

    Diagnostic and cause

    Ссылка

    Unexpected token

    Семейство
    topaz
    Этап
    parse
    Код
    TPZ2001

    Причина и условия

    A let declaration has a binding pattern before =. Omitting it is a parse error.

    Действия

    Insert the intended binding name between let and =. Fix this first parse error before interpreting any recovery messages.

    Compiler phase: parse.

    Compiler explanation: The parser found a token that cannot appear in this grammar position.

    Message templates. The marker ⟨value⟩ stands for text computed for the reported program.

    • expected an expression Source
    • expected a statement separator Source
    • expected a statement Source
    • a record spread ... must be the FIRST element and appear at most once Source
    • expected , or } Source
    • expected : after timeout Source
    • expected a duration literal, e.g. 3s Source
    • expected a concurrent arm Source
    • concurrent requires at least one arm Source
    • expected case Source
    • match requires at least one case Source
    • expected a range endpoint after .., e.g. 1..5 Source
    • a record type requires at least one field Source
    • a literal type cannot contain interpolation Source
    • a record pattern requires at least one field Source

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ2001]: expected an expression

    A let declaration needs a binding pattern before its initializer. In the reproduction, = appears where that pattern must begin, so parsing stops at the equals sign.

    Правилоdiagnostics.tpz2001.rule

    Trigger and repair

    A let declaration has a binding pattern before =. Omitting it is a parse error.

    Response

    Ссылка

    Insert the intended binding name between let and =. Fix this first parse error before interpreting any recovery messages.

    Reproduction and verification

    Ссылка

    Rejected program

    Ссылка
    example.tpzRejected programОткрыть песочницу →
    1. let = 1
    Ожидаемый выводНенулевой код завершения
    Нет стандартного вывода.
    $ topaz check example.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Этап отклонения parse. Ненулевой код завершения.

    The expected diagnostic, cause, source location, and accompanying diagnostics are specified below. The verification status records whether this program has been run.

    Corrected program

    Ссылка
    example.tpzCorrected program
    1. let value = 1
    Ожидаемый выводКод завершения 0
    $ topaz check example.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Проверка принимает программу. Код завершения 0.

    This program applies the repair described above. The verification status records whether it has been run.

    Меню

    Загрузка →