241 parse_ast_translation, parse_rules, parse_translation, print_translation, print_rules, |
241 parse_ast_translation, parse_rules, parse_translation, print_translation, print_rules, |
242 print_ast_translation, token_translation = _} = syn_ext; |
242 print_ast_translation, token_translation = _} = syn_ext; |
243 val {input, lexicon, gram, consts, prmodes, |
243 val {input, lexicon, gram, consts, prmodes, |
244 parse_ast_trtab, parse_ruletab, parse_trtab, print_trtab, print_ruletab, |
244 parse_ast_trtab, parse_ruletab, parse_trtab, print_trtab, print_ruletab, |
245 print_ast_trtab, tokentrtab, prtabs} = tabs; |
245 print_ast_trtab, tokentrtab, prtabs} = tabs; |
246 val input' = if inout then fold (remove (op =)) xprods input else input; |
246 val input' = if inout then subtract (op =) xprods input else input; |
247 in |
247 in |
248 Syntax |
248 Syntax |
249 ({input = input', |
249 ({input = input', |
250 lexicon = if inout then Scan.make_lexicon (SynExt.delims_of input') else lexicon, |
250 lexicon = if inout then Scan.make_lexicon (SynExt.delims_of input') else lexicon, |
251 gram = if inout then Parser.make_gram input' else gram, |
251 gram = if inout then Parser.make_gram input' else gram, |