equal
deleted
inserted
replaced
108 val basic_nonterms: string list |
108 val basic_nonterms: string list |
109 val print_gram: syntax -> unit |
109 val print_gram: syntax -> unit |
110 val print_trans: syntax -> unit |
110 val print_trans: syntax -> unit |
111 val print_syntax: syntax -> unit |
111 val print_syntax: syntax -> unit |
112 val guess_infix: syntax -> string -> mixfix option |
112 val guess_infix: syntax -> string -> mixfix option |
|
113 val positions_raw: Config.raw |
|
114 val positions: bool Config.T |
113 val ambiguity_enabled: bool Config.T |
115 val ambiguity_enabled: bool Config.T |
114 val ambiguity_level_raw: Config.raw |
116 val ambiguity_level_raw: Config.raw |
115 val ambiguity_level: int Config.T |
117 val ambiguity_level: int Config.T |
116 val ambiguity_limit: int Config.T |
118 val ambiguity_limit: int Config.T |
117 val standard_parse_term: (term -> string option) -> |
119 val standard_parse_term: (term -> string option) -> |
695 in (case (results, exns) of ([], exn :: _) => reraise exn | _ => results) end; |
697 in (case (results, exns) of ([], exn :: _) => reraise exn | _ => results) end; |
696 |
698 |
697 |
699 |
698 (* read_ast *) |
700 (* read_ast *) |
699 |
701 |
|
702 val positions_raw = Config.declare "syntax_positions" (fn _ => Config.Bool true); |
|
703 val positions = Config.bool positions_raw; |
|
704 |
700 val ambiguity_enabled = |
705 val ambiguity_enabled = |
701 Config.bool (Config.declare "syntax_ambiguity_enabled" (fn _ => Config.Bool true)); |
706 Config.bool (Config.declare "syntax_ambiguity_enabled" (fn _ => Config.Bool true)); |
702 |
707 |
703 val ambiguity_level_raw = Config.declare "syntax_ambiguity_level" (fn _ => Config.Int 1); |
708 val ambiguity_level_raw = Config.declare "syntax_ambiguity_level" (fn _ => Config.Int 1); |
704 val ambiguity_level = Config.int ambiguity_level_raw; |
709 val ambiguity_level = Config.int ambiguity_level_raw; |
730 (Context_Position.if_visible ctxt warning (cat_lines |
735 (Context_Position.if_visible ctxt warning (cat_lines |
731 (("Ambiguous input" ^ Position.str_of pos ^ |
736 (("Ambiguous input" ^ Position.str_of pos ^ |
732 "\nproduces " ^ string_of_int len ^ " parse trees" ^ |
737 "\nproduces " ^ string_of_int len ^ " parse trees" ^ |
733 (if len <= limit then "" else " (" ^ string_of_int limit ^ " displayed)") ^ ":") :: |
738 (if len <= limit then "" else " (" ^ string_of_int limit ^ " displayed)") ^ ":") :: |
734 map show_pt (take limit pts)))); |
739 map show_pt (take limit pts)))); |
|
740 |
|
741 val constrain_pos = not raw andalso Config.get ctxt positions; |
735 in |
742 in |
736 some_results (Syn_Trans.parsetree_to_ast ctxt false (lookup_tr parse_ast_trtab)) pts |
743 some_results (Syn_Trans.parsetree_to_ast ctxt constrain_pos (lookup_tr parse_ast_trtab)) pts |
737 end; |
744 end; |
738 |
745 |
739 |
746 |
740 (* read *) |
747 (* read *) |
741 |
748 |