equal
deleted
inserted
replaced
31 val bracks: 'a parser -> 'a parser |
31 val bracks: 'a parser -> 'a parser |
32 val mode: string -> bool parser |
32 val mode: string -> bool parser |
33 val maybe: 'a parser -> 'a option parser |
33 val maybe: 'a parser -> 'a option parser |
34 val cartouche_inner_syntax: string parser |
34 val cartouche_inner_syntax: string parser |
35 val cartouche_source_position: Symbol_Pos.source parser |
35 val cartouche_source_position: Symbol_Pos.source parser |
|
36 val text_source_position: Symbol_Pos.source parser |
|
37 val text: string parser |
36 val name_inner_syntax: string parser |
38 val name_inner_syntax: string parser |
37 val name_source_position: Symbol_Pos.source parser |
39 val name_source_position: Symbol_Pos.source parser |
38 val name: string parser |
40 val name: string parser |
39 val binding: binding parser |
41 val binding: binding parser |
40 val alt_name: string parser |
42 val alt_name: string parser |
149 |
151 |
150 val ident = Parse.token |
152 val ident = Parse.token |
151 (Parse.short_ident || Parse.long_ident || Parse.sym_ident || Parse.term_var || |
153 (Parse.short_ident || Parse.long_ident || Parse.sym_ident || Parse.term_var || |
152 Parse.type_ident || Parse.type_var || Parse.number); |
154 Parse.type_ident || Parse.type_var || Parse.number); |
153 |
155 |
154 val string = Parse.token (Parse.string || Parse.verbatim); |
156 val string = Parse.token Parse.string; |
155 val alt_string = Parse.token (Parse.alt_string || Parse.cartouche); |
157 val alt_string = Parse.token (Parse.alt_string || Parse.cartouche); |
156 val symbolic = Parse.token (Parse.keyword_with Token.ident_or_symbolic); |
158 val symbolic = Parse.token (Parse.keyword_with Token.ident_or_symbolic); |
157 |
159 |
158 fun $$$ x = |
160 fun $$$ x = |
159 (ident || Parse.token Parse.keyword) :|-- (fn tok => |
161 (ident || Parse.token Parse.keyword) :|-- (fn tok => |
161 if x = y |
163 if x = y |
162 then (Token.assign (SOME (Token.Literal (false, Markup.quasi_keyword))) tok; Scan.succeed x) |
164 then (Token.assign (SOME (Token.Literal (false, Markup.quasi_keyword))) tok; Scan.succeed x) |
163 else Scan.fail |
165 else Scan.fail |
164 end); |
166 end); |
165 |
167 |
166 |
|
167 val named = ident || string; |
168 val named = ident || string; |
168 |
169 |
169 val add = $$$ "add"; |
170 val add = $$$ "add"; |
170 val del = $$$ "del"; |
171 val del = $$$ "del"; |
171 val colon = $$$ ":"; |
172 val colon = $$$ ":"; |
180 fun maybe scan = $$$ "_" >> K NONE || scan >> SOME; |
181 fun maybe scan = $$$ "_" >> K NONE || scan >> SOME; |
181 |
182 |
182 val cartouche = Parse.token Parse.cartouche; |
183 val cartouche = Parse.token Parse.cartouche; |
183 val cartouche_inner_syntax = cartouche >> Token.inner_syntax_of; |
184 val cartouche_inner_syntax = cartouche >> Token.inner_syntax_of; |
184 val cartouche_source_position = cartouche >> Token.source_position_of; |
185 val cartouche_source_position = cartouche >> Token.source_position_of; |
|
186 |
|
187 val text_token = named || Parse.token (Parse.verbatim || Parse.cartouche); |
|
188 val text_source_position = text_token >> Token.source_position_of; |
|
189 val text = text_token >> Token.content_of; |
185 |
190 |
186 val name_inner_syntax = named >> Token.inner_syntax_of; |
191 val name_inner_syntax = named >> Token.inner_syntax_of; |
187 val name_source_position = named >> Token.source_position_of; |
192 val name_source_position = named >> Token.source_position_of; |
188 |
193 |
189 val name = named >> Token.content_of; |
194 val name = named >> Token.content_of; |