|
|
|
Конечный автомат
|
|||
|---|---|---|---|
|
#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&gotonew=1&tid=2032424]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
139ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 440ms |

| 0 / 0 |
