type ast_statement =
(CicNotationPt.term, CicNotationPt.term,
- CicNotationPt.term GrafiteAst.reduction, CicNotationPt.obj, string)
+ CicNotationPt.term GrafiteAst.reduction,
+ CicNotationPt.term CicNotationPt.obj, string)
GrafiteAst.statement
type statement =
];
int: [ [ num = NUMBER -> int_of_string num ] ];
intros_spec: [
- [ num = OPT [ num = int -> num ]; idents = OPT ident_list0 ->
+ [ OPT [ IDENT "names" ];
+ num = OPT [ num = int -> num ];
+ idents = OPT ident_list0 ->
let idents = match idents with None -> [] | Some idents -> idents in
num, idents
]
macro: [
[ [ IDENT "check" ]; t = term ->
GrafiteAst.Check (loc, t)
- | [ IDENT "inline"]; suri = QSTRING; prefix = OPT QSTRING ->
- let prefix = match prefix with None -> "" | Some prefix -> prefix in
- GrafiteAst.Inline (loc,suri,prefix)
+ | [ IDENT "inline"];
+ style = OPT [ IDENT "procedural" ];
+ suri = QSTRING; prefix = OPT QSTRING ->
+ let style = match style with
+ | None -> GrafiteAst.Declarative
+ | Some _ -> GrafiteAst.Procedural
+ in
+ let prefix = match prefix with None -> "" | Some prefix -> prefix in
+ GrafiteAst.Inline (loc,style,suri,prefix)
| [ IDENT "hint" ] -> GrafiteAst.Hint loc
| [ IDENT "whelp"; "match" ] ; t = term ->
GrafiteAst.WMatch (loc,t)