position.hh : 46 : 오류 : '네임 스페이스'이전에 예상되는 자격이없는 -ID

StackOverflow https://stackoverflow.com/questions/2234294

  •  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)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top