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

что за точки - C++

Восстановить пароль Регистрация
 
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
17.04.2011, 16:58     что за точки #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
#include <string>
#include <sstream>
#include <iostream>
#include <fstream>
#include <vector>
 
COMPILER expr 
 
enum ExprType {t_id, t_num};
 
enum Operator { t_div, t_times, t_plus, t_minus};
 
std::vector<std::wstring> identlist;
 
int toInt(const std::wstring& strbuf)
{
    std::wstringstream converter;
    int value = 0;
 
    //converter.precision(4);
    //converter.fill('0');
    //converter.setf( std::ios::fixed, std::ios::floatfield );                              
 
    converter << strbuf;
    converter >> value;
    return value;
}
 
std::wstring toString ( int Number )
{
     std::wostringstream ss;
     ss << Number;
     return ss.str();
}
 
 
IGNORECASE
CHARACTERS
letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".
digit = "0123456789".
cr  = '\r'.
lf  = '\n'.
tab = '\t'.
 
TOKENS
ident  = letter {letter | digit | "_"}.
number = digit {digit}.
 
 
COMMENTS FROM "/*" TO "*/" NESTED
COMMENTS FROM "//" TO cr lf
 
IGNORE cr + lf + tab
 
PRODUCTIONS
 
expr (.std::wstring str;.) = (.std::wstring s,s1,s2,s3,s4; ExprType t1,t2;.) 
     ident (.s1=t.val; identlist.insert(s1);.)":=" NumExpr<s2,t1> ";" 
{
    ident (.s3=t.val; identlist.insert(s3);.)":=" NumExpr<s4,t2> ";" (.s=s3; s+=L":="; s+=s4; s+=L";\n";.)
}
     (.
          str=L"var ";
          for(int i=0; i<identlist.size(); i++)
          {
               str+=identlist[i];
               if(i!=ident.size()-1)
                    str+=L", ";
               else
                    str+=L":";
          }
          str+=L"integer;\n";
          str+=s1; str+=L":="; str+=s2; str+=L";\n";
          str+=s;
               
          std::wofstream outfile (L"out.txt", std::ios_base::out);
          outfile << str << std::endl;          
          outfile.close();
     .)           .
  
NumExpr<std::wstring &str, ExprType &t> = (.std::wstring s1,s2; operator op; ExprType t1,t2;.)
    Term<s1,t1> 
{ 
     ("+" (.op=t_plus;.)|"-" (.op=t_minus;.)) NumExpr<s2,t2>
     (.
          if(t1==t_num && t2==t_num)
          {
               t=t_num;
               int n;
               if(op==t_plus)
                    n=toInt(s1)+toInt(s2);
               else
                    n=toInt(s1)-toInt(s2);
                           
               str=toString(n);
          }
          else
          {
               t=t_id;
               str=s1;
               if(op==t_plus)
                    str+=L"+";
               else
                    str+=L"-";
               str+=s2;
          }
     .)
}.
 
Term<std::wstring &str, ExprTipe &t> =(.str::wstring s1,s2; ExprType t1,t2; Operator op;.) 
    Multiplier<s1,t1> 
{ 
     ("*" (.op=t_times;.)|"/"(.op=t_div;.)) Term<s2,t2> 
     (.
          if(t1==t_num && t2==t_num && op==t_times)
          {
               t=t_num;
               int n;
               n= toInt(s1)*toInt(s2);
               str=toString(n);               
          }
          else
          {
               t=t_id;
               str=s1;
               if(op==t_div)
                    str+=L"/";
               else
                   str+=L"*";
               str+=s2;
          }
     .)
}.
 
Multiplier<std::wstring &str, ExprType &t> = (.std::wstring s; ExprType t1;.)
     ident (.str=t.val; t=t_id; identlist.insert(t.val);.) 
          | number (.str=t.val; t=t_num;.)
               | "(" NumExpr<s,t1> ")" (.str=s; t=t1;.).
  
END expr.
обясните смысл точек во многих местах.

код объяснять не надо, его я так для примера выложил
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2011, 16:58     что за точки
Посмотрите здесь:

C++ Массив, заполненный 1 и 0. Найти путь, состоящий из нулей, от точки до точки.
Найти самый короткий путь от точки до точки в матрице C++
Как найти координаты точки на прямой удаленной от заданной точки на х C++
C++ Отсортировать и вывести точки по удаленности от некоторой заданной точки
Задача (вывести длину кратчайшего пути от точки до точки.) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.04.2011, 17:05     что за точки #2
" :: " - это обращение к какому-то пространству имен... Мол, типа, ты будешь использовать всякие функции и прочие "вещицы" из этого пространства... Очень удобная штука

после подключения библиотек можно дописать
C++
1
using namespace std;
- ты подключил это пространство...
тогда можно убрать все " std:: " и спокойно продолжать программировать!
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
17.04.2011, 17:07  [ТС]     что за точки #3
Цитата Сообщение от Mиxaил Посмотреть сообщение
::
Я не про эти точки, а про те кот. всречаются единожды

Файл в котором я нашел этот код, имел расширение atg
может чем то поможет
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.04.2011, 17:08     что за точки #4
Например, вот такие?
C++
1
 ("+" (.op=t_plus;.)|"-" (.op=t_minus;.)) NumExpr<s2,t2>
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
17.04.2011, 17:16  [ТС]     что за точки #5
Цитата Сообщение от VASSUV Посмотреть сообщение
(.op=t_times;.)
например вот такие (. ___ .)

Добавлено через 5 минут
и такие ).
или даже такие }.
Yandex
Объявления
17.04.2011, 17:16     что за точки
Ответ Создать тему
Опции темы

Текущее время: 08:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru