Lines Matching refs:l
75 static const char* eatIdent(const char* l, const char* end) { in eatIdent() argument
76 if (!(l < end && isIdentStart(*l++))) return nullptr; in eatIdent()
77 while (l < end && isIdentBody(*l)) l++; in eatIdent()
78 return l; in eatIdent()
82 static const char* eatPackage(const char* l, const char* end) { in eatPackage() argument
83 if ((l = eatIdent(l, end)) == nullptr) return nullptr; in eatPackage()
85 while (l < end && *l == '.') { in eatPackage()
86 l++; in eatPackage()
87 if ((l = eatIdent(l, end)) == nullptr) return nullptr; in eatPackage()
89 return l; in eatPackage()
93 static const char* eatNumber(const char* l, const char* end) { in eatNumber() argument
94 if (!(l < end)) return nullptr; in eatNumber()
95 if (*l == '0') return l + 1; in eatNumber()
96 if (!isLeadingDigit(*l++)) return nullptr; in eatNumber()
97 while (l < end && isDigit(*l)) l++; in eatNumber()
98 return l; in eatNumber()
106 const char* l = s.c_str(); in setTo() local
107 const char* end = l + s.size(); in setTo()
125 if (l < end && isIdentStart(*l)) { in setTo()
126 package.start = l; in setTo()
127 if ((package.end = l = eatPackage(l, end)) == nullptr) return false; in setTo()
129 if (l < end && *l == '@') { in setTo()
130 l++; in setTo()
132 major.start = l; in setTo()
133 if ((major.end = l = eatNumber(l, end)) == nullptr) return false; in setTo()
135 if (!(l < end && *l++ == '.')) return false; in setTo()
137 minor.start = l; in setTo()
138 if ((minor.end = l = eatNumber(l, end)) == nullptr) return false; in setTo()
140 if (l < end && *l == ':') { in setTo()
141 l++; in setTo()
142 if (l < end && *l == ':') { in setTo()
143 l++; in setTo()
144 name.start = l; in setTo()
145 if ((name.end = l = eatPackage(l, end)) == nullptr) return false; in setTo()
151 if (l < end) return false; in setTo()