1 2 3 4 5 6 7 8 9 10 | c:\users\adin\programs\4coder\src\4coder_casey.cpp(752): error C2220: warning treated as error - no 'object' file generated c:\users\adin\programs\4coder\src\4coder_casey.cpp(752): warning C4456: declaration of 'access' hides previous local declaration c:\users\adin\programs\4coder\src\4coder_casey.cpp(720): note: see declaration of 'access' c:\users\adin\programs\4coder\src\4coder_casey.cpp(763): error C2065: 'null_location': undeclared identifier c:\users\adin\programs\4coder\src\4coder_casey.cpp(923): warning C4456: declaration of 'Token' hides previous local declaration c:\users\adin\programs\4coder\src\4coder_casey.cpp(918): note: see declaration of 'Token' c:\users\adin\programs\4coder\src\4coder_casey.cpp(949): warning C4456: declaration of 'Token' hides previous local declaration c:\users\adin\programs\4coder\src\4coder_casey.cpp(944): note: see declaration of 'Token' c:\users\adin\programs\4coder\src\4coder_casey.cpp(978): error C3861: 'get_range': identifier not found c:\users\adin\programs\4coder\src\4coder_casey.cpp(1809): error C3861: 'change_font': identifier not found |
I got it down to just one error by commenting out some unused lines and renaming some variables.
For
1 | c:\users\adin\programs\4coder\src\4coder_casey.cpp(752): warning C4456: declaration of 'access' hides previous local declaration |
I commented out the second deceleration as its value wasn't changed in the code.
Original
1 2 3 4 5 6 7 8 9 10 11 | if(append(&command, "build.bat")) { unsigned int access = AccessAll; View_Summary view = get_active_view(app, access); exec_system_command(app, &view, buffer_identifier(GlobalCompilationBufferName, (int)strlen(GlobalCompilationBufferName)), dir.str, dir.size, command.str, command.size, CLI_OverlapWithConflict); lock_jump_buffer(GlobalCompilationBufferName, str_size(GlobalCompilationBufferName)); } |
Edited
1 2 3 4 5 6 7 8 9 10 11 | if(append(&command, "build.bat")) { //unsigned int access = AccessAll; View_Summary view = get_active_view(app, access); exec_system_command(app, &view, buffer_identifier(GlobalCompilationBufferName, (int)strlen(GlobalCompilationBufferName)), dir.str, dir.size, command.str, command.size, CLI_OverlapWithConflict); lock_jump_buffer(GlobalCompilationBufferName, str_size(GlobalCompilationBufferName)); } |
The same worked for
1 | c:\users\adin\programs\4coder\src\4coder_casey.cpp(763): error C2065: 'null_location': undeclared identifier |
1 | c:\users\adin\programs\4coder\src\4coder_casey.cpp(1809): error C3861: 'change_font': identifier not found |
I'm assuming that they were just using deprecated APIs.
For the errors with Token I renamed the local variable to localToken in both cases.
1 2 | c:\users\adin\programs\4coder\src\4coder_casey.cpp(923): warning C4456: declaration of 'Token' hides previous local declaration c:\users\adin\programs\4coder\src\4coder_casey.cpp(949): warning C4456: declaration of 'Token' hides previous local declaration |
Original
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 | token Token = PeekToken(Tokenizer); if((Token.Type == Token_Minus) || (Token.Type == Token_Number)) { Result = ParseConstant(Tokenizer); token Token = PeekToken(Tokenizer); if(Token.Type == Token_ForwardSlash) { GetToken(Tokenizer); Result = AddNode(CalcNode_Divide, Result, ParseNumber(Tokenizer)); } else if(Token.Type == Token_Asterisk) { GetToken(Tokenizer); Result = AddNode(CalcNode_Multiply, Result, ParseNumber(Tokenizer)); } } ... token Token = PeekToken(Tokenizer); if((Token.Type == Token_Minus) || (Token.Type == Token_Number)) { Result = ParseMultiplyExpression(Tokenizer); token Token = PeekToken(Tokenizer); if(Token.Type == Token_Plus) { GetToken(Tokenizer); Result = AddNode(CalcNode_Add, Result, ParseMultiplyExpression(Tokenizer)); } else if(Token.Type == Token_Minus) { GetToken(Tokenizer); Result = AddNode(CalcNode_Subtract, Result, ParseMultiplyExpression(Tokenizer)); } } |
Edited
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 | token Token = PeekToken(Tokenizer); if((Token.Type == Token_Minus) || (Token.Type == Token_Number)) { Result = ParseConstant(Tokenizer); token localToken = PeekToken(Tokenizer); if(localToken.Type == Token_ForwardSlash) { GetToken(Tokenizer); Result = AddNode(CalcNode_Divide, Result, ParseNumber(Tokenizer)); } else if(localToken.Type == Token_Asterisk) { GetToken(Tokenizer); Result = AddNode(CalcNode_Multiply, Result, ParseNumber(Tokenizer)); } } ... token Token = PeekToken(Tokenizer); if((Token.Type == Token_Minus) || (Token.Type == Token_Number)) { Result = ParseMultiplyExpression(Tokenizer); token localToken = PeekToken(Tokenizer); if(localToken.Type == Token_Plus) { GetToken(Tokenizer); Result = AddNode(CalcNode_Add, Result, ParseMultiplyExpression(Tokenizer)); } else if(localToken.Type == Token_Minus) { GetToken(Tokenizer); Result = AddNode(CalcNode_Subtract, Result, ParseMultiplyExpression(Tokenizer)); } } |
Now we get to the issue I couldn't solve.
1 | c:\users\adin\programs\4coder\src\4coder_casey.cpp(978): error C3861: 'get_range': identifier not found |
From the code I inferred that it was supposed to get the range of text available in the view but I couldn't figure out how to get that from the View_Summary struct. When trying to write my own get_range function this is where I got stuck. It also didn't help that I wasn't exactly sure what get_range was supposed to do.
I know I could have solved most of the errors by removing the warnings, but I wanted it to compile according to the intended build system.
If anyone here can help that would be great!