разделитель и правила парсера

Тема в разделе "WASM.LANGS", создана пользователем _evil, 26 фев 2025 в 10:53.

Метки:
  1. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    74
    некоторые языки позволяют вставить запятую в конце перечислений
    Код (Text):
    1. {1,2,3}
    2. {1,2,3,}
    как записать правило парсера для отдельных случаев знаю. А как чтобы 2 варианта работало?
    Заранее спасибо!
     
  2. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    190
    Напиши функцию убирающую запятую в конце перечислений.
    Код (Text):
    1. '{1, 2, 3,}' -> '{1, 2, 3}'
    Перед тем как отправить данные в парсер, обработай данные.
     
    Последнее редактирование: 26 фев 2025 в 11:12
  3. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    74
    а это единственный способ ??? !!!
    както неудобно...
    а откудо такое свежее решение ?
     
  4. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    190
    Нет. Можно создать пустое перечисление, самому перечислять данные в исходном
    перечислении, и добавлять их в пустое, без добавления запятой в конце перечисления.

    вместо:
    Код (Text):
    1. if data_arr[length - 1] == ','
    Или написать свой парсер, для всех вариантов входных данных.
    --- Сообщение объединено, 26 фев 2025 в 12:55 ---
    Можно вставить функцию убирающую запятую в конце
    перечислений в парсер, и собрать Bison из исходников.
     
    Последнее редактирование: 26 фев 2025 в 12:33