![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
![]()
вобщем задали курсовую на тему программирование лексических анализаторов. и так как я более менее нормально знаю язык Си, то решил написать на нём и для него. но вот проблема, нужно знать какие типы лексем заносятся в таблицу. преподаватель сказал что таблицу лексем для Си он не встречал и посоветовал мне программировать на фортране (якобы там можно просмотреть лексемы). но так как я не изучал данный язык, то мне проблематично будет написать лексический анализатор для него.
поэтому просьба: может кто знает где можно найти таблицу лексем для языка Си. |
![]() |
![]() |
![]() |
#2 |
Software Developer
Участник клуба
Регистрация: 01.03.2011
Сообщений: 1,098
|
![]()
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв. Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062 |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
![]()
вот здесь есть пример таблицы лексем, но на сколько я знаю элементы не должны повторяться. а здесь повторяются. почему? и обязательно ли использовать такой формат таблицы? можно ли просто записать в файл лексему допустим так:
лексемы: int a c n++ и т.д. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
![]()
по моему замыслу сначала из текста программы выделяются лексемы (все) и записываются в промежуточный файл т.е. некоторые лексемы могут повторяться. а затем этот промежеточный файл нужно доработать, а именно удалить лишние, повторяющиеся строки. т.е. если имеются 3 одинаковые лексемы, то 2-е нужно удалить а одну оставить. и самое главное нужно удалить следующим образом:
int - оставить на своём месте f y int - удалить r int - удалить b в результате получится: int f y r b с первой частью я справился т.е. выделил лексемы. теперь нужно удалить лишнее, подскажите как это можно осуществить |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование в C | Моркковь!) | Помощь студентам | 2 | 03.03.2011 12:57 |
статья - Новые модификации анализаторов спектра | Pblog | Обсуждение статей | 0 | 23.06.2010 05:13 |
программирование | фамил | Свободное общение | 10 | 23.09.2009 14:28 |
ПРограммирование | Андрюха из ПХТТ | Фриланс | 3 | 04.02.2008 21:25 |