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

Discussion in 'WASM.LANGS' started by _evil, Feb 26, 2025.

Tags:
  1. _evil

    _evil Member

    Blog Posts:
    0
    Joined:
    Sep 28, 2003
    Messages:
    75
    некоторые языки позволяют вставить запятую в конце перечислений
    Code (Text):
    1. {1,2,3}
    2. {1,2,3,}
    как записать правило парсера для отдельных случаев знаю. А как чтобы 2 варианта работало?
    Заранее спасибо!
     
  2. Research

    Research Active Member

    Blog Posts:
    1
    Joined:
    Jan 6, 2024
    Messages:
    191
    Напиши функцию убирающую запятую в конце перечислений.
    Code (Text):
    1. '{1, 2, 3,}' -> '{1, 2, 3}'
    Перед тем как отправить данные в парсер, обработай данные.
     
    Last edited: Feb 26, 2025
  3. _evil

    _evil Member

    Blog Posts:
    0
    Joined:
    Sep 28, 2003
    Messages:
    75
    а это единственный способ ??? !!!
    както неудобно...
    а откудо такое свежее решение ?
     
  4. Research

    Research Active Member

    Blog Posts:
    1
    Joined:
    Jan 6, 2024
    Messages:
    191
    Нет. Можно создать пустое перечисление, самому перечислять данные в исходном
    перечислении, и добавлять их в пустое, без добавления запятой в конце перечисления.

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

    _evil Member

    Blog Posts:
    0
    Joined:
    Sep 28, 2003
    Messages:
    75
    а можно ли это сделать чисто парсерам?