summaryrefslogtreecommitdiff
path: root/src/syntax.zig
blob: 44aee06f8fd445cdac923a9731a4cc21ad8d21f2 (plain)
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
pub const FileSpec = union(enum) {
    Con,
    Lpt1,
    Lpt2,
    Lpt3,
    Prn,
    Path: []const u8,
};

pub const RedirectType = enum {
    OutputOverwrite, // >
    OutputAppend, // >>
    InputFrom, // <
};

pub const Redirect = struct {
    redirect_type: RedirectType,
    target: FileSpec,
};

pub const Token = union(enum) {
    Word: []const u8,
    Pipe,
    RedirectOut, // >
    RedirectAppend, // >>
    RedirectIn, // <
    Newline,
    Eof,
};