- Ast0.Id(name) as ui ->
- let name = promote_mcode name in mkidres i ui name name name
- | Ast0.MetaId(name,_,_)
- | Ast0.MetaFunc(name,_,_) | Ast0.MetaLocalFunc(name,_,_) as ui ->
- let name = promote_mcode name in mkidres i ui name name name
- | Ast0.OptIdent(id) ->
- let (id,r) = full_ident id in mkidres i (Ast0.OptIdent(id)) id id r
- | Ast0.UniqueIdent(id) ->
- let (id,r) = full_ident id in mkidres i (Ast0.UniqueIdent(id)) id id r
+ Ast0.Id(nm) ->
+ let nm = normal_mcode nm in
+ let name = promote_mcode nm in
+ mkidres i (Ast0.Id(nm)) name name (Some name)
+ | Ast0.MetaId(nm,a,b,c) ->
+ let nm = normal_mcode nm in
+ let name = promote_mcode nm in
+ mkidres i (Ast0.MetaId(nm,a,b,c)) name name (Some name)
+ | Ast0.MetaFunc(nm,a,b) ->
+ let nm = normal_mcode nm in
+ let name = promote_mcode nm in
+ mkidres i (Ast0.MetaFunc(nm,a,b)) name name (Some name)
+ | Ast0.MetaLocalFunc(nm,a,b) ->
+ let nm = normal_mcode nm in
+ let name = promote_mcode nm in
+ mkidres i (Ast0.MetaLocalFunc(nm,a,b)) name name (Some name)
+ | Ast0.DisjId(starter,ids,mids,ender) ->
+ let res =
+ do_disj i starter ids mids ender ident
+ (fun starter ids mids ender ->
+ Ast0.DisjId(starter,ids,mids,ender)) in
+ (res,None)
+ | Ast0.OptIdent(id) ->
+ let (id,r) = full_ident id in mkidres i (Ast0.OptIdent(id)) id id r
+ | Ast0.UniqueIdent(id) ->
+ let (id,r) = full_ident id in mkidres i (Ast0.UniqueIdent(id)) id id r
+ | Ast0.AsIdent _ -> failwith "not possible"