grammar beautification
This commit is contained in:
parent
2ff51ab9c3
commit
2db9cd23c8
1 changed files with 44 additions and 44 deletions
|
|
@ -287,7 +287,7 @@ void set_rr(struct dns_rr rr, HCountedArray *rdata) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const HParsedToken* act_dns_message(const HParseResult *p) {
|
const HParsedToken* act_message(const HParseResult *p) {
|
||||||
h_pprint(stdout, p->ast, 0, 2);
|
h_pprint(stdout, p->ast, 0, 2);
|
||||||
HParsedToken *ret = h_arena_malloc(p->arena, sizeof(HParsedToken));
|
HParsedToken *ret = h_arena_malloc(p->arena, sizeof(HParsedToken));
|
||||||
ret->token_type = TT_DNS_MESSAGE;
|
ret->token_type = TT_DNS_MESSAGE;
|
||||||
|
|
@ -370,58 +370,58 @@ const HParsedToken *act_ignore(const HParseResult *p)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define act_dns_hdzero act_ignore
|
#define act_hdzero act_ignore
|
||||||
|
|
||||||
const HParser* init_parser() {
|
const HParser* init_parser() {
|
||||||
static const HParser *ret = NULL;
|
static const HParser *ret = NULL;
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
H_RULE (domain, init_domain());
|
H_RULE (domain, init_domain());
|
||||||
H_ARULE(dns_hdzero, h_attr_bool(h_bits(3, false), is_zero));
|
H_ARULE(hdzero, h_attr_bool(h_bits(3, false), is_zero));
|
||||||
H_RULE (dns_header, h_sequence(h_bits(16, false), // ID
|
H_RULE (header, h_sequence(h_bits(16, false), // ID
|
||||||
h_bits(1, false), // QR
|
h_bits(1, false), // QR
|
||||||
h_bits(4, false), // opcode
|
h_bits(4, false), // opcode
|
||||||
h_bits(1, false), // AA
|
h_bits(1, false), // AA
|
||||||
h_bits(1, false), // TC
|
h_bits(1, false), // TC
|
||||||
h_bits(1, false), // RD
|
h_bits(1, false), // RD
|
||||||
h_bits(1, false), // RA
|
h_bits(1, false), // RA
|
||||||
dns_hdzero, // Z
|
hdzero, // Z
|
||||||
h_bits(4, false), // RCODE
|
h_bits(4, false), // RCODE
|
||||||
h_uint16(), // QDCOUNT
|
h_uint16(), // QDCOUNT
|
||||||
h_uint16(), // ANCOUNT
|
h_uint16(), // ANCOUNT
|
||||||
h_uint16(), // NSCOUNT
|
h_uint16(), // NSCOUNT
|
||||||
h_uint16(), // ARCOUNT
|
h_uint16(), // ARCOUNT
|
||||||
NULL));
|
|
||||||
H_RULE (type, h_int_range(h_uint16(), 1, 16));
|
|
||||||
H_RULE (qtype, h_choice(type,
|
|
||||||
h_int_range(h_uint16(), 252, 255),
|
|
||||||
NULL));
|
NULL));
|
||||||
H_RULE (class, h_int_range(h_uint16(), 1, 4));
|
H_RULE (type, h_int_range(h_uint16(), 1, 16));
|
||||||
H_RULE (qclass, h_choice(class,
|
H_RULE (qtype, h_choice(type,
|
||||||
h_int_range(h_uint16(), 255, 255),
|
h_int_range(h_uint16(), 252, 255),
|
||||||
|
NULL));
|
||||||
|
H_RULE (class, h_int_range(h_uint16(), 1, 4));
|
||||||
|
H_RULE (qclass, h_choice(class,
|
||||||
|
h_int_range(h_uint16(), 255, 255),
|
||||||
|
NULL));
|
||||||
|
H_RULE (len, h_int_range(h_uint8(), 1, 255));
|
||||||
|
H_RULE (label, h_length_value(len, h_uint8()));
|
||||||
|
H_RULE (qname, h_sequence(h_many1(label),
|
||||||
|
h_ch('\x00'),
|
||||||
NULL));
|
NULL));
|
||||||
H_RULE (dns_question, h_sequence(h_sequence(h_many1(h_length_value(h_int_range(h_uint8(), 1, 255),
|
H_RULE (question, h_sequence(qname, qtype, qclass, NULL));
|
||||||
h_uint8())),
|
H_RULE (rdata, h_length_value(h_uint16(), h_uint8()));
|
||||||
h_ch('\x00'),
|
H_RULE (rr, h_sequence(domain, // NAME
|
||||||
NULL), // QNAME
|
type, // TYPE
|
||||||
qtype, // QTYPE
|
class, // CLASS
|
||||||
qclass, // QCLASS
|
h_uint32(), // TTL
|
||||||
NULL));
|
rdata, // RDLENGTH+RDATA
|
||||||
H_RULE (dns_rr, h_sequence(domain, // NAME
|
NULL));
|
||||||
type, // TYPE
|
H_ARULE(message, h_attr_bool(h_sequence(header,
|
||||||
class, // CLASS
|
h_many(question),
|
||||||
h_uint32(), // TTL
|
h_many(rr),
|
||||||
h_length_value(h_uint16(), h_uint8()), // RDLENGTH+RDATA
|
h_end_p(),
|
||||||
NULL));
|
NULL),
|
||||||
H_ARULE(dns_message, h_attr_bool(h_sequence(dns_header,
|
validate_dns));
|
||||||
h_many(dns_question),
|
|
||||||
h_many(dns_rr),
|
|
||||||
h_end_p(),
|
|
||||||
NULL),
|
|
||||||
validate_dns));
|
|
||||||
|
|
||||||
ret = dns_message;
|
ret = message;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue