0 / 0 / 0
Регистрация: 04.08.2014
Сообщений: 23
|
|
1 | |
Лексический анализатор - граф перехода КА31.03.2016, 19:03. Показов 3826. Ответов 4
Метки нет Все метки)
(
Здравствуйте Уважаемые Форумчане.
Описание: входной язык содержит логические выражения, разделенные символом ; (точка с запятой). Логические выражения состоят из идентификаторов, констант 0 и 1, знака присваивания (=), знаков операций or, xor, and, not и круглых скобок. Помогите пожалуйста описать алгоритм работы сканера или нарисовать граф перехода КА для распознавания цепочек. Заранее спасибо! ![]()
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
31.03.2016, 19:03 | |
Ответы с готовыми решениями:
4
Лексический анализатор Лексический анализатор
лексический анализатор на С++ |
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
|
|
31.03.2016, 19:10 | 2 |
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 |
0
|
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
|
|
31.03.2016, 19:54 | 5 |
![]() Решение
И здесь ты не соврал.
Можно воспользоваться 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
|
31.03.2016, 19:54 | |
Помогаю со студенческими работами здесь
5
Лексический анализатор Лексический, синтаксический анализатор c++ Лексический анализатор текста Лексический анализатор языка лисп Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |