Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Ошибка компиляции как положительный результат

Товарищи, подскажите, пожалуйста, есть ли возможность средствами плюсов следить за ошибками компиляции?

Необходимо в процессе компиляции встретить некоторое выражение, удостовериться, что на нём произошла ошибка компиляции, и продолжить компиляцию дальше. При этом в итоге компиляция должна пройти успешно, то есть эта ожидаемая ошибка должна быть подавлена. Получается нечто вроде исключений, но для компиляции.

Если средствами плюсов такое сделать не получится (что вероятнее всего), то как можно попроще это реализовать внешними инструментами?
Ответ: Если это во время компиляции, я представлял бы такое как условную компиляцию. Если один блок кода вызывает ошибку, то вместо него подставляется другой блок кода. Компиляция успешна, если хотя бы один из блоков не вызвал ошибку компиляции. Ну и во втором блоке можно сделать какую-то дополнительную работу, связанную с успешным выполнением негативного теста.
Вопрос: Какие варианты кода не вызовут ошибку компиляции?

Какие варианты кода не вызовут ошибку компиляции?

Вариант 1
class Parent {}
interface FirstChild {}
interface SecondChild extends FirstChild {}

Вариант 2
class Parent {}
interface FirstChild {}
interface SecondChild implements FirstChild {}

Вариант 3
class Parent {}
interface FirstChild {}
class SecondChild implements FirstChild {}

Вариант 4
class Parent {}
interface FirstChild extends Parent {}
class SecondChild implements FirstChild {}

Вариант 5
class Parent {}
class FirstChild extends Parent {}
class SecondChild implements FirstChild {}
что такое interface и implements. новичек ничего не смыслю
Ответ:
Сообщение от amd11
Какие варианты кода не вызовут ошибку компиляции?
Так попробуйте скомпилировать, и узнаете!
Вопрос: C++ Linux - netbeans ошибки компиляции

Добрый день. Такая проблема, может кто сталкивался. А то что у же только не делала, только хуже становится.

Стоит виртуальная машина с Debian, на ней NetBeans IDE 7.0.1.
Не хочет компилировать код(На виндуусе в WMS2013 все прекрасно работает)
все модули подключены, стандартная программа приветствия компилируется.
Элементарный вывод через cout тоже.

суть программы: вводишь 2 числа и знак, после чего выводится ответ. После каждого ввода программа показывает что вы ввели. Если 12/3, к примеру, то покажет 4.

Код 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
143
144
145
146
147
#include "stdafx.h"
#include "math.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
 
 
 
int main(int argc, char** argv) {
    double a = 0; //часть до дроби
    double b = 0; //часть после дроби
    char aa[20];//первое вводимое число
    char bb[20];
    double chislo, chislo2; // итоговое число
    int index; // индекс положения дробной полосы
    char znak;
         int flag = 0;
    cout << "Введите первое число: \n";
    cin >> aa;
    for (int i = 0; i < 19; i++)
    {
        if (aa[i] == '/')
        {
            index = i;
            a = atoi(aa);
            i++;
            do
            {
                b = (b * 10) + (int)(aa[i] - '0');
                i++;
            } while (aa[i] != '\0');
            chislo = a / b;
            break;
 
        }
        else chislo = atoi(aa);
    }
    cout << "Вы ввели: " << chislo;
    cout << "\n\nВведите второе число: \n";
    cin >> bb;
    a = 0;
    b = 0;
    for (int i = 0; i < 19; i++)
    {
        if (bb[i] == '/')
        {
            index = i;
 
            a = atoi(bb);
            i++;
            do
            {
                b = (b * 10) + (int)(bb[i] - '0');
                i++;
            } while (bb[i] != '\0');
            chislo2 = a / b;
            break;
        }
        else chislo2 = atoi(bb);
    }
    cout << "Вы ввели: " << chislo2;
    do{
        cout << "Введите знак";
        cin >> znak;
        switch (znak)
        {
        case '<=':
        {
                     if (chislo <= chislo2){
                         cout << "Верно\n";
                     }
                     else {
                         cout << "Не верно\n";
                     }
                     break;
        }
        case '>=':
        {
                     if (chislo >= chislo2){
                         cout << "Верно\n";
                     }
                     else {
                         cout << "Не верно\n";
                     }
                     break;
        }
        case '<':
        {
                    if (chislo < chislo2){
                        cout << "Верно\n";
                    }
                    else {
                        cout << "Не верно\n";
                    }
                    break;
        }
        case '>':
        {
                    if (chislo > chislo2){
                        cout << "Верно\n";
                    }
                    else {
                        cout << "Не верно\n";
                    }
                    break;
        }
        case '+':
        {
 
                    cout << chislo + chislo2 << "\n";
                    break;
        }
        case '-':
        {
                    cout << (chislo - chislo2);
                    break;
        }
        case '*':
        {
                    cout << (chislo * chislo);
                    cout << "\n";
                    break;
 
        }
        case '/':
        {
                    cout << (chislo / chislo2);
                    break;
        }
        case '0':
        {
                    flag = 1;
                    break;
        }
        default:{
                    cout << "Ошибка !";
                    break;
 
 
        }
        }
    } while (flag == 0);
 
}
вывод:
Код 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
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/home/anna/NetBeansProjects/проба'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/_____
make[2]: Entering directory `/home/anna/NetBeansProjects/проба'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp
main.cpp:67:17: warning: multi-character character constant [-Wmultichar]
main.cpp:73:17: warning: multi-character character constant [-Wmultichar]
main.cpp: In function ‘int main(int, char**):
main.cpp:25:20: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
main.cpp:45:15: error: invalid conversion from ‘const char*’ to ‘char[-fpermissive]
main.cpp:67:17: warning: case label value exceeds maximum value for type [enabled by default]
main.cpp:70:21: error: no match for ‘operator»’ in ‘std::cout » "True"’
main.cpp:70:21: note: candidates are:
In file included from /usr/include/c++/4.7/string:55:0,
from /usr/include/c++/4.7/bits/locale_classes.h:42,
from /usr/include/c++/4.7/bits/ios_base.h:43,
from /usr/include/c++/4.7/ios:43,
from /usr/include/c++/4.7/ostream:40,
from /usr/include/c++/4.7/iostream:40,
from main.cpp:4:
/usr/include/c++/4.7/bits/basic_string.tcc:998:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator»(std::basic_istream<_CharT, _Traits>&, std::basic_string<_CharT, _Traits, _Alloc>&)
/usr/include/c++/4.7/bits/basic_string.tcc:998:5: note: template argument deduction/substitution failed:
main.cpp:70:21: note: ‘std::ostream {aka std::basic_ostream<char>}’ is not derived from ‘std::basic_istream<_CharT, _Traits>’
In file included from /usr/include/c++/4.7/istream:873:0,
from /usr/include/c++/4.7/iostream:41,
from main.cpp:4:
/usr/include/c++/4.7/bits/istream.tcc:957:5: note: template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator»(std::basic_istream<_CharT, _Traits>&, _CharT2*)
/usr/include/c++/4.7/bits/istream.tcc:957:5: note: template argument deduction/substitution failed:
main.cpp:70:21: note: ‘std::ostream {aka std::basic_ostream<char>}’ is not derived from ‘std::basic_istream<_CharT, _Traits>’
In file included from /usr/include/c++/4.7/istream:873:0,
from /usr/include/c++/4.7/iostream:41,
from main.cpp:4:
/usr/include/c++/4.7/bits/istream.tcc:925:5: note: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator»(std::basic_istream<_CharT, _Traits>&, _CharT&)
/usr/include/c++/4.7/bits/istream.tcc:925:5: note: template argument deduction/substitution failed:
main.cpp:70:21: note: ‘std::ostream {aka std::basic_ostream<char>}’ is not derived from ‘std::basic_istream<_CharT, _Traits>’
In file included from /usr/include/c++/4.7/iostream:41:0,
from main.cpp:4:
/usr/include/c++/4.7/istream:725:5: note: template<class _Traits> std::basic_istream<char, _Traits>& std::operator»(std::basic_istream<char, _Traits>&, unsigned char&)
/usr/include/c++/4.7/istream:725:5: note: template argument deduction/substitution failed:
main.cpp:70:21: note: ‘std::ostream {aka std::basic_ostream<char>}’ is not derived from ‘std::basic_istream<char, _Traits>’
In file included from /usr/include/c++/4.7/iostream:41:0,
from main.cpp:4:
/usr/include/c++/4.7/istream:730:5: note: template<class _Traits> std::basic_istream<char, _Traits>& std::operator»(std::basic_istream<char, _Traits>&, signed char&)
/usr/include/c++/4.7/istream:730:5: note: template argument deduction/substitution failed:
main.cpp:70:21: note: ‘std::ostream {aka std::basic_ostream<char>}’ is not derived from ‘std::basic_istream<char, _Traits>’
In file included from /usr/include/c++/4.7/iostream:41:0,
from main.cpp:4:
/usr/include/c++/4.7/istream:772:5: note: template<class _Traits> std::basic_istream<char, _Traits>&
.......................
make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Ошибка 1
make[2]: Leaving directory `/home/anna/NetBeansProjects/проба'
make[1]: *** [.build-conf] Ошибка 2
make[1]: Leaving directory `/home/anna/NetBeansProjects/проба'
make: *** [.build-impl] Ошибка 2
 
ПОСТРОИТЬ FAILED (exit value 2, total time: 3s)
C++ Linux - netbeans ошибки компиляции
C++ Linux - netbeans ошибки компиляции
Ответ: ошибка тут
Цитата Сообщение от AnnaTrat Посмотреть сообщение
Код C++
1
2
3
4
5
6
7
8
char znak;
// ...
cin >> znak;
switch (znak)
{
case '<=':
// ...
case '>=':
символьная константа должна состоять из 1 символа. вы же пытаетесь создать "мультисимвольную константу" ('<=', '>=') и сравнить ее с символом. znak всегда будет содержать 1 символ. даже если вы введете <=, в znak запишется <. в вашем случае znak должен быть строкой и сравниваться он должен со строками ("<=", ">=", "<" и т.д.). и конечно же не с помощью switch конструкции.
Вопрос: Выбивает ошибку компиляции" 'to_string' is not a member of 'std' ".

Выбивает ошибку компиляции" 'to_string' is not a member of 'std' ". Помогите пожалуйста.


Код:

#include <iostream>
#include <string>

namespace geomfigur
{
    class Figura
    {
    public:
        virtual double Ploshad() = 0;
    };

    class Romb: public Figura
    {
        double a, b;

    public:
        Romb(double a, double b)
        {
            this->a = a;
            this->b = b;

        }
        double Ploshad() override
        {
            return b * a / 2;
        }
    };
}

int main()
{
    geomfigur::Figura* Romb = new geomfigur::Romb(0,0);

    std::cout << Romb->Ploshad() << std::endl;
    std::cout << Romb->Ploshad() << std::endl;
    std::cin.get();

    //конец теста
    std::cout << "a=" << std::endl;
    int a;
    std::cin >> a;

    std::cout << "b=" << std::endl;
    int b;
    std::cin >> b;

    delete Romb;
    Romb = new geomfigur::Romb(a,b);

    std::cout << std::string("diamond area ") + std::to_string(Romb->Ploshad() );


   std::cin.ignore();


    std::cin.get();

    return 0;
}

Ответ: а разве так написать не проще?
Код:

std::cout << "diamond area " << Romb->Ploshad();

Вопрос: Ошибка компиляции: error LNK2019 OpenCV VS2010

Система Windows 7 x64
VS 2010 Ultimate
OpenCV 2.4.9

Я только пробую свои силы в VS С++.... Установку OpenCV делал по инструкции, библиотеки подключил. Проинкладил всё, что знал
Код 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
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <stdarg.h>
#include <iostream>
#include <fstream>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    IplImage* frame=cvLoadImage("C:\\Users\\Василий\\Desktop\\2.jpg",1);
 
    cvSmooth(frame,frame,CV_BLUR,3,0,2.0,2.0); // Немножко размоем изображение. Просто так,
                                                   //чтобы потрогать функции OpenCV
 
    if(frame==NULL){ /* Если вдруг такой картинки нет */
        printf("Кажется этот файл не существует");
        exit(0);
    }
 
    cvNamedWindow("Hi", CV_WINDOW_AUTOSIZE );
    cvShowImage("My Window",frame);
    cvSaveImage("image.jpg",frame);
     
    cvWaitKey();/* Ждем, пока вы что-нибудь не нажмете, 
                       иначе окошко просто "мелькнет" и вы
                       можете даже ничего не заметить */
    cvDestroyWindow( "Hi" );
 
return 0;
}
Ошибка компиляции:
Код XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1>------ Построение начато: проект: OpenCV Project1, Конфигурация: Debug Win32 ------
1>Построение начато 20.09.2014 18:42:26.
1>InitializeBuildStatus:
1>  Обращение к "Debug\OpenCV Project1.unsuccessfulbuild".
1>ClCompile:
1>  Для всех выходных данных обновления не требуется.
1>  OpenCV Project1.cpp
1>c:\ocv\opencv\build\include\opencv2\flann\logger.h(67): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(234): см. объявление "fopen"
1>ManifestResourceCompile:
1>  Для всех выходных данных обновления не требуется.
1>OpenCV Project1.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvDestroyWindow в функции _wmain
1>OpenCV Project1.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvWaitKey в функции _wmain
1>OpenCV Project1.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvSaveImage в функции _wmain
1>OpenCV Project1.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvShowImage в функции _wmain
1>OpenCV Project1.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvNamedWindow в функции _wmain
1>OpenCV Project1.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvSmooth в функции _wmain
1>OpenCV Project1.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvLoadImage в функции _wmain
1>c:\users\семья\documents\visual studio 2010\Projects\OpenCV Project1\Debug\OpenCV Project1.exe : fatal error LNK1120: 7 неразрешенных внешних элементов
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:01.31
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Знаю что компоновщик чего-то не видит, но не понимаю чего и где это взять? Прошу помощи специалистов. Спасибо.
Ответ:
Сообщение от alsav22
Похоже, вы как-то испортили файлы библиотеки. Удалите библиотеку и по новой установите.
Снёс все установки OpenCV их было несколько, может с этим связано. Заново скачал с офсайта версию 2.4.9, затем заново установил. Создал новый пустой проект, скопировал код, подключил библиотеки, скомпилировал.... и... о чудо, появилось консольное окно... а через доли секунды это:



Ошибку пишет эту:



Что за файл PDB нужен компилятору?
Вопрос: Ошибка компиляции при изменении запускаемой формы

В целях отладки проекта изменил запускаемую форму:
C#
1
2
3
4
5
6
static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());  
      }
заменил на
C#
1
2
3
4
5
6
static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new CashPay());
      }
И получил ошибку компиляции с текстом:
"Error 27 Could not write to output file 'd:\Source\Repos\Hostels\Hostels\obj\Debug\Hostels.exe' -- 'The process cannot access the file because it is being used by another process. '
"
Подумал было, что какие-то незавершенные процессы остались - проверил через Диспетчер задач -ничего.
От формы, на которую заменяю, ничего не меняется - та же ошибка на любую форму.
Вылечить удалось только перезагрузкой компа, что само по себе как-то дико.

Подскажите, плиз, в чем может быть проблема и как ее исправить?
Ответ: Melif, просто висел скрытый процесс. После завершения проекта, когда еще была Form1, остался висеть кэш, который не отметился в диспетчере. По этой причине, когда ты поменял запускаемую форму, вылетала такая ошибка. Сам разбирался с подобной)
Вопрос: Ошибка компиляции: no matching function for call to

Здравствуйте форумчане.

Возникает ошибка компиляции no matching function for call to в коде:

Код C++
1
editor->make_field<Game, WString, WLineEdit>(ptr, ptr->name, WString("Имя"));
Метод объекта editor:
Код C++
1
2
3
4
5
6
template<typename T, typename R, typename C>
void make_field(Dbo::ptr<T> ptr, R T::* member, const WString& title)
{
    FieldInterface* field = new Field<T, R, C>(ptr, member, title);
//...
}
Модель Game:
Код C++
1
2
3
4
5
6
7
    class Game
    {
    public:
        Game();
        WString name;
//...
    };
Так объявлена переменная ptr которая передается в метод editor->make_field
Код C++
1
const Dbo::ptr<Game>& ptr
Ошибка:
Код Code
1
2
no matching function for call to 'G::DboEditor::make_field(const Wt::Dbo::ptr<G::Game>&, const Wt::WString&, Wt::WString)'
                         editor->make_field<Game, WString, WLineEdit>(ptr, ptr->name, WString("Имя"));
Пожалуйста помогите разобраться с ошибкой.
С уважением QVO.
Ответ: Tulosba,

Не по теме:

еще раз спасибо что ткнули носом. Это следствие приема медикаментов, не зря запретили водить автомобиль.

Вопрос: Указатели. Ошибка компиляции в функции strcat

В функции strcat(t, *A) возникает ошибка компиляции:
D:\#BC2\38.c:26: warning: assignment from incompatible pointer type
D:\#BC2\38.c:27: warning: passing arg 2 of `strcat' makes pointer from integer without a cast

Код 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
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
main()
  {
    int k, x;
    char *A;
    char s[80];
    char t[80];
    system("cls");
    printf("INPUT WORD ");
    scanf("%s", s);
    k = strlen(s);
    for (x = 0; x < k-1; x++)
      {
         if(s[x] != ' ')
           {
             A = &s[x];
             strcat(t, *A);
             }
         else
           {
             if(s[x + 1] != ' ' && x != 0 && x != k-1 && strlen(t) != 0)
               {
                 A = &s[x];
                 strcat(t, *A);   
               }
           }      
      }
    printf("%s", t);
    getch();
  }
D:\#BC2\38.c: In function `main':
D:\#BC2\38.c:19: warning: assignment from incompatible pointer type
D:\#BC2\38.c:20: warning: passing arg 2 of `strcat' makes pointer from integer without a cast

D:\#BC2\38.c:26: warning: assignment from incompatible pointer type
D:\#BC2\38.c:27: warning: passing arg 2 of `strcat' makes pointer from integer without a cast
Ответ:
Сообщение от Байт
ощущение бреда
Именно.

Сообщение от Дима_Кирсанов
если не пробел, то берем голову от строки S
Вы не берете "голову от строки". Функция strcat будет рассматривать первые 4 байта вашей строки (чтобы в них ни было), как указатель на строку, которую следует конкатенировать.

В лучшем случае, это будет мусор, но скорее всего, AV.
Вопрос: antlr4: ошибки компиляции при генерировании исходников из файла грамматики .g4

Я пробую в данный момент , реализовать следующую задачу: из написанной грамматики в .g4 файле сгенерировать при помощи antlr4 генератора исходные файлы .java , а именно коды парсера , лексера , листенера , файл токенов и.т.д. и уже после сгенерированный файл парсера опять же этим antlr4 скомпилировать в .jar бинарь , который уже потом при запуске будет отображать в режиме -gui абстрактное дерево из нодов грамматики. В книге по "использованию технологии antlr4" , написанной Теренсом Парром , есть пример того как это делать , правда он реализован на Линуксе и требует два батника antlr4 и grun, а я на винде сижу и поэтому я сосредоточен на том как это на винде работает(Только у меня вместо Simple , файл парсера и грамматики называется ECMAScript):

$ antlr4 Simple.g4
➾ $ javac Simple*.java -здесь исходный .java файл парсера надо через java компиль пропустить
➾ $ grun Simple prog

Однако у меня не получилось подобное(ошибки компиляции) из за того , что нужно , чтобы интегрировались недостающие пакеты из Antlr API в эти исходники. Поэтому я попробовал реализовать это , создав проект через консоль с помощью менеджера проектов apache maven + с участием antlr4-maven-plugin(он как раз эти недостающие пакеты для antlr4 тот плагин и подгружает). В конфиге pom.xml есть вся инфа. Сам архив проекта прилагается ниже. При запуске mvn compile , когда я хочу собрать проект , он не собирается из за ошибок в следующем выводе:

C:\Program Files\Java\Antlr\treeExmp>mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building treeExmp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- antlr4-maven-plugin:4.5.1:antlr4 (run antlr) @ treeExmp ---
[INFO] ANTLR 4: Processing source directory C:\Program Files\Java\Antlr\treeExmp
\src\main\java
[INFO] Processing grammar: antlr\tree\bin\ECMAScript.g4
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ treeExmp -
--
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ treeExmp ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files to C:\Program Files\Java\Antlr\treeExmp\target\c
lasses
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Program Files/Java/Antlr/treeExmp/src/main/antlr-gen-output/antlr/tr
ee/bin/ECMAScriptParser.java:[4,9] class, interface, or enum expected
[ERROR] /C:/Program Files/Java/Antlr/treeExmp/src/main/antlr-gen-output/antlr/tr
ee/bin/ECMAScriptLexer.java:[4,9] class, interface, or enum expected
[ERROR] /C:/Program Files/Java/Antlr/treeExmp/src/main/antlr-gen-output/antlr/tr
ee/bin/ECMAScriptListener.java:[4,9] class, interface, or enum expected
[ERROR] /C:/Program Files/Java/Antlr/treeExmp/src/main/antlr-gen-output/antlr/tr
ee/bin/ECMAScriptBaseListener.java:[4,9] class, interface, or enum expected
[INFO] 4 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15.395 s
[INFO] Finished at: 2016-12-08T06:37:05+02:00
[INFO] Final Memory: 15M/128M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.
1:compile (default-compile) on project treeExmp: Compilation failure: Compilatio
n failure:
[ERROR] /C:/Program Files/Java/Antlr/treeExmp/src/main/antlr-gen-output/antlr/tr
ee/bin/ECMAScriptParser.java:[4,9] class, interface, or enum expected
[ERROR] /C:/Program Files/Java/Antlr/treeExmp/src/main/antlr-gen-output/antlr/tr
ee/bin/ECMAScriptLexer.java:[4,9] class, interface, or enum expected
[ERROR] /C:/Program Files/Java/Antlr/treeExmp/src/main/antlr-gen-output/antlr/tr
ee/bin/ECMAScriptListener.java:[4,9] class, interface, or enum expected
[ERROR] /C:/Program Files/Java/Antlr/treeExmp/src/main/antlr-gen-output/antlr/tr
ee/bin/ECMAScriptBaseListener.java:[4,9] class, interface, or enum expected
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1]
eption


Я могу тока предполагать , что ошибка где-то в файле грамматики ECMAScript.g4(находится в папке treeExmp\src\main\java\antlr\tree\bin) в кусках строки мета кода , которые написаны на java. Плиз помогите мне исправить эти ошибки компиляции , что выше описаны. Ну правда очень нужно чтобы сборка прошла успешно

К сообщению приложен файл (treeExmp.rar - 49Kb)
Ответ: DrillDrive, сорян. Я не специалист в Antlr.

Но я думаю что в этом форуме - помогут. Единственное... не выкладывай в rar. Лучше zip.
А еще лучше выложи в github, так динамичнее процесс пойдет ИМХО.
Вопрос: Ошибка компиляции при попытке передачи переменной ссылочного типа в качестве параметра

Вечер добрый, форумчане.

Вопрос в виде комментария написан в коде:

Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace TestConsole
{
   
    class Program
    {
        private static TestClass testClassObject;
 
        static void Main(string[] argc)
        {
            TestClass obj;
            SomeAction(testClassObject); //ошибки компиляции нет
            SomeAction(obj); // ошибка компиляции - почему?
        }
        
        private static void SomeAction(TestClass obj)
        {
        }
    }
 
    class TestClass
    {}
}
Почему второй случай инициирует ошибку, а первый - нет?
Ответ: p_r_a_g_m_a, если переменная не была инициализирована (программистом или языком), то у неё нет значения. Терминологическое уточнение