Menu

[94f52a]: / parser / sequence.hpp  Maximize  Restore  History

Download this file

38 lines (29 with data), 867 Bytes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef CHILON_PARSER_SEQUENCE_HPP
#define CHILON_PARSER_SEQUENCE_HPP
#include <chilon/parser/detail/sequence.hpp>
#include <chilon/parser/empty_string.hpp>
namespace chilon { namespace parser {
/**
* Sequence in language (optional whitespace allowed between elements).
*/
template <class... T>
struct sequence {
template <class Stream>
inline static bool skip(Stream& stream) {
return parse<sequence>::skip(stream);
}
};
template <class T>
struct sequence<T> : T {};
/**
* Sequence uses internal parse_sequence function, parsing true as the first
* argument to it to indicate whitespace is to be skipped.
*/
template <class... T>
struct parse< sequence<T...> > : detail::parse_sequence<true, T...> {};
template <class T>
struct parse< sequence<T> > : parse<T> {};
template <>
struct parse< sequence<> > : empty_string {};
} }
#endif
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.