|
3 / 3 / 1
Регистрация: 04.04.2018
Сообщений: 351
|
|
Распарсить строку на токены04.03.2020, 08:55. Показов 1532. Ответов 8
Метки нет (Все метки)
Есть к примеру текст:
int main(){ int* a = 10; double dbl = 20.4; } И есть ключевые слова из этого текста int ( ) double = ; { } и тд.. Нужно чтобы парсер вывел мне что-то такое int IDENTIFIER(main) ( ) { } int * IDENTIFIER(a) = CONST(10) ; double IDENTIFIER(dbl) = CONST(20.4) ; } Не получается уже какой день, могу сделать только для отдельных случаев, начинаю тестить чуть не так поменяю исходный текст и мой парсинг криво работает.
0
|
|
| 04.03.2020, 08:55 | |
|
Ответы с готовыми решениями:
8
Распарсить строку
Boost, JSON, объект. Распарсить строку |
|
"C with Classes"
|
||
| 04.03.2020, 09:00 | ||
![]() можешь глянуть Можешь почитать "книгу дракона", парсинг текста не такая уж и тривиальная задача.
0
|
||
|
3 / 3 / 1
Регистрация: 04.04.2018
Сообщений: 351
|
|
| 04.03.2020, 09:13 [ТС] | |
|
С калькулятором то опыт уже был, пытаюсь компилятор под С написать начал с парсинга на токены и пока совес туго идет
![]() ссылка на калькулятор
0
|
|
|
3 / 3 / 1
Регистрация: 04.04.2018
Сообщений: 351
|
|
| 04.03.2020, 09:15 [ТС] | |
|
На данный момент мой код разбирает просто по ключевым словам и ищет ИДЕТИФИКАТОРЫ a.k.a имена, если нет такого ключевого слово то просто пропускаем
И просто выводит на экран Но вот замени я как-нибудь не так исходную строку то всё не так парсится
0
|
|
|
"C with Classes"
|
|
| 04.03.2020, 09:17 | |
|
0
|
|
|
3 / 3 / 1
Регистрация: 04.04.2018
Сообщений: 351
|
|
| 04.03.2020, 09:19 [ТС] | |
|
А вот что будет если изменить исходный текст, я просто не понимаю как все учесть, или это невозможно и токены нужно искать по очереди и связывать их с какими-то правилами и тд
0
|
|
|
3 / 3 / 1
Регистрация: 04.04.2018
Сообщений: 351
|
|
| 04.03.2020, 09:21 [ТС] | |
|
_stanislav, Да я понимаю, только мне ведь каждый раз нужно будет брать следующий токен и взависимости от него определять по какой ветке AST идти, но как мне правильно взять следующий токен?
К примеру, я нашел int, дальше должен идти идетификатор по правилу, я беру следующий токен... как мне определить к примеру что я взял идентификатор
0
|
|
|
"C with Classes"
|
|
| 04.03.2020, 09:22 | |
|
dimmarvel, "книгу дракона" читай, я сам ее почитываю, и что то меняю в коде.
0
|
|
|
3 / 3 / 1
Регистрация: 04.04.2018
Сообщений: 351
|
|
| 04.03.2020, 09:22 [ТС] | |
|
_stanislav, Да, я понимаю, только мне ведь каждый раз нужно будет брать следующий токен и взависимости от него определять по какой ветке AST идти, но как мне правильно взять следующий токен?
К примеру, я нашел int, дальше должен идти идетификатор по правилу, я беру следующий токен... как мне определить к примеру что я взял идентификатор Добавлено через 30 секунд Хорошо, гляну
0
|
|
| 04.03.2020, 09:22 | |
|
Помогаю со студенческими работами здесь
9
Распарсить строку, найти числа. произвести арифметические операции Как распарсить строку и положить данные в элементы структуры Как распарсить строку на токены используя регулярные выражения Разбить строку на токены Распарсить строку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|