Hi! On Tue, Apr 27, 2021 at 10:32:42AM -0500, Bill Schmidt via Gcc-patches wrote: > +enum void_status {
The { goes on a new line, in our coding style. > +struct typeinfo { The same is true in structs (but that is violated in some places). > + char isvoid; bool? I'm not asking you to change it, but, is there a reason to use an integer type? > + int val1; > + int val2; Lol :-) Oh the suspense! > +/* Match one of the allowable base types. Consumes one token unless the > + token is "long", which must be paired with a second "long". Optionally > + consumes a following '*' token for pointers. Return 1 for success, > + 0 for failure. */ > +static int > +match_basetype (typeinfo *typedata) > +{ > + return 1; > +} This will be implemented later? > +/* A const int argument may be restricted to certain values. This is > + indicated by one of the following occurring after the "int' token: > + > + <x> restricts the constant to x bits, interpreted as unsigned > + <x,y> restricts the constant to the inclusive range [x,y] > + [x,y] restricts the constant to the inclusive range [x,y], > + but only applies if the argument is constant. > + {x,y} restricts the constant to one of two values, x or y. > + > + Here x and y are integer tokens. Note that the "const" token is a > + lie when the restriction is [x,y], but this simplifies the parsing > + significantly and is hopefully forgivable. > + > + Return 1 for success, else 0. */ > +static int > +match_const_restriction (typeinfo *typedata) > +{ > + return 1; > +} And this. Okay for trunk with the trivialities fixed. Thanks! Segher