mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-22 23:27:30 +09:00
1336783 - Part 3 - Use simpler macro to avoid internal compiler error on SM-tc(H).
This commit is contained in:
parent
9be68cbc6e
commit
f2c29cbe59
1 changed files with 7 additions and 4 deletions
|
|
@ -63,24 +63,27 @@ using BindingIter = ParseContext::Scope::BindingIter;
|
||||||
using UsedNamePtr = UsedNameTracker::UsedNameMap::Ptr;
|
using UsedNamePtr = UsedNameTracker::UsedNameMap::Ptr;
|
||||||
|
|
||||||
// Read a token. Report an error and return null() if that token doesn't match
|
// Read a token. Report an error and return null() if that token doesn't match
|
||||||
// to the given func's condition.
|
// to the condition. Do not use MUST_MATCH_TOKEN_INTERNAL directly.
|
||||||
#define MUST_MATCH_TOKEN_FUNC_MOD(func, modifier, errorNumber) \
|
#define MUST_MATCH_TOKEN_INTERNAL(cond, modifier, errorNumber) \
|
||||||
JS_BEGIN_MACRO \
|
JS_BEGIN_MACRO \
|
||||||
TokenKind token; \
|
TokenKind token; \
|
||||||
if (!tokenStream.getToken(&token, modifier)) \
|
if (!tokenStream.getToken(&token, modifier)) \
|
||||||
return null(); \
|
return null(); \
|
||||||
if (!(func)(token)) { \
|
if (!(cond)) { \
|
||||||
error(errorNumber); \
|
error(errorNumber); \
|
||||||
return null(); \
|
return null(); \
|
||||||
} \
|
} \
|
||||||
JS_END_MACRO
|
JS_END_MACRO
|
||||||
|
|
||||||
#define MUST_MATCH_TOKEN_MOD(tt, modifier, errorNumber) \
|
#define MUST_MATCH_TOKEN_MOD(tt, modifier, errorNumber) \
|
||||||
MUST_MATCH_TOKEN_FUNC_MOD([](TokenKind tok) { return tok == tt; }, modifier, errorNumber)
|
MUST_MATCH_TOKEN_INTERNAL(token == tt, modifier, errorNumber)
|
||||||
|
|
||||||
#define MUST_MATCH_TOKEN(tt, errorNumber) \
|
#define MUST_MATCH_TOKEN(tt, errorNumber) \
|
||||||
MUST_MATCH_TOKEN_MOD(tt, TokenStream::None, errorNumber)
|
MUST_MATCH_TOKEN_MOD(tt, TokenStream::None, errorNumber)
|
||||||
|
|
||||||
|
#define MUST_MATCH_TOKEN_FUNC_MOD(func, modifier, errorNumber) \
|
||||||
|
MUST_MATCH_TOKEN_INTERNAL((func)(token), modifier, errorNumber)
|
||||||
|
|
||||||
#define MUST_MATCH_TOKEN_FUNC(func, errorNumber) \
|
#define MUST_MATCH_TOKEN_FUNC(func, errorNumber) \
|
||||||
MUST_MATCH_TOKEN_FUNC_MOD(func, TokenStream::None, errorNumber)
|
MUST_MATCH_TOKEN_FUNC_MOD(func, TokenStream::None, errorNumber)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue