in reply to Re: C-like structures parsing and validation
in thread C-like structures parsing and validation
This is nice! However, the module restricts one to use only constants as array indices, required to calculate offsets, etc. So it will not handle more complicated expressions:
use Convert::Binary::C; use 5.010; my $structs = <<EOT; struct vertex { int id; double lon; double lat; }; struct arc { struct vertex from; struct vertex to; double cost; }; struct graph { struct vertex v[]; struct arc a[]; }; EOT $c = Convert::Binary::C->new; $c->parse($structs); # now we can validate say $c->typeof("graph"); # says "struct graph" say $c->typeof("graph.v[0].id"); # says "int" say $c->typeof("graph.v[graph.v[0].id].id"); # error: Array indices m +ust be constant decimal values
|
|---|