Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2010, 15:20   #1
AlexandraKr
Новичок
Джуниор
 
Регистрация: 18.10.2010
Сообщений: 1
По умолчанию Логические операции

На данном этапе программа должна не реагировать ошибкой на ввод последовательности букв и чисел 0 или 1. Не пойму, почему она нормально воспринимает любую последовательность цифр.
Еще голову ломаю уже который час. Не удается реализовать в программе такое правило : двойное отрицание какого-то выражения равно этому выражению.
Lex-файл:

Код:
 %{
#include <stdio.h>
#include "y.tab.h"
 
extern YYSTYPE yyval;
%}
 
%%
[a-zA-Z]+   {ECHO;return LET;}
[01]        {ECHO;return NUM;}
"+"         {ECHO;return PLUS;}
"*"         {ECHO;return MULT;}
"!"         {ECHO;return NOT;}
[ \t\r]     //ignore these symbols
\(          {ECHO;return LBR;}
\)          {ECHO;return RBR;}
\n          printf("\n");
Yacc-файл:
Код:
%{
#include <stdio.h>
%}
 
%start logic 
 
%token LET NUM PLUS MULT NOT LBR RBR 
 
%left PLUS  
%left MULT
%right NOT
 
%%
logic:
     |logic stat
;
stat:expr
     {
     printf("%d\n",$1);
     }
    |LET
     {
     $$=$1;
     }
    |NUM
     {
     $$=$1;
     }
;
expr:NOT NOT LBR expr RBR
     {
     $$=$4;
     }
 
%%
main()
{
yyparse();
}
 
yyerror(s)
char *s;
{
fprintf(stderr,"%s\n",s);
}
 
yywrap()
{
return(1);
}
AlexandraKr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Логические операции в операторе if – else(C++) LaNgOr Помощь студентам 1 01.10.2010 23:42
Логические Выражения Kennedi Помощь студентам 2 11.08.2010 11:03
Логические операции тотошкин Помощь студентам 1 23.01.2010 21:52
Логические загадки crazy horse Свободное общение 406 03.11.2009 16:09
TurboPascal: логические операции над целыми числами плюс перевод.... ulala Помощь студентам 4 21.10.2009 12:00