]
];
subst: [
- [ subst = OPT [
- SYMBOL "\\subst"; (* to avoid catching frequent "a [1]" cases *)
- PAREN "[";
- substs = LIST1 [
- i = IDENT; SYMBOL <:unicode<Assign>> (* ≔ *); t = term -> (i, t)
- ] SEP SYMBOL ";";
- PAREN "]" ->
- substs
- ] -> subst
+ [ SYMBOL "\\subst"; (* to avoid catching frequent "a [1]" cases *)
+ PAREN "[";
+ substs = LIST1 [
+ i = IDENT; SYMBOL <:unicode<Assign>> (* ≔ *); t = term -> (i, t)
+ ] SEP SYMBOL ";";
+ PAREN "]" ->
+ substs
]
];
substituted_name: [ (* a subs.name is an explicit substitution subject *)
- [ s = IDENT; subst = subst -> CicAst.Ident (s, subst)
- | s = URI; subst = subst -> CicAst.Uri (ind_expansion s, subst)
+ [ s = IDENT; subst = OPT subst -> CicAst.Ident (s, subst)
+ | s = URI; subst = OPT subst -> CicAst.Uri (ind_expansion s, subst)
]
];
name: [ (* as substituted_name with no explicit substitution *)