Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Xsenon_rus
8 / 8 / 0
Регистрация: 18.04.2011
Сообщений: 104
#1

Анализатор - C++

17.09.2013, 22:35. Просмотров 440. Ответов 1
Метки нет (Все метки)

Просто подскажите в чем ошибка ? ( не компелируется)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
 
bool Start(ifstream &fin); //Скобки
bool SA(ifstream &fin); //Квадратные скобки
bool SK(ifstream &fin); //Круглые скобки
bool ST(ifstream &fin);
void SStep(); //Переход к следующему символу строки
 
int main()
{
    ifstream fin("infile.txt"); //Объявление файла
    if (!fin) 
    {
        cout << "Can not open." << endl;
        return 1;
    }
        
    if (Start(fin))
        {
            cout << "Result: " <<  endl;
        } 
    system("pause");
    return 0;
}
 
bool Start(ifstream &fin)
{
    char S;
    fin >> S;
    if (S =='A')
        {
            bool k = SK(fin);   
            if(k)
            {
                bool t = ST(fin);
                if (t)
                {
                    bool a = SA(fin);
                    return true;
                }
                else
                    cout<<"Error1";fin.unget();return false;
            }
            else
                cout<<"Error2";fin.unget();return false;
        }
    else
        cout<<"Error3";fin.unget();return false;
        return 0;
}
 
bool SK(ifstream &fin)
{
    char S ='X';
    fin >> S;
    if (S=='A')
        {
            fin >> S;
            if (S == '(')
            {
                bool k = ST(fin);
                if(k)
                {
                    fin >> S;
                if(S == ')')
                    return true;
                else 
                    cout<<"Error4";fin.unget();return false;
                }
                else
                    cout<<"Error5";fin.unget();return false;
            }
            else
            cout<<"Error6";fin.unget();return false;
        }
        else
        cout<<"Error7";fin.unget();return false;
}
 
/*bool ST(ifstream &fin)
{
    char S = 'X';
    if (S == ';')
        {
            fin >> S;
            bool k = SA(fin);
            
            if( k )
            {
                return true;
            }
            else
            {
                cout<<"Error8";fin.unget();return false;
            }
        }
    else 
    {
        cout<<"Error9";fin.unget();return false;
    }
 
}
*/
bool SA(ifstream &fin)
{
    bool k;
    char S = 'x';
    fin >> S;
    if (S == 'A')
    {
        k = SA(fin);
    }
    if (k)
    {
        if(S == ';')
        {
            k = SA(fin);
 
            if(k)
            return true;
        }
        else
            if (S == 'A')
            {
                k = SA(fin);
                if (k)
                    return true ;
            }
    }
    else
        if (S == '(')
        {
            fin.unget();    
            cout<<"Error10";fin.unget();return false;
        }
        else
            cout<<"Error11";fin.unget();return false;
    cout<<"Error12";fin.unget();return false;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2013, 22:35     Анализатор
Посмотрите здесь:

Синтаксический анализатор - C++
Нужна помощь именно с алгоритмом. Задание звучит так - проверить корректность написания заголовка функции. Прототипы не учитываются. ...

синтаксический анализатор - C++
Доброго времени суток. Подскажите как написать синтаксический анализатор кода(паскаль). Как это правильно делать? как это сделано в средах...

Анализатор команд - C++
помогите написать анализатор команд на с++

Анализатор кода - C++
Есть исходный файл (код C++) программы. Нужно создать дамп с анализом его содержимого. Например: #include &lt;iostream&gt; void func(int...

Синтаксический анализатор - C++
Нужно написать синтаксический анализатор для одного маленького фрагмента программы, т.е. проверка правильности грамматического построения...

Анализатор звука - C++
Собственно, как его организовать? Что-то порылся в гуглу, ничего не нашел. Может я неправильно выражаюсь, но я про &quot;эквалайзер&quot;, который...

Анализатор строки - C++
Программа должна обработать строку AA;AA(AA;AA) из файла и вывести что все нормально. Но у меня не получается. Действия выполняются...

Текстовой анализатор - C++
написать программу, определяющую корректность выражения, содержащего только арифметические операции и присваивание.

Синтаксический анализатор - C++
никак не могу разобраться с заданием, может быть кто-то сталкивался 1.Построить синтаксические диаграммы для следующих конструкций; ...

Строковый анализатор - C++
Подскажите почему код выдает всякий мусор, подает звуковые сигналы Должен работать так: Если введешь так: &quot;11/23/34&quot; или &quot;11.23.34&quot;...

Синтаксический анализатор. Формула - C++
Нужно построить синтаксический анализатор для понятия формула. Программа выдает ошибки. вот условие: и вот мой код: #include...

Разработать синтаксический анализатор - C++
Может кто помочь понять как должна выглядеть программа подобного вида? си++ знаю, но с этими анализаторами что то я не догнал( : ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
17.09.2013, 22:38     Анализатор #2
функцию bool ST(ifstream &fin) раскомментировать не пробовали?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru