(*---------------------------------------------------------------------------*)
let rec (expression: (A.expression, Ast_c.expression) matcher) =
fun ea eb ->
+ if A.get_test_exp ea && not (Ast_c.is_test eb) then fail
+ else
X.all_bound (A.get_inherited ea) >&&>
let wa x = A.rewrap ea x in
match A.unwrap ea, eb with
| A.Nested (ea1, opa, ea2), eb ->
let rec loop eb =
- (if A.get_test_exp ea1 && not (Ast_c.is_test eb) then fail
- else expression ea1 eb) >|+|>
+ expression ea1 eb >|+|>
(match eb with
((B.Binary (eb1, opb, eb2), typ),ii)
when equal_binaryOp (term opa) opb ->
| _, (B.MacroDecl _ |B.DeclList _) -> fail
-
and onedecl = fun allminus decla (declb, iiptvirgb, iistob) ->
X.all_bound (A.get_inherited decla) >&&>
match A.unwrap decla, declb with
| B.EmptyField _iifield ->
fail
- | B.MacroDeclField _ ->
- raise Todo
+ | B.MacroDeclField ((sb,ebs),ii) ->
+ (match A.unwrap fa with
+ A.MacroDecl (sa,lpa,eas,rpa,enda) -> raise Todo
+ | _ -> fail)
| B.CppDirectiveStruct directive -> fail
| B.IfdefStruct directive -> fail