powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Парсинг математического выражения
8 сообщений из 33, страница 2 из 2
Парсинг математического выражения
    #38752605
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилkealon(Ruslan)лучше генератором воспользоваться аналогичным LEX
а просто конечный автомат - никак не реализовать?
так они большинство и делают ДКА, вручную хотите его составлять?
...
Рейтинг: 0 / 0
Парсинг математического выражения
    #38752620
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)вручную хотите его составлять?
да
...
Рейтинг: 0 / 0
Парсинг математического выражения
    #38752623
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот, кстати, хорошее описание, коротко и по делу
ему достаточно разбить на токены и собрать назад
LEX с этим прекрасно справляется, остаётся найти аналог для C#
...
Рейтинг: 0 / 0
Парсинг математического выражения
    #38752651
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)остаётся найти аналог для C#
токенизатор - экран текста и никаких зависимостей и чтения лицензий
...
Рейтинг: 0 / 0
Парсинг математического выражения
    #38752699
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилkealon(Ruslan)вручную хотите его составлять?
да
если только из любви к извращенствам искусству
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
  MakeLexer('sl.inc',
   [
    [#9,#32]
    ,['+','-','*','/']
    ,['(',')']
    ,One(One(['a'..'b'])+List(['a'..'b','0'..'9']),'ID')
 // to do:  Comment
 // to do:  Str define
   ]); 


Код: plaintext
1.
2.
3.
4.
5.
6.
Start state:0
  0:#0->5;#9->0;#32->0;('('..'+')->0;'-'->0;'/'->0;('a'..'b')->1;
  1:-> bubble{next:2,gap:1}  Start tag:ID
  2:#0->4;#9->3;#32->3;('('..'+')->3;'-'->3;'/'->3;('0'..'9')->2;('a'..'b')->2;
  3:-> bubble{next:0,gap:1}  Accept:ID
  4:-> bubble{next:5,gap:1}  Accept:ID
...
Рейтинг: 0 / 0
Парсинг математического выражения
    #38753363
Alex Marmuzevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставлю свои 5 копеек. Задача 1 в 1 похожа на шаблонный проект для FsLex (на F#). Собственно, почему бы не подключить к проекту F# либу, решающую задачу, чем геммороиться со своим парсером?
...
Рейтинг: 0 / 0
Парсинг математического выражения
    #38753530
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex MarmuzevichВставлю свои 5 копеек. Задача 1 в 1 похожа на шаблонный проект для FsLex (на F#). Собственно, почему бы не подключить к проекту F# либу, решающую задачу, чем геммороиться со своим парсером?
а никто и не говорит ему подключать свой парсер, говорят возьми аналог Flex-а
это так, пример - исскуства ради (вернее для более изощрённых целей)
...
Рейтинг: 0 / 0
Парсинг математического выражения
    #38783197
poprigun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в bat-нике реализовываю команду sleep, но при выполнении пишет "Неправильное число. Числовые константы должны быть десятичными (17), шестнадцатеричными (0x11),или восьмеричными (021)." не понимаю, в чем ошибка. Подскажите пожалуйста

@echo off
set sleep=%1

:main
set a=%1
set a| find "/?" > nul
if %ERRORLEVEL%==0 goto printhelp
for /F "tokens=1,2,3,4 delims=:," %%a in ("%time%") do set /a firstSeconds=(%%a*3600+%%b*60+%%c)*100+%%d
goto :papap

:papap
echo %sleep%| findstr /R "[^0123456789]" > nul
if %ERRORLEVEL% == 0 goto :error
for /F "tokens=1,2,3,4 delims=:," %%a in ("%time%") do set /a lastSeconds=(%%a*3600+%%b*60+%%c)*100+%%d
set /a result1=%firstSeconds%+%sleep%
set /a result2=%sleep%-8640000+%firstSeconds%
if %lastSeconds% EQU %result1% goto :end
if %lastSeconds% EQU 0 goto :end
if %lastSeconds% EQU %result2% goto :end
goto :papap

:end
echo all
exit /b

:printhelp
echo You reed /?
exit /b

:error
echo I can not calculate data
exit /b
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Парсинг математического выражения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]