|
|
|
Конечный автомат
|
|||
|---|---|---|---|
|
#18+
Нужно тут простенький парсер сделать. Вот не знаю как реализовать на С++, на простом С - запросто. Мнеб примерчик посмотреть. Есть у кого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 16:59 |
|
||
|
Конечный автомат
|
|||
|---|---|---|---|
|
#18+
Какой полезный эффект или выгоду вы хотите получить от использования C++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 19:41 |
|
||
|
Конечный автомат
|
|||
|---|---|---|---|
|
#18+
Посмотрите топик "Как вычислить AnsiString="12+13,44*5-5/100" ???" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2005, 17:48 |
|
||
|
Конечный автомат
|
|||
|---|---|---|---|
|
#18+
>> Посмотрите топик "Как вычислить AnsiString="12+13,44*5-5/100" ???" На plain C я эту задачу решал еще лет 8 назад. Обычно конечный автомат реализуется с помощью таблицы переходов и указателей на функции плюс пара глобальных переменных. А вот как это лучше сделать на C++.. я не знаю. Понятное дело что таблица переходов должна быть. т.е. пусть у нас будет класс CParser содержащий таблицу переходов и абстрактный класс CLex - лексема. Возможно также придется вставить в CParser стэк лексем.... Я вот думаю... при изменении состояния автомата должна вызываться функция следующее состояние = f (предыдущее состояние, лексема), которая и генерит разобранный код. Вот эту мысль и я как думаю. Куда эту самую фукцию повесить? на лексему либо на парсер?... Так чтоб внесение изменений в будущем было относительно легким, потому, как таблица переходов будет сисльно разраздаться как за счет допустимых состояний, так и за счет лексем. типа - не хочется слишком длинные запутанные case иметь. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 11:54 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33389539&tid=2032424]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
134ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 393ms |

| 0 / 0 |
