module N = NotationPt
module G = GrafiteAst
-module LE = LexiconEngine
-
-type 'a localized_option =
- LSome of 'a
- | LNone of G.loc
-
-type ast_statement = G.statement
let exc_located_wrapper f =
try
G.NTactic(loc,[G.NCases (loc, what, where)])
| IDENT "change"; what = pattern_spec; "with"; with_what = tactic_term ->
G.NTactic(loc,[G.NChange (loc, what, with_what)])
- | SYMBOL "@"; num = OPT NUMBER; l = LIST0 tactic_term ->
- G.NTactic(loc,[G.NConstructor (loc, (match num with None -> None | Some x -> Some (int_of_string x)),l)])
+ | SYMBOL "-"; ids = LIST1 IDENT ->
+ G.NTactic(loc,[G.NClear (loc, ids)])
+ | (*SYMBOL "^"*)PLACEHOLDER; num = OPT NUMBER;
+ l = OPT [ SYMBOL "{"; l = LIST1 tactic_term; SYMBOL "}" -> l ] ->
+ G.NTactic(loc,[G.NConstructor (loc, (match num with None -> None | Some x -> Some (int_of_string x)),match l with None -> [] | Some l -> l)])
| IDENT "cut"; t = tactic_term -> G.NTactic(loc,[G.NCut (loc, t)])
(* | IDENT "discriminate"; t = tactic_term -> G.NDiscriminate (loc, t)
| IDENT "subst"; t = tactic_term -> G.NSubst (loc, t) *)
paramspec = OPT inverter_param_list ;
outsort = OPT [ SYMBOL ":" ; outsort = term -> outsort ] ->
G.NInverter (loc,name,indty,paramspec,outsort)
- | NLETCOREC ; defs = let_defs ->
+ | LETCOREC ; defs = let_defs ->
nmk_rec_corec `CoInductive defs loc
- | NLETREC ; defs = let_defs ->
+ | LETREC ; defs = let_defs ->
nmk_rec_corec `Inductive defs loc
| IDENT "inductive"; spec = inductive_spec ->
let (params, ind_types) = spec in
]
];
statement: [
- [ ex = executable ->
- LSome (G.Executable (loc, ex))
- | com = comment ->
- LSome (G.Comment (loc, com))
+ [ ex = executable -> G.Executable (loc, ex)
+ | com = comment -> G.Comment (loc, com)
| (iloc,fname,mode) = include_command ; SYMBOL "." ->
- LSome (G.Executable (loc,G.NCommand (loc,G.Include (iloc,mode,fname))))
+ G.Executable (loc,G.NCommand (loc,G.Include (iloc,mode,fname)))
| EOI -> raise End_of_file
]
];
statement
;;
-type db = ast_statement localized_option Grammar.Entry.e ;;
+type db = GrafiteAst.statement Grammar.Entry.e ;;
class type g_status =
object
- inherit LexiconTypes.g_status
+ inherit CicNotationParser.g_status
method parser_db: db
end
class status =
object(self)
- inherit LexiconTypes.status as super
+ inherit CicNotationParser.status ~keywords:[]
val mutable db = None
method parser_db = match db with None -> assert false | Some x -> x
method set_parser_db v = {< db = Some v >}
method set_parser_status
: 'status. #g_status as 'status -> 'self
- = fun o -> {< db = Some o#parser_db >}#set_lexicon_engine_status o
+ = fun o -> {< db = Some o#parser_db >}#set_notation_parser_status o
initializer
let grammar = CicNotationParser.level2_ast_grammar self in
db <- Some (mk_parser (Grammar.Entry.create grammar "statement") self)