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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
// file : libbuild2/test/script/token.hxx -*- C++ -*-
// license : MIT; see accompanying LICENSE file
#ifndef LIBBUILD2_TEST_SCRIPT_TOKEN_HXX
#define LIBBUILD2_TEST_SCRIPT_TOKEN_HXX
#include <libbuild2/types.hxx>
#include <libbuild2/utility.hxx>
#include <libbuild2/token.hxx>
namespace build2
{
namespace test
{
namespace script
{
struct token_type: build2::token_type
{
using base_type = build2::token_type;
enum
{
// NOTE: remember to update token_printer()!
semi = base_type::value_next, // ;
dot, // .
plus, // +
minus, // -
pipe, // |
clean, // &{?!} (modifiers in value)
in_pass, // <|
in_null, // <-
in_str, // <{:} (modifiers in value)
in_doc, // <<{:} (modifiers in value)
in_file, // <<<
out_pass, // >|
out_null, // >-
out_trace, // >!
out_merge, // >&
out_str, // >{:~} (modifiers in value)
out_doc, // >>{:~} (modifiers in value)
out_file_cmp, // >>>
out_file_ovr, // >=
out_file_app // >+
};
token_type () = default;
token_type (value_type v): base_type (v) {}
token_type (base_type v): base_type (v) {}
};
void
token_printer (ostream&, const token&, bool);
}
}
}
#endif // LIBBUILD2_TEST_SCRIPT_TOKEN_HXX
|