mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-04-28 21:07:59 +03:00
handle junk in argument lists (Fixes #2206)
This commit is contained in:
parent
5cb94da9c5
commit
b951251572
8 changed files with 106 additions and 6 deletions
48
components/compiler/junkparser.cpp
Normal file
48
components/compiler/junkparser.cpp
Normal file
|
@ -0,0 +1,48 @@
|
|||
|
||||
#include "junkparser.hpp"
|
||||
|
||||
#include "scanner.hpp"
|
||||
|
||||
Compiler::JunkParser::JunkParser (ErrorHandler& errorHandler, const Context& context,
|
||||
int ignoreKeyword)
|
||||
: Parser (errorHandler, context), mIgnoreKeyword (ignoreKeyword)
|
||||
{}
|
||||
|
||||
bool Compiler::JunkParser::parseInt (int value, const TokenLoc& loc, Scanner& scanner)
|
||||
{
|
||||
scanner.putbackInt (value, loc);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Compiler::JunkParser::parseFloat (float value, const TokenLoc& loc, Scanner& scanner)
|
||||
{
|
||||
scanner.putbackFloat (value, loc);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Compiler::JunkParser::parseName (const std::string& name, const TokenLoc& loc,
|
||||
Scanner& scanner)
|
||||
{
|
||||
scanner.putbackName (name, loc);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Compiler::JunkParser::parseKeyword (int keyword, const TokenLoc& loc, Scanner& scanner)
|
||||
{
|
||||
if (keyword==mIgnoreKeyword)
|
||||
reportWarning ("found junk (ignoring it)", loc);
|
||||
else
|
||||
scanner.putbackKeyword (keyword, loc);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Compiler::JunkParser::parseSpecial (int code, const TokenLoc& loc, Scanner& scanner)
|
||||
{
|
||||
if (code==Scanner::S_member)
|
||||
reportWarning ("found junk (ignoring it)", loc);
|
||||
else
|
||||
scanner.putbackSpecial (code, loc);
|
||||
|
||||
return false;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue