LINUX.ORG.RU

История изменений

Исправление lesopilorama, (текущая версия) :

Пейсал свой парсер json: 2 вечера примерно заняло, конфиги мои парсит и норм. Написано при этом не совсем через джоппу: архитектура у меня такая: сначала сырой текст превращаю в поток событий: список начался, обьект начался, число, строка, двоеточие, список кончился и т.п. А следом этот поток жрётся «понималкой семантики». Например если парсер в состоянии «жду ключ», то приход события отличного от «строка» - это фейл. Разбивка на два этих этапа позволила всё капец как упростить. И никакого yacc/bison и прочего треша-угара. В пару небольших хидеров влезло. Но и рефлексии нет: нах не усралось по-моему: свистоперделка 85 левела, внатуре. Прям обширных тестов у меня нет, го думаю 95% всех нормальных json из реального мира я пожру: ответы от Telegram серваков оно парсит, даже escaping в строках реализовано.

Не помню делал ли я сериализатор, но это проще.

Ну нет, всё же не за два вечера я это написал - какие-то ответы от телеграм сервера меня убивали, что-то фиксил.

реализовано как два независимых слоя- генератор событий принимает функциональный тип как аргумент шаблона и дёргает его с разными логическими событиями. функциональный тип обязан быть понималкой семантики и отличать голову от жопы на высоком уровне. весь файл сразу жрать в память даже не обязательно: парсер жрет побайтово и иногда возбуждается на событие и дёргает функциональный тип

Исправление lesopilorama, :

Пейсал свой парсер json: 2 вечера примерно заняло, конфиги мои парсит и норм. Написано при этом не совсем через джоппу: архитектура у меня такая: сначала сырой текст превращаю в поток событий: список начался, обьект начался, число, строка, двоеточие, список кончился и т.п. А следом этот поток жрётся «понималкой семантики». Например если парсер в состоянии «жду ключ», то приход события отличного от «строка» - это фейл. Разбивка на два этих этапа позволила всё капец как упростить. И никакого yacc/bison и прочего треша-угара. В пару небольших хидеров влезло. Но и рефлексии нет: нах не усралось по-моему: свистоперделка 85 левела, внатуре. Прям обширных тестов у меня нет, го думаю 95% всех нормальных json из реального мира я пожру: ответы от Telegram серваков оно парсит, даже escaping в строках реализовано.

Не помню делал ли я сериализатор, но это проще.

Ну нет, всё же не за два вечера я это написал - какие-то ответы от телеграм сервера меня убивали, что-то фиксил.

Исправление lesopilorama, :

Пейсал свой парсер json: 2 вечера примерно заняло, конфиги мои парсит и норм. Написано при этом не совсем через джоппу: архитектура у меня такая: сначала сырой текст превращаю в поток событий: список начался, обьект начался, число, строка, двоеточие, список кончился и т.п. А следом этот поток жрётся «понималкой семантики». Например если парсер в состоянии «жду ключ», то приход события отличного от «строка» - это фейл. Разбивка на два этих этапа позволила всё капец как упростить. И никакого yacc/bison и прочего треша-угара. В пару небольших хидеров влезло. Но и рефлексии нет: нах не усралось по-моему: свистоперделка 85 левела, внатуре. Прям обширных тестов у меня нет, го думаю 95% всех нормальных json из реального мира я пожру: ответы от Telegram серваков оно парсит, даже escaping в строках реализовано.

Не помню делал ли я сериализатор, но это проще.

Исправление lesopilorama, :

Пейсал свой парсер json: 2 вечера примерно заняло, конфиги мои парсит и норм. Написано при этом не совсем через джоппу: архитектура у меня такая: сначала сырой текст превращаю в поток событий: список начался, обьект начался, число, строка, двоеточие, список кончился и т.п. А следом этот поток жрётся «понималкой семантики». Например если парсер в состоянии «жду ключ», то приход события отличного от «строка» - это фейл. Разбивка на два этих этапа позволила всё капец как упростить. И никакого yacc/bison и прочего треша-угара. В пару небольших хидеров влезло. Но и рефлексии нет: нах не усралось по-моему: свистоперделка 85 левела, внатуре.

Исходная версия lesopilorama, :

Пейсал свой парсер json: 2 вечера примерно заняло, конфиги мои парсит и норм. Написано при этом не совсем через джоппу: архитектура у меня такая: сначала сырой текст превращаю в поток событий: список начался, обьект начался, число, строка, двоеточие, список кончился и т.п. А следом этот поток жрётся «понималкой семантики». Например если парсер в состоянии «жду ключ», то приход события отличного от «строка» - это фейл. Разбивка на два этих этапа позволила всё капец как упростить. И никакого yacc/bison и прочего треша-угара.