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

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

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

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

17.09.2013, 22:35. Просмотров 442. Ответов 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++
Есть исходный файл (код C++) программы. Нужно создать дамп с анализом его содержимого. Например: #include &lt;iostream&gt; void func(int...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
17.09.2013, 22:38 #2
функцию bool ST(ifstream &fin) раскомментировать не пробовали?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2013, 22:38
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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