48 lines
776 B
Rust
48 lines
776 B
Rust
|
tag signedness {
|
||
|
signed;
|
||
|
unsigned;
|
||
|
}
|
||
|
|
||
|
tag caseness {
|
||
|
case_upper;
|
||
|
case_lower;
|
||
|
}
|
||
|
|
||
|
tag ty {
|
||
|
ty_bool;
|
||
|
ty_str;
|
||
|
ty_char;
|
||
|
ty_int(signedness);
|
||
|
ty_bits;
|
||
|
ty_hex(caseness);
|
||
|
// FIXME: More types
|
||
|
}
|
||
|
|
||
|
tag flag {
|
||
|
flag_left_justify;
|
||
|
flag_left_zero_pad;
|
||
|
flag_left_space_pad;
|
||
|
flag_plus_if_positive;
|
||
|
flag_alternate;
|
||
|
}
|
||
|
|
||
|
tag count {
|
||
|
count_is(int);
|
||
|
count_is_param(int);
|
||
|
count_is_next_param;
|
||
|
count_implied;
|
||
|
}
|
||
|
|
||
|
// A formatted conversion from an expression to a string
|
||
|
type conv = rec(option.t[int] param,
|
||
|
vec[flag] flags,
|
||
|
count width,
|
||
|
count precision,
|
||
|
ty ty);
|
||
|
|
||
|
// A fragment of the output sequence
|
||
|
tag piece {
|
||
|
piece_string(str);
|
||
|
piece_conv(conv);
|
||
|
}
|