position.hh : 46 : 오류 : '네임 스페이스'이전에 예상되는 자격이없는 -ID
-
19-09-2019 - |
문제
내 코드는 다음과 같습니다.
34
35 /**
36 ** \file position.hh
37 ** Define the example::position class.
38 */
39
40 #ifndef BISON_POSITION_HH
41 #define BISON_POSITION_HH
42
43 #include <iostream>
44 #include <string>
45
46 namespace example
47 {
48 /// Abstract a position.
49 class position
50 {
51 public:
52
53 /// Construct a position.
54 position ()
55 : filename (0), line (1), column (0)
56 {
고마워, 스피더, 정말 대단해. Necrolis, 감사합니다. 둘 다 편집 장치의 같은 트랙에 있습니다. 전체 오류 보고서는 다음과 같습니다.
location.hh : 45, parser.h : 64, 스캐너에서 : 25, 스캐너에서 25 : 8 : position.hh : 46 : 오류 : '네임 스페이스'이전에 예상되지 않은 -Id 이전의 '네임 스페이스'
location.hh는 다음과 같습니다.
35 /**
36 ** \file location.hh
37 ** Define the example::location class.
38 */
39
40 #ifndef BISON_LOCATION_HH
41 # define BISON_LOCATION_HH
42
43 # include <iostream>
44 # include <string>
45 # include "position.hh"
46
47 namespace example
48 {
49
50 /// Abstract a location.
51 class location
52 {
53 public:
또한이 파일이 Bison에 의해 생성되고 있다고 덧붙여 야합니다. 이 단계에 도달하기 위해 Flex ++에 의해 생성 된 C ++ 스캐너 클래스를 컴파일하려고 할 때입니다. flex --c ++ -o scanner.cc scanner.ll을 발행하여 .CC 코드를 얻습니다.
해결책
이것은 a; 또는 네임 스페이스 이전에는 다른 폐쇄가 부족합니다. 34 이전의 줄에 코드가 없다고 확신합니까? 코드가있는 경우 (해당 코드가 다른 #include 인 경우에도) 오류가 있습니다.
편집 : 또는 34 줄의 모든 코드가없는 경우, 오류는이 헤더를 포함하는 파일에 오류가 발생하며 대부분은 결말이없는 코드가있을 가능성이 높습니다. 또는} 또는) 또는 다른 결말 캐릭터, 그리고 그 직후에 (물론 주석을 무시하고) #include 위치가 있습니다 .hh
또는 두 개의 연속으로 포함 된 경우, 하나는 위치 전, HH, 위치 앞에 포함 된 헤더의 마지막 줄은 오류가 있고, 일반적으로 a가없는 구조; 마감 후}
다른 팁
오류는보고 된 파일 (컴파일 장치로 인해), 즉 '기타'파일 (예 : 누락 된 '}'또는 ';'또는 '#의 끝에있는 파일 이외의 파일에서 발생할 수 있습니다. endif 'etc)