equal
deleted
inserted
replaced
105 val termp: (string * string list) parser |
105 val termp: (string * string list) parser |
106 val target: (xstring * Position.T) parser |
106 val target: (xstring * Position.T) parser |
107 val opt_target: (xstring * Position.T) option parser |
107 val opt_target: (xstring * Position.T) option parser |
108 val args: Token.T list parser |
108 val args: Token.T list parser |
109 val args1: (string -> bool) -> Token.T list parser |
109 val args1: (string -> bool) -> Token.T list parser |
|
110 val attribs: Token.src list parser |
|
111 val opt_attribs: Token.src list parser |
|
112 val thm_sel: Facts.interval list parser |
|
113 val xthm: (Facts.ref * Token.src list) parser |
|
114 val xthms1: (Facts.ref * Token.src list) list parser |
110 end; |
115 end; |
111 |
116 |
112 structure Parse: PARSE = |
117 structure Parse: PARSE = |
113 struct |
118 struct |
114 |
119 |
431 val args = #1 (arguments Token.ident_or_symbolic) false; |
436 val args = #1 (arguments Token.ident_or_symbolic) false; |
432 fun args1 is_symid = #2 (arguments is_symid) false; |
437 fun args1 is_symid = #2 (arguments is_symid) false; |
433 |
438 |
434 end; |
439 end; |
435 |
440 |
|
441 |
|
442 (* attributes *) |
|
443 |
|
444 val attrib = position liberal_name -- !!! args >> uncurry Token.src; |
|
445 val attribs = $$$ "[" |-- list attrib --| $$$ "]"; |
|
446 val opt_attribs = Scan.optional attribs []; |
|
447 |
|
448 |
|
449 (* theorem references *) |
|
450 |
|
451 val thm_sel = $$$ "(" |-- list1 |
|
452 (nat --| minus -- nat >> Facts.FromTo || |
|
453 nat --| minus >> Facts.From || |
|
454 nat >> Facts.Single) --| $$$ ")"; |
|
455 |
|
456 val xthm = |
|
457 $$$ "[" |-- attribs --| $$$ "]" >> pair (Facts.named "") || |
|
458 (literal_fact >> Facts.Fact || |
|
459 position xname -- Scan.option thm_sel >> Facts.Named) -- opt_attribs; |
|
460 |
|
461 val xthms1 = Scan.repeat1 xthm; |
|
462 |
436 end; |
463 end; |
437 |
464 |