Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LR таблица для мат. выражений, не совсем корректно работает LR анализ 
:(
    Опции темы
Nike3000
Дата 27.5.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.4.2009

Репутация: нет
Всего: нет



Здравствуйте, делаю LR анализатор для мат выражений типа 1+1,1-(a*1),(1-(a-1))

использую следующую грамматику:
0: E’->E
1: E ->E + T
2: E-> T
3: T ->T * F
4: T-> F
5: F ->( E )
6: F-> id
и LR таблицу:
Код

string[,] ActionTable = 
                               // +         *       (       )       id   end     E      T       F
                            {   {""     ,""     ,"S4"   ,""     ,"S5"   ,""    ,"1"    ,"2"    ,"3"}, // 0
                                {"S6"   ,""     ,""     ,""     ,""     ,"AC"  ,""     ,""     ,"" }, // 1
                                {"R2"   ,"S7"   ,""     ,"R2"   ,""     ,"R2"  ,""     ,""     ,""},  // 2                               
                                {"R4"   ,"R4"   ,""     ,"R4"   ,""     ,"R4"  ,""     ,""     ,""},  // 3                                
                                {""     ,""     ,"S4"   ,""     ,"S5"   ,""    ,"8"    ,"2"    ,"3"}, // 4                                
                                {"R6"   ,"R6"   ,""     ,"R6"   ,""     ,"R6"  ,""     ,""     ,""},  // 5                               
                                {""     ,""     ,"S4"   ,""     ,"S5"   ,""    ,""     ,"9"    ,"3"}, // 6                                
                                {""     ,""     ,"S4"   ,""     ,"S5"   ,""    ,""     ,""     ,"10"},// 7                                
                                {"S6"   ,""     ,""     ,"S11"  ,""     ,""    ,""     ,""     ,""},  // 8                                
                                {"R1"   ,"S7"   ,""     ,"R1"   ,"R1"   ,""    ,""     ,""     ,""},  // 9                                
                                {"R3"   ,"R3"   ,""     ,"R3"   ,"R3"   ,""    ,""     ,""     ,""},  //10                                                               
                                {"R5"   ,"R5"   ,""     ,"R5"   ,"R5"   ,""    ,""     ,""     ,""}   //11
                            };

проблема в том что выражения со скобками типа (1+1) разбирает правильно, а 1+1 пишет ошибку.
Не знаете как можно отредактировать грамматику чтобы работало корректно?
PM MAIL   Вверх
cemick
Дата 27.5.2011, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 6



Не много оффтопик, да и давно это было, уже не помню ничего, но почему такая хитрая граматика
разве так не проще
E -> E * E
E -> E + E
E -> (E)
E->  id

Правда еще раз повторюсь, не помню ограничений LR анализаторов
PM MAIL WWW   Вверх
Nike3000
Дата 27.5.2011, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.4.2009

Репутация: нет
Всего: нет



Я эту таблицу и грамматику взял отсюда: 

http://docs.google.com/viewer?a=v&q=ca...ecrQpGM4xV9cueA

PM MAIL   Вверх
VSB
Дата 1.6.2011, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.8.2007

Репутация: 1
Всего: 2



Вот, надеюсь вам поможет
Тут лексический и синтаксический анализатор + документация + лекции

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  Compiler.zip 660,48 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.