Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
a2a5dd47
Commit
a2a5dd47
authored
Oct 01, 2016
by
John Kessenich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Non-functional: Rationalizing parse helper hierarchy, step 2 (effected error…
Non-functional: Rationalizing parse helper hierarchy, step 2 (effected error messaging and cascading errors).
parent
273060c2
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
86 additions
and
165 deletions
+86
-165
revision.h
glslang/Include/revision.h
+1
-1
ParseContextBase.cpp
glslang/MachineIndependent/ParseContextBase.cpp
+71
-1
ParseHelper.cpp
glslang/MachineIndependent/ParseHelper.cpp
+0
-76
ParseHelper.h
glslang/MachineIndependent/ParseHelper.h
+13
-13
TestFixture.cpp
gtests/TestFixture.cpp
+1
-1
hlslParseHelper.cpp
hlsl/hlslParseHelper.cpp
+0
-64
hlslParseHelper.h
hlsl/hlslParseHelper.h
+0
-9
No files found.
glslang/Include/revision.h
View file @
a2a5dd47
...
@@ -2,5 +2,5 @@
...
@@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits.
// For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run).
// For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "Overload400-PrecQual.154
6
"
#define GLSLANG_REVISION "Overload400-PrecQual.154
7
"
#define GLSLANG_DATE "01-Oct-2016"
#define GLSLANG_DATE "01-Oct-2016"
glslang/MachineIndependent/ParseContextBase.cpp
View file @
a2a5dd47
...
@@ -36,12 +36,83 @@
...
@@ -36,12 +36,83 @@
// Implement the TParseContextBase class.
// Implement the TParseContextBase class.
#include <cstdarg>
#include "ParseHelper.h"
#include "ParseHelper.h"
extern
int
yyparse
(
glslang
::
TParseContext
*
);
extern
int
yyparse
(
glslang
::
TParseContext
*
);
namespace
glslang
{
namespace
glslang
{
//
// Used to output syntax, parsing, and semantic errors.
//
void
TParseContextBase
::
outputMessage
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
TPrefixType
prefix
,
va_list
args
)
{
const
int
maxSize
=
MaxTokenLength
+
200
;
char
szExtraInfo
[
maxSize
];
safe_vsprintf
(
szExtraInfo
,
maxSize
,
szExtraInfoFormat
,
args
);
infoSink
.
info
.
prefix
(
prefix
);
infoSink
.
info
.
location
(
loc
);
infoSink
.
info
<<
"'"
<<
szToken
<<
"' : "
<<
szReason
<<
" "
<<
szExtraInfo
<<
"
\n
"
;
if
(
prefix
==
EPrefixError
)
{
++
numErrors
;
}
}
void
C_DECL
TParseContextBase
::
error
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
if
(
messages
&
EShMsgOnlyPreprocessor
)
return
;
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixError
,
args
);
va_end
(
args
);
if
((
messages
&
EShMsgCascadingErrors
)
==
0
)
currentScanner
->
setEndOfInput
();
}
void
C_DECL
TParseContextBase
::
warn
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
if
(
suppressWarnings
())
return
;
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixWarning
,
args
);
va_end
(
args
);
}
void
C_DECL
TParseContextBase
::
ppError
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixError
,
args
);
va_end
(
args
);
if
((
messages
&
EShMsgCascadingErrors
)
==
0
)
currentScanner
->
setEndOfInput
();
}
void
C_DECL
TParseContextBase
::
ppWarn
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixWarning
,
args
);
va_end
(
args
);
}
// Select the best matching function for 'call' from 'candidateList'.
// Select the best matching function for 'call' from 'candidateList'.
//
//
// Assumptions
// Assumptions
...
@@ -235,7 +306,6 @@ bool TParseContextBase::insertGlobalUniformBlock()
...
@@ -235,7 +306,6 @@ bool TParseContextBase::insertGlobalUniformBlock()
}
}
return
inserted
;
return
inserted
;
}
}
}
// end namespace glslang
}
// end namespace glslang
glslang/MachineIndependent/ParseHelper.cpp
View file @
a2a5dd47
...
@@ -39,7 +39,6 @@
...
@@ -39,7 +39,6 @@
#include "Scan.h"
#include "Scan.h"
#include "../OSDependent/osinclude.h"
#include "../OSDependent/osinclude.h"
#include <cstdarg>
#include <algorithm>
#include <algorithm>
#include "preprocessor/PpContext.h"
#include "preprocessor/PpContext.h"
...
@@ -362,81 +361,6 @@ bool TParseContext::parseVectorFields(const TSourceLoc& loc, const TString& comp
...
@@ -362,81 +361,6 @@ bool TParseContext::parseVectorFields(const TSourceLoc& loc, const TString& comp
return
true
;
return
true
;
}
}
///////////////////////////////////////////////////////////////////////
//
// Errors
//
////////////////////////////////////////////////////////////////////////
//
// Used to output syntax, parsing, and semantic errors.
//
void
TParseContext
::
outputMessage
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
TPrefixType
prefix
,
va_list
args
)
{
const
int
maxSize
=
MaxTokenLength
+
200
;
char
szExtraInfo
[
maxSize
];
safe_vsprintf
(
szExtraInfo
,
maxSize
,
szExtraInfoFormat
,
args
);
infoSink
.
info
.
prefix
(
prefix
);
infoSink
.
info
.
location
(
loc
);
infoSink
.
info
<<
"'"
<<
szToken
<<
"' : "
<<
szReason
<<
" "
<<
szExtraInfo
<<
"
\n
"
;
if
(
prefix
==
EPrefixError
)
{
++
numErrors
;
}
}
void
C_DECL
TParseContext
::
error
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
if
(
messages
&
EShMsgOnlyPreprocessor
)
return
;
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixError
,
args
);
va_end
(
args
);
if
((
messages
&
EShMsgCascadingErrors
)
==
0
)
currentScanner
->
setEndOfInput
();
}
void
C_DECL
TParseContext
::
warn
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
if
(
suppressWarnings
())
return
;
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixWarning
,
args
);
va_end
(
args
);
}
void
C_DECL
TParseContext
::
ppError
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixError
,
args
);
va_end
(
args
);
if
((
messages
&
EShMsgCascadingErrors
)
==
0
)
currentScanner
->
setEndOfInput
();
}
void
C_DECL
TParseContext
::
ppWarn
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixWarning
,
args
);
va_end
(
args
);
}
//
//
// Handle seeing a variable identifier in the grammar.
// Handle seeing a variable identifier in the grammar.
//
//
...
...
glslang/MachineIndependent/ParseHelper.h
View file @
a2a5dd47
...
@@ -82,8 +82,17 @@ public:
...
@@ -82,8 +82,17 @@ public:
globalUniformBlock
(
nullptr
)
{
}
globalUniformBlock
(
nullptr
)
{
}
virtual
~
TParseContextBase
()
{
}
virtual
~
TParseContextBase
()
{
}
void
C_DECL
error
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
C_DECL
warn
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
C_DECL
ppError
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
C_DECL
ppWarn
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
virtual
void
setLimits
(
const
TBuiltInResource
&
)
=
0
;
virtual
void
setLimits
(
const
TBuiltInResource
&
)
=
0
;
EShLanguage
getLanguage
()
const
{
return
language
;
}
EShLanguage
getLanguage
()
const
{
return
language
;
}
TIntermAggregate
*&
getLinkage
()
{
return
linkage
;
}
TIntermAggregate
*&
getLinkage
()
{
return
linkage
;
}
void
setScanContext
(
TScanContext
*
c
)
{
scanContext
=
c
;
}
void
setScanContext
(
TScanContext
*
c
)
{
scanContext
=
c
;
}
...
@@ -162,6 +171,9 @@ protected:
...
@@ -162,6 +171,9 @@ protected:
// override this to set the language-specific name
// override this to set the language-specific name
virtual
const
char
*
getGlobalUniformBlockName
()
{
return
""
;
}
virtual
const
char
*
getGlobalUniformBlockName
()
{
return
""
;
}
virtual
void
finalizeGlobalUniformBlockLayout
(
TVariable
&
)
{
}
virtual
void
finalizeGlobalUniformBlockLayout
(
TVariable
&
)
{
}
void
outputMessage
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
TPrefixType
prefix
,
va_list
args
);
};
};
//
//
...
@@ -216,15 +228,6 @@ public:
...
@@ -216,15 +228,6 @@ public:
bool
parseShaderStrings
(
TPpContext
&
,
TInputScanner
&
input
,
bool
versionWillBeError
=
false
);
bool
parseShaderStrings
(
TPpContext
&
,
TInputScanner
&
input
,
bool
versionWillBeError
=
false
);
void
parserError
(
const
char
*
s
);
// for bison's yyerror
void
parserError
(
const
char
*
s
);
// for bison's yyerror
void
C_DECL
error
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
C_DECL
warn
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
C_DECL
ppError
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
C_DECL
ppWarn
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
reservedErrorCheck
(
const
TSourceLoc
&
,
const
TString
&
);
void
reservedErrorCheck
(
const
TSourceLoc
&
,
const
TString
&
);
void
reservedPpErrorCheck
(
const
TSourceLoc
&
,
const
char
*
name
,
const
char
*
op
);
void
reservedPpErrorCheck
(
const
TSourceLoc
&
,
const
char
*
name
,
const
char
*
op
);
bool
lineContinuationCheck
(
const
TSourceLoc
&
,
bool
endOfComment
);
bool
lineContinuationCheck
(
const
TSourceLoc
&
,
bool
endOfComment
);
...
@@ -366,9 +369,6 @@ protected:
...
@@ -366,9 +369,6 @@ protected:
TIntermNode
*
executeInitializer
(
const
TSourceLoc
&
,
TIntermTyped
*
initializer
,
TVariable
*
variable
);
TIntermNode
*
executeInitializer
(
const
TSourceLoc
&
,
TIntermTyped
*
initializer
,
TVariable
*
variable
);
TIntermTyped
*
convertInitializerList
(
const
TSourceLoc
&
,
const
TType
&
,
TIntermTyped
*
initializer
);
TIntermTyped
*
convertInitializerList
(
const
TSourceLoc
&
,
const
TType
&
,
TIntermTyped
*
initializer
);
void
finalErrorCheck
();
void
finalErrorCheck
();
void
outputMessage
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
TPrefixType
prefix
,
va_list
args
);
public
:
public
:
//
//
...
...
gtests/TestFixture.cpp
View file @
a2a5dd47
...
@@ -74,7 +74,7 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target)
...
@@ -74,7 +74,7 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target)
case
Source
:
:
GLSL
:
case
Source
:
:
GLSL
:
break
;
break
;
case
Source
:
:
HLSL
:
case
Source
:
:
HLSL
:
result
=
EShMsgReadHlsl
;
result
=
static_cast
<
EShMessages
>
(
result
|
EShMsgReadHlsl
)
;
break
;
break
;
}
}
...
...
hlsl/hlslParseHelper.cpp
View file @
a2a5dd47
...
@@ -43,7 +43,6 @@
...
@@ -43,7 +43,6 @@
#include "../glslang/OSDependent/osinclude.h"
#include "../glslang/OSDependent/osinclude.h"
#include <cstdarg>
#include <algorithm>
#include <algorithm>
namespace
glslang
{
namespace
glslang
{
...
@@ -235,69 +234,6 @@ bool HlslParseContext::parseVectorFields(const TSourceLoc& loc, const TString& c
...
@@ -235,69 +234,6 @@ bool HlslParseContext::parseVectorFields(const TSourceLoc& loc, const TString& c
}
}
//
//
// Used to output syntax, parsing, and semantic errors.
//
void
HlslParseContext
::
outputMessage
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
TPrefixType
prefix
,
va_list
args
)
{
const
int
maxSize
=
MaxTokenLength
+
200
;
char
szExtraInfo
[
maxSize
];
safe_vsprintf
(
szExtraInfo
,
maxSize
,
szExtraInfoFormat
,
args
);
infoSink
.
info
.
prefix
(
prefix
);
infoSink
.
info
.
location
(
loc
);
infoSink
.
info
<<
"'"
<<
szToken
<<
"' : "
<<
szReason
<<
" "
<<
szExtraInfo
<<
"
\n
"
;
if
(
prefix
==
EPrefixError
)
{
++
numErrors
;
}
}
void
C_DECL
HlslParseContext
::
error
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
if
(
messages
&
EShMsgOnlyPreprocessor
)
return
;
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixError
,
args
);
va_end
(
args
);
}
void
C_DECL
HlslParseContext
::
warn
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
if
(
suppressWarnings
())
return
;
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixWarning
,
args
);
va_end
(
args
);
}
void
C_DECL
HlslParseContext
::
ppError
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixError
,
args
);
va_end
(
args
);
}
void
C_DECL
HlslParseContext
::
ppWarn
(
const
TSourceLoc
&
loc
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...)
{
va_list
args
;
va_start
(
args
,
szExtraInfoFormat
);
outputMessage
(
loc
,
szReason
,
szToken
,
szExtraInfoFormat
,
EPrefixWarning
,
args
);
va_end
(
args
);
}
//
// Handle seeing a variable identifier in the grammar.
// Handle seeing a variable identifier in the grammar.
//
//
TIntermTyped
*
HlslParseContext
::
handleVariable
(
const
TSourceLoc
&
loc
,
TSymbol
*
symbol
,
const
TString
*
string
)
TIntermTyped
*
HlslParseContext
::
handleVariable
(
const
TSourceLoc
&
loc
,
TSymbol
*
symbol
,
const
TString
*
string
)
...
...
hlsl/hlslParseHelper.h
View file @
a2a5dd47
...
@@ -53,15 +53,6 @@ public:
...
@@ -53,15 +53,6 @@ public:
bool
parseShaderStrings
(
TPpContext
&
,
TInputScanner
&
input
,
bool
versionWillBeError
=
false
);
bool
parseShaderStrings
(
TPpContext
&
,
TInputScanner
&
input
,
bool
versionWillBeError
=
false
);
virtual
const
char
*
getGlobalUniformBlockName
()
{
return
"$Global"
;
}
virtual
const
char
*
getGlobalUniformBlockName
()
{
return
"$Global"
;
}
void
C_DECL
error
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
C_DECL
warn
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
C_DECL
ppError
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
C_DECL
ppWarn
(
const
TSourceLoc
&
,
const
char
*
szReason
,
const
char
*
szToken
,
const
char
*
szExtraInfoFormat
,
...);
void
reservedPpErrorCheck
(
const
TSourceLoc
&
,
const
char
*
/*name*/
,
const
char
*
/*op*/
)
{
}
void
reservedPpErrorCheck
(
const
TSourceLoc
&
,
const
char
*
/*name*/
,
const
char
*
/*op*/
)
{
}
bool
lineContinuationCheck
(
const
TSourceLoc
&
,
bool
/*endOfComment*/
)
{
return
true
;
}
bool
lineContinuationCheck
(
const
TSourceLoc
&
,
bool
/*endOfComment*/
)
{
return
true
;
}
bool
lineDirectiveShouldSetNextLine
()
const
{
return
true
;
}
bool
lineDirectiveShouldSetNextLine
()
const
{
return
true
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment