24 #ifndef PXR_USD_SDF_PATH_EXPRESSION_H
25 #define PXR_USD_SDF_PATH_EXPRESSION_H
90 bool IsStretch()
const {
91 return predicateIndex == -1 && text.empty();
94 int predicateIndex = -1;
95 bool isLiteral =
false;
142 return std::move(_prefix);
151 void SetPrefix(
SdfPath const &p) {
159 std::vector<Component>
const &GetComponents()
const & {
163 std::vector<Component> GetComponents() && {
167 std::vector<SdfPredicateExpression>
const &
168 GetPredicateExprs()
const & {
172 std::vector<SdfPredicateExpression>
173 GetPredicateExprs() && {
177 bool IsProperty()
const {
182 explicit operator bool()
const {
183 return !_prefix.IsEmpty();
188 std::vector<Component> _components;
189 std::vector<SdfPredicateExpression> _predExprs;
198 class ExpressionReference {
264 MakeAtom(ExpressionReference &&
ref);
268 MakeAtom(ExpressionReference
const &
ref) {
269 return MakeAtom(ExpressionReference(ref));
275 MakeAtom(PathPattern &&
pattern);
279 MakeAtom(PathPattern
const &
pattern) {
280 return MakeAtom(PathPattern(pattern));
324 ReplacePrefix(
SdfPath const &oldPrefix,
325 SdfPath const &newPrefix)
const & {
333 ReplacePrefix(
SdfPath const &oldPrefix,
340 bool IsAbsolute()
const;
345 MakeAbsolute(
SdfPath const &anchor)
const & {
353 MakeAbsolute(
SdfPath const &anchor) &&;
357 bool ContainsExpressionReferences()
const {
358 return !_refs.empty();
370 ExpressionReference
const &)> resolve)
const & {
379 ExpressionReference
const &)> resolve) &&;
406 bool IsComplete()
const {
407 return !ContainsExpressionReferences() && IsAbsolute();
416 bool IsEmpty()
const {
421 explicit operator bool()
const {
433 std::vector<Op> _ops;
434 std::vector<ExpressionReference> _refs;
435 std::vector<PathPattern> _patterns;
445 #endif // PXR_USD_SDF_PATH_EXPRESSION_H
GLsizei const GLchar *const * string
GLsizei const GLchar *const * path
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE