Disallow non-language characters in comments for ES version 100.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24301 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
@@ -93,6 +93,46 @@ TPpContext::TPpContext(TParseContext& pc) :
|
||||
for (elsetracker = 0; elsetracker < maxIfNesting; elsetracker++)
|
||||
elseSeen[elsetracker] = false;
|
||||
elsetracker = 0;
|
||||
|
||||
for (int c = 0; c < 256; ++c)
|
||||
languageCharacters[c] = false;
|
||||
for (int c = 'a'; c <= 'z'; ++c)
|
||||
languageCharacters[c] = true;
|
||||
for (int c = 'A'; c <= 'Z'; ++c)
|
||||
languageCharacters[c] = true;
|
||||
languageCharacters['_'] = true;
|
||||
for (int c = '0'; c <= '9'; ++c)
|
||||
languageCharacters[c] = true;
|
||||
languageCharacters['.'] = true;
|
||||
languageCharacters['+'] = true;
|
||||
languageCharacters['-'] = true;
|
||||
languageCharacters['/'] = true;
|
||||
languageCharacters['*'] = true;
|
||||
languageCharacters['%'] = true;
|
||||
languageCharacters['<'] = true;
|
||||
languageCharacters['>'] = true;
|
||||
languageCharacters['['] = true;
|
||||
languageCharacters[']'] = true;
|
||||
languageCharacters['('] = true;
|
||||
languageCharacters[')'] = true;
|
||||
languageCharacters['{'] = true;
|
||||
languageCharacters['}'] = true;
|
||||
languageCharacters['^'] = true;
|
||||
languageCharacters['|'] = true;
|
||||
languageCharacters['&'] = true;
|
||||
languageCharacters['~'] = true;
|
||||
languageCharacters['='] = true;
|
||||
languageCharacters['!'] = true;
|
||||
languageCharacters[':'] = true;
|
||||
languageCharacters[';'] = true;
|
||||
languageCharacters[','] = true;
|
||||
languageCharacters['?'] = true;
|
||||
languageCharacters['#'] = true;
|
||||
|
||||
// white space
|
||||
languageCharacters[' '] = true;
|
||||
for (int c = 9; c <= 13; ++c)
|
||||
languageCharacters[c] = true;
|
||||
}
|
||||
|
||||
TPpContext::~TPpContext()
|
||||
|
||||
@@ -209,6 +209,8 @@ protected:
|
||||
InputSrc *currentInput;
|
||||
bool errorOnVersion;
|
||||
|
||||
bool languageCharacters[256];
|
||||
|
||||
//
|
||||
// from Pp.cpp
|
||||
//
|
||||
|
||||
@@ -647,7 +647,8 @@ int TPpContext::sourceScan(TPpContext* pp, InputSrc*, TPpToken* ppToken)
|
||||
else
|
||||
ch = nextch;
|
||||
}
|
||||
}
|
||||
} else if (ch > 0 && ! pp->languageCharacters[ch])
|
||||
pp->parseContext.commentCharacterCheck(ppToken->loc, ch);
|
||||
} while (ch != '\n' && ch != EOF);
|
||||
if (ch == EOF)
|
||||
return EOF;
|
||||
@@ -659,11 +660,12 @@ int TPpContext::sourceScan(TPpContext* pp, InputSrc*, TPpToken* ppToken)
|
||||
while (ch != '*') {
|
||||
if (ch == '\n')
|
||||
nlcount++;
|
||||
if (ch == EOF) {
|
||||
else if (ch == EOF) {
|
||||
pp->parseContext.error(ppToken->loc, "EOF in comment", "comment", "");
|
||||
|
||||
return EOF;
|
||||
}
|
||||
} else if (! pp->languageCharacters[ch])
|
||||
pp->parseContext.commentCharacterCheck(ppToken->loc, ch);
|
||||
ch = pp->currentInput->getch(pp, pp->currentInput, ppToken);
|
||||
}
|
||||
ch = pp->currentInput->getch(pp, pp->currentInput, ppToken);
|
||||
@@ -671,7 +673,8 @@ int TPpContext::sourceScan(TPpContext* pp, InputSrc*, TPpToken* ppToken)
|
||||
pp->parseContext.error(ppToken->loc, "EOF in comment", "comment", "");
|
||||
|
||||
return EOF;
|
||||
}
|
||||
} else if (! pp->languageCharacters[ch])
|
||||
pp->parseContext.commentCharacterCheck(ppToken->loc, ch);
|
||||
} while (ch != '/');
|
||||
if (nlcount)
|
||||
return '\n';
|
||||
|
||||
Reference in New Issue
Block a user