0 / 0 / 0
Регистрация: 04.08.2014
Сообщений: 23
1

Лексический анализатор - граф перехода КА

31.03.2016, 19:03. Показов 3826. Ответов 4
Метки нет (Все метки)

Здравствуйте Уважаемые Форумчане.
Описание: входной язык содержит логические выражения, разделенные символом ; (точка с запятой). Логические выражения состоят из идентификаторов, констант 0 и 1, знака присваивания (=), знаков операций or, xor, and, not и круглых скобок.

Помогите пожалуйста описать алгоритм работы сканера или нарисовать граф перехода КА для распознавания цепочек.

Заранее спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2016, 19:03
Ответы с готовыми решениями:

Лексический анализатор
Доброго времени суток. Сразу скажу, что я не прошу написать какую-либо программу, а лишь хочу...

Лексический анализатор
Написал программу, я надеюсь, лексического анализатора для конкретного куска программы. В программе...

Лексический анализатор
Получил задание. Ранее с++ не изучал. Если найдутся добрые люди, которые могут помочь, отзовитесь,...

лексический анализатор на С++
Написать лексический анализатор на С++: разделители: , . ; бинарные операции: + - * / унарные...

4
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
31.03.2016, 19:10 2
Цитата Сообщение от CATJOHNY Посмотреть сообщение
Помогите пожалуйста описать алгоритм работы сканера или нарисовать граф перехода КА для распознавания цепочек.
Да не вопрос.
Надо прочитать и освоить: Компиляторы. Принципы, технологии и инструментарий
1
0 / 0 / 0
Регистрация: 04.08.2014
Сообщений: 23
31.03.2016, 19:36  [ТС] 3
Это конечно все здорово. Но полагаю, что вопрос с графами перехода можно решить и без этого. Собственно нужно нарисовать граф, хотя бы для нескольких знаков операций, чтобы уловить смысл.
0
Эксперт С++
8719 / 4299 / 958
Регистрация: 15.11.2014
Сообщений: 9,744
31.03.2016, 19:38 4
Цитата Сообщение от CATJOHNY Посмотреть сообщение
Но полагаю, что вопрос с графами перехода можно решить и без этого.
за определенную сумму денег.
0
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
31.03.2016, 19:54 5
Лучший ответ Сообщение было отмечено CATJOHNY как решение

Решение

Цитата Сообщение от CATJOHNY Посмотреть сообщение
Но полагаю, что вопрос с графами перехода можно решить и без этого.
И здесь ты не соврал.
Можно воспользоваться Coco/R со следующим atg файлом:
Код
//lex.atg

COMPILER LEX

CHARACTERS
  letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$".
  digit = "0123456789".
  boolDigit = "01".
  cr  = '\r'.
  lf  = '\n'.
  tab = '\t'.
  str = '\''.
  anyButApostrophe = ANY - '\''.
  
TOKENS
  ident  = letter {letter | digit}.
  number = boolDigit.
  braceOn = "(".
  braceOff = ")".
  equals = "=".
  or = "or".
  xor = "xor".
  and = "and".
  not = "not".
  endOfStatement = ";".
  
COMMENTS FROM "/*" TO "*/" NESTED
COMMENTS FROM "//" TO lf

IGNORE cr + lf + tab

PRODUCTIONS

/*=================== Program and declarations ============================*/

LEX	                     (..)
=						 
  { AnyLex } .
/*------------------------------------------------------------------------*/

AnyLex
	= (
		ident 				
		| number			
		| braceOn			
		| braceOff			
		| equals			
		| xor
		| and
		| not
		| endOfStatement
	  ) .
	
END LEX.
По сгенерированному коду и строй свой граф
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2016, 19:54
Помогаю со студенческими работами здесь

Лексический анализатор
Здравствуйте. написать программу, которая выполняет лексический анализ входного текста в...

Лексический, синтаксический анализатор c++
Помогите пожалуйста, мне очень сложно понять как это делать( Разработать лексический и...

Лексический анализатор текста
Разработать лексический анализатор, который реализует конечный автомат для поиска во входном потоке...

Лексический анализатор языка лисп
нужно написать лексический анализатор языка лисп


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru