equal
deleted
inserted
replaced
21 val position: (T list -> 'a * 'b) -> T list -> ('a * Position.T) * 'b |
21 val position: (T list -> 'a * 'b) -> T list -> ('a * Position.T) * 'b |
22 val !!! : (T list -> 'a) -> T list -> 'a |
22 val !!! : (T list -> 'a) -> T list -> 'a |
23 val $$$ : string -> T list -> string * T list |
23 val $$$ : string -> T list -> string * T list |
24 val colon: T list -> string * T list |
24 val colon: T list -> string * T list |
25 val parens: (T list -> 'a * T list) -> T list -> 'a * T list |
25 val parens: (T list -> 'a * T list) -> T list -> 'a * T list |
|
26 val mode: string -> 'a * T list -> bool * ('a * T list) |
26 val name: T list -> string * T list |
27 val name: T list -> string * T list |
27 val name_dummy: T list -> string option * T list |
28 val name_dummy: T list -> string option * T list |
28 val nat: T list -> int * T list |
29 val nat: T list -> int * T list |
29 val int: T list -> int * T list |
30 val int: T list -> int * T list |
30 val var: T list -> indexname * T list |
31 val var: T list -> indexname * T list |
115 fun $$$$ x = Scan.one (fn Arg (k, (y, _)) => (k = Ident orelse k = Keyword) andalso x = y); |
116 fun $$$$ x = Scan.one (fn Arg (k, (y, _)) => (k = Ident orelse k = Keyword) andalso x = y); |
116 fun $$$ x = $$$$ x >> val_of; |
117 fun $$$ x = $$$$ x >> val_of; |
117 |
118 |
118 val colon = $$$ ":"; |
119 val colon = $$$ ":"; |
119 fun parens scan = $$$ "(" |-- scan --| $$$ ")"; |
120 fun parens scan = $$$ "(" |-- scan --| $$$ ")"; |
|
121 fun mode s = Scan.lift (Scan.optional (parens ($$$$ s) >> K true) false); |
120 |
122 |
121 val name = Scan.one (fn Arg (k, (x, _)) => k = Ident orelse k = String) >> val_of; |
123 val name = Scan.one (fn Arg (k, (x, _)) => k = Ident orelse k = String) >> val_of; |
122 val name_dummy = $$$ "_" >> K None || name >> Some; |
124 val name_dummy = $$$ "_" >> K None || name >> Some; |
123 |
125 |
124 val keyword_symid = |
126 val keyword_symid = |