@@ -158,32 +158,32 @@ TYPE_PARSER(sourced(construct<OmpDirectiveSpecification>(
158158
159159// --- Parsers for context traits -------------------------------------
160160
161- TYPE_PARSER(construct<OmpTraitPropertyName>( //
161+ TYPE_PARSER(sourced( construct<OmpTraitPropertyName>( //
162162 (space >> charLiteralConstantWithoutKind) ||
163- applyMem(&Name::ToString, Parser<Name>{})))
163+ applyMem(&Name::ToString, Parser<Name>{}))))
164164
165- TYPE_PARSER(construct<OmpTraitScore>( //
166- "SCORE" >> parenthesized(scalarIntExpr)))
165+ TYPE_PARSER(sourced( construct<OmpTraitScore>( //
166+ "SCORE" >> parenthesized(scalarIntExpr))))
167167
168- TYPE_PARSER(construct<OmpTraitPropertyExtension::ExtensionValue>(
168+ TYPE_PARSER(sourced( construct<OmpTraitPropertyExtension::ExtensionValue>(
169169 // Parse nested extension first.
170170 construct<OmpTraitPropertyExtension::ExtensionValue>(
171171 indirect(Parser<OmpTraitPropertyExtension>{})) ||
172172 construct<OmpTraitPropertyExtension::ExtensionValue>(
173173 Parser<OmpTraitPropertyName>{}) ||
174- construct<OmpTraitPropertyExtension::ExtensionValue>(scalarExpr)))
174+ construct<OmpTraitPropertyExtension::ExtensionValue>(scalarExpr))))
175175
176- TYPE_PARSER(construct<OmpTraitPropertyExtension>( //
176+ TYPE_PARSER(sourced( construct<OmpTraitPropertyExtension>( //
177177 Parser<OmpTraitPropertyName>{},
178178 parenthesized(nonemptySeparated(
179- Parser<OmpTraitPropertyExtension::ExtensionValue>{}, ","_tok))))
179+ Parser<OmpTraitPropertyExtension::ExtensionValue>{}, ","_tok)))))
180180
181- TYPE_PARSER(construct<OmpTraitProperty>(
182- // Try extension first, before OmpTraitPropertyName.
181+ TYPE_PARSER(sourced(construct<OmpTraitProperty>(
182+ // Try clause first, then extension before OmpTraitPropertyName.
183+ construct<OmpTraitProperty>(indirect(Parser<OmpClause>{})) ||
183184 construct<OmpTraitProperty>(Parser<OmpTraitPropertyExtension>{}) ||
184185 construct<OmpTraitProperty>(Parser<OmpTraitPropertyName>{}) ||
185- construct<OmpTraitProperty>(indirect(Parser<OmpClause>{})) ||
186- construct<OmpTraitProperty>(scalarExpr)))
186+ construct<OmpTraitProperty>(scalarExpr))))
187187
188188TYPE_PARSER(construct<OmpTraitSelectorName::Value>(
189189 "ARCH" >> pure(OmpTraitSelectorName::Value::Arch) ||
@@ -199,18 +199,18 @@ TYPE_PARSER(construct<OmpTraitSelectorName::Value>(
199199 "UID" >> pure(OmpTraitSelectorName::Value::Uid) ||
200200 "VENDOR" >> pure(OmpTraitSelectorName::Value::Vendor)))
201201
202- TYPE_PARSER(construct<OmpTraitSelectorName>(
202+ TYPE_PARSER(sourced( construct<OmpTraitSelectorName>(
203203 // Parse predefined names first (because of SIMD).
204204 construct<OmpTraitSelectorName>(Parser<OmpTraitSelectorName::Value>{}) ||
205- construct<OmpTraitSelectorName>(OmpDirectiveNameParser{})))
205+ construct<OmpTraitSelectorName>(OmpDirectiveNameParser{}))))
206206
207207TYPE_PARSER(construct<OmpTraitSelector::Properties>(
208208 maybe(Parser<OmpTraitScore>{} / ":"_tok),
209209 nonemptySeparated(Parser<OmpTraitProperty>{}, ","_tok)))
210210
211- TYPE_PARSER(construct<OmpTraitSelector>( //
211+ TYPE_PARSER(sourced( construct<OmpTraitSelector>( //
212212 Parser<OmpTraitSelectorName>{}, //
213- maybe(parenthesized(Parser<OmpTraitSelector::Properties>{}))))
213+ maybe(parenthesized(Parser<OmpTraitSelector::Properties>{})))))
214214
215215TYPE_PARSER(construct<OmpTraitSetSelectorName::Value>(
216216 "CONSTRUCT" >> pure(OmpTraitSetSelectorName::Value::Construct) ||
@@ -219,15 +219,15 @@ TYPE_PARSER(construct<OmpTraitSetSelectorName::Value>(
219219 "TARGET_DEVICE" >> pure(OmpTraitSetSelectorName::Value::Target_Device) ||
220220 "USER" >> pure(OmpTraitSetSelectorName::Value::User)))
221221
222- TYPE_PARSER(construct<OmpTraitSetSelectorName>(
223- Parser<OmpTraitSetSelectorName::Value>{}))
222+ TYPE_PARSER(sourced( construct<OmpTraitSetSelectorName>(
223+ Parser<OmpTraitSetSelectorName::Value>{})))
224224
225- TYPE_PARSER(construct<OmpTraitSetSelector>( //
225+ TYPE_PARSER(sourced( construct<OmpTraitSetSelector>( //
226226 Parser<OmpTraitSetSelectorName>{},
227- "=" >> braced(nonemptySeparated(Parser<OmpTraitSelector>{}, ","_tok))))
227+ "=" >> braced(nonemptySeparated(Parser<OmpTraitSelector>{}, ","_tok)))))
228228
229- TYPE_PARSER(construct<OmpContextSelectorSpecification>(
230- nonemptySeparated(Parser<OmpTraitSetSelector>{}, ","_tok)))
229+ TYPE_PARSER(sourced( construct<OmpContextSelectorSpecification>(
230+ nonemptySeparated(Parser<OmpTraitSetSelector>{}, ","_tok))))
231231
232232// Parser<OmpContextSelector> == Parser<traits::OmpContextSelectorSpecification>
233233
0 commit comments