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
65
66
67
68
69
|
// file : build2/test/script/token -*- C++ -*-
// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
#ifndef BUILD2_TEST_SCRIPT_TOKEN
#define BUILD2_TEST_SCRIPT_TOKEN
#include <build2/types>
#include <build2/utility>
#include <build2/token>
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, // ;
plus, // +
minus, // -
pipe, // |
clean_always, // &
clean_maybe, // &?
clean_never, // &!
log_and, // &&
log_or, // ||
in_pass, // <+
in_null, // <-
in_str, // <
in_str_nn, // <:
in_doc, // <<
in_doc_nn, // <<:
in_file, // <<<
out_pass, // >+
out_null, // >-
out_merge, // >&
out_str, // >
out_str_nn, // >:
out_doc, // >>
out_doc_nn, // >>:
out_file, // >>>
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 // BUILD2_TEST_SCRIPT_TOKEN
|