This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add Michael Fig to AUTHORS
[perl5.git] / dquote_static.c
1 /*    dquote_static.c
2  *
3  * This file contains static inline functions that are related to
4  * parsing double-quotish expressions, but are used in more than
5  * one file.
6  *
7  * It is currently #included by regcomp.c and toke.c.
8 */
9
10 /*
11  - regcurly - a little FSA that accepts {\d+,?\d*}
12     Pulled from regcomp.c.
13  */
14
15 /* embed.pl doesn't yet know how to handle static inline functions, so
16    manually decorate it here with gcc-style attributes.
17 */
18 PERL_STATIC_INLINE I32
19 regcurly(register const char *s)
20     __attribute__warn_unused_result__
21     __attribute__pure__
22     __attribute__nonnull__(1);
23
24 PERL_STATIC_INLINE I32
25 regcurly(register const char *s)
26 {
27     assert(s);
28
29     if (*s++ != '{')
30         return FALSE;
31     if (!isDIGIT(*s))
32         return FALSE;
33     while (isDIGIT(*s))
34         s++;
35     if (*s == ',') {
36         s++;
37         while (isDIGIT(*s))
38             s++;
39     }
40     if (*s != '}')
41         return FALSE;
42     return TRUE;
43 }
44 /*
45  * Local variables:
46  * c-indentation-style: bsd
47  * c-basic-offset: 4
48  * indent-tabs-mode: t
49  * End:
50  *
51  * ex: set ts=8 sts=4 sw=4 noet:
52  */