diff options
Diffstat (limited to 'devel/omake/files/patch-src_libmojave-external_util_lm__parser.ml')
-rw-r--r-- | devel/omake/files/patch-src_libmojave-external_util_lm__parser.ml | 366 |
1 files changed, 0 insertions, 366 deletions
diff --git a/devel/omake/files/patch-src_libmojave-external_util_lm__parser.ml b/devel/omake/files/patch-src_libmojave-external_util_lm__parser.ml deleted file mode 100644 index 94dae3eb8f8b..000000000000 --- a/devel/omake/files/patch-src_libmojave-external_util_lm__parser.ml +++ /dev/null @@ -1,366 +0,0 @@ -$NetBSD: patch-ax,v 1.1 2010/12/17 09:40:14 wiz Exp $ - -From upstream SVN. - ---- src/libmojave-external/util/lm_parser.ml.orig 2007-01-25 18:31:18.000000000 +0000 -+++ src/libmojave-external/util/lm_parser.ml -@@ -282,15 +282,11 @@ struct - let debug = "ProdItem" - - let hash item = -- let { prod_item_name = name; -- prod_item_left = left; -- prod_item_right = right; -- prod_item_action = action -- } = item -- in -+ let name = item.prod_item_name in -+ let action = item.prod_item_action in - let hash = hash_combine (IVar.hash name) (IAction.hash action) in -- let hash = ivar_list_hash hash left in -- let hash = ivar_list_hash hash right in -+ let hash = ivar_list_hash hash item.prod_item_left in -+ let hash = ivar_list_hash hash item.prod_item_right in - hash - - let compare item1 item2 = -@@ -657,18 +653,12 @@ struct - fprintf buf "@ %a: %a" (pp_print_ivar info) v (pp_print_pda_action info) action) actions - - let pp_print_prod_item_core info buf item = -- let { prod_item_action = action; -- prod_item_name = name; -- prod_item_left = left; -- prod_item_right = right -- } = item -- in - let hash = info.info_hash in - fprintf buf "%a ::=%a .%a (%a)" (**) -- (pp_print_ivar hash) name -- (pp_print_ivars hash) (List.rev left) -- (pp_print_ivars hash) right -- (pp_print_iaction hash) action -+ (pp_print_ivar hash) item.prod_item_name -+ (pp_print_ivars hash) (List.rev item.prod_item_left) -+ (pp_print_ivars hash) item.prod_item_right -+ (pp_print_iaction hash) item.prod_item_action - - let pp_print_prod_item info buf item = - pp_print_prod_item_core info buf (ProdItem.get info.info_hash.hash_prod_item_state item) -@@ -678,40 +668,27 @@ struct - fprintf buf "@ %a" (pp_print_prod_item info) item) items - - let pp_print_state info buf state = -- let { info_state_items = items } = State.get info.info_hash.hash_state_state state in -+ let items = (State.get info.info_hash.hash_state_state state).info_state_items in - eprintf "@[<v 3>State %d" (State.hash state); - pp_print_prod_item_set info buf items; - eprintf "@]" - - let pp_print_info_item info buf info_item = -- let { info_hash = hash; -- info_hash_state_item = hash_state_item -- } = info -- in -- let { info_item_index = index; -- info_item_entries = entries -- } = info_item -- in -- fprintf buf "@[<v 3>State %d:" index; -+ let hash = info.info_hash in -+ let hash_state_item = info.info_hash_state_item in -+ fprintf buf "@[<v 3>State %d:" info_item.info_item_index; - Array.iter (fun entry -> -- let { prop_state_item = state_item; -- prop_vars = lookahead -- } = entry -- in -+ let state_item = entry.prop_state_item in -+ let lookahead = entry.prop_vars in - let _, prod_item = StateItem.get hash_state_item state_item in -- fprintf buf "@ @[<hv 3>%a@ @[<b 2>#%a@]@]" (pp_print_prod_item info) prod_item (pp_print_ivar_set hash) lookahead) entries; -+ fprintf buf "@ @[<hv 3>%a@ @[<b 2>#%a@]@]" (pp_print_prod_item info) prod_item (pp_print_ivar_set hash) lookahead) info_item.info_item_entries; - fprintf buf "@]" - - let pp_print_info buf info = -- let { info_grammar = gram; -- info_nullable = nullable; -- info_first = first; -- info_hash = hash -- } = info -- in -- fprintf buf "@[<v 0>%a" pp_print_grammar gram; -- fprintf buf "@ @[<b 3>Nullable:%a@]" (pp_print_ivar_set hash) nullable; -- fprintf buf "@ @[<v 3>First:%a@]" (pp_print_ivar_table hash) first; -+ let hash = info.info_hash in -+ fprintf buf "@[<v 0>%a" pp_print_grammar info.info_grammar; -+ fprintf buf "@ @[<b 3>Nullable:%a@]" (pp_print_ivar_set hash) info.info_nullable; -+ fprintf buf "@ @[<v 3>First:%a@]" (pp_print_ivar_table hash) info.info_first; - fprintf buf "@]" - - let pp_print_lookahead hash buf look = -@@ -917,16 +894,11 @@ struct - let changed, prods = - VarMTable.fold_all (fun (changed, prods) _ prodlist -> - List.fold_left (fun (changed, prods) prod -> -- let { prod_action = action; -- prod_name = name; -- prod_prec = pre -- } = prod -- in -- if ActionSet.mem actions action then -- changed, prods -- else -- let prod = { prod with prod_prec = PrecTable.find prec_translate pre } in -- true, VarMTable.add prods name prod) (changed, prods) prodlist) (false, prod1) prod2 -+ if ActionSet.mem actions prod.prod_action then -+ changed, prods -+ else -+ let prod = { prod with prod_prec = PrecTable.find prec_translate prod.prod_prec } in -+ true, VarMTable.add prods prod.prod_name prod) (changed, prods) prodlist) (false, prod1) prod2 - in - - (* Union of the start symbols *) -@@ -1012,12 +984,10 @@ struct - let step first prods = - IVarTable.fold (fun (first, changed) _ prods -> - List.fold_left (fun (first, changed) prod -> -- let { prod_item_name = x; -- prod_item_right = rhs -- } = ProdItem.get prod_state prod -- in -+ let prod_item = ProdItem.get prod_state prod in -+ let x = prod_item.prod_item_name in - let set = IVarTable.find first x in -- let set' = first_rhs nullable first set rhs in -+ let set' = first_rhs nullable first set prod_item.prod_item_right in - let set, changed = - if changed || IVarSet.cardinal set' <> IVarSet.cardinal set then - set', true -@@ -1059,10 +1029,8 @@ struct - * Get the set of first symbols that can begin a list. - *) - let lookahead info rhs = -- let { info_first = first; -- info_nullable = nullable -- } = info -- in -+ let first = info.info_first in -+ let nullable = info.info_nullable in - let rec search set rhs = - match rhs with - v :: rhs -> -@@ -1274,14 +1242,10 @@ struct - let hash = info.info_hash.hash_prod_item_state in - ProdItemSet.fold (fun delta prod_item -> - let core = ProdItem.get hash prod_item in -- let { prod_item_left = left; -- prod_item_right = right -- } = core -- in -- match right with -+ match core.prod_item_right with - v :: right -> - let core = -- { core with prod_item_left = v :: left; -+ { core with prod_item_left = v :: core.prod_item_left; - prod_item_right = right - } - in -@@ -1517,11 +1481,7 @@ struct - let goto_table = StateTable.find shift_table state in - let prod_item_hash = info.info_hash.hash_prod_item_state in - let prod_item_core = ProdItem.get prod_item_hash prod_item in -- let { prod_item_left = left; -- prod_item_right = right -- } = prod_item_core -- in -- match right with -+ match prod_item_core.prod_item_right with - v :: right -> - (* If v is a nonterminal, then also propagate to initial items *) - let prop_items = -@@ -1534,7 +1494,7 @@ struct - (* Propagate directly to the next state *) - let next_state = IVarTable.find goto_table v in - let next_item_core = -- { prod_item_core with prod_item_left = v :: left; -+ { prod_item_core with prod_item_left = v :: prod_item_core.prod_item_left; - prod_item_right = right - } - in -@@ -1833,8 +1793,8 @@ struct - item :: items -> - let core = ProdItem.get hash item in - let empty_flag = -- match core with -- { prod_item_left = []; prod_item_right = [] } -> -+ match core.prod_item_left, core.prod_item_right with -+ [], [] -> - true - | _ -> - false -@@ -1865,14 +1825,12 @@ struct - look) - - let reduce_actions info empties prop_table = -- let { info_head_lookahead = look_table } = info in -+ let look_table = info.info_head_lookahead in - let hash = info.info_hash.hash_prod_item_state in - let hash_state_item = info.info_hash_state_item in - Array.fold_left (fun actions entry -> -- let { prop_state_item = state_item; -- prop_vars = look3 -- } = entry -- in -+ let state_item = entry.prop_state_item in -+ let look3 = entry.prop_vars in - let state, item = StateItem.get hash_state_item state_item in - let core = ProdItem.get hash item in - match core.prod_item_right with -@@ -1902,8 +1860,8 @@ struct - * Error messages. - *) - let shift_reduce_conflict info state v shift_state reduce_item = -- let { info_hash = hash } = info in -- let { hash_prod_item_state = hash_prod_item } = hash in -+ let hash = info.info_hash in -+ let hash_prod_item = hash.hash_prod_item_state in - let pp_print_ivar = pp_print_ivar hash in - let pp_print_iaction = pp_print_iaction hash in - let reduce_core = ProdItem.get hash_prod_item reduce_item in -@@ -1917,8 +1875,8 @@ struct - raise (Invalid_argument "Lm_parser.shift_reduce_conflict\n\tset MP_DEBUG=parse_conflict_is_warning to ignore this error") - - let reduce_reduce_conflict info state v reduce_item action = -- let { info_hash = hash } = info in -- let { hash_prod_item_state = hash_prod_item } = hash in -+ let hash = info.info_hash in -+ let hash_prod_item = hash.hash_prod_item_state in - let pp_print_ivar = pp_print_ivar hash in - let pp_print_iaction = pp_print_iaction hash in - let reduce_core = ProdItem.get hash_prod_item reduce_item in -@@ -1936,24 +1894,18 @@ struct - * This is finally the stage where we check for conflicts. - *) - let process_reduce_actions info reduce_actions action_table = -- let { info_grammar = gram; -- info_prec = var_prec_table; -- info_hash = { hash_prod_item_state = hash_prod_item } -- } = info -- in -- let { gram_prec_table = prec_table } = gram in -+ let gram = info.info_grammar in -+ let var_prec_table = info.info_prec in -+ let hash_prod_item = info.info_hash.hash_prod_item_state in -+ let prec_table = gram.gram_prec_table in - let state_item_hash = info.info_hash_state_item in - StateItemTable.fold (fun action_table state_item look -> - let look = lookahead_set look in - let state, item = StateItem.get state_item_hash state_item in -- let { prod_item_name = name; -- prod_item_action = action; -- prod_item_left = left; -- prod_item_prec = prec_name -- } = ProdItem.get hash_prod_item item -- in -+ let prod_item = ProdItem.get hash_prod_item item in -+ let prec_name = prod_item.prod_item_prec in - let assoc = Precedence.assoc prec_table prec_name in -- let reduce = ReduceAction (action, name, List.length left) in -+ let reduce = ReduceAction (prod_item.prod_item_action, prod_item.prod_item_name, List.length prod_item.prod_item_left) in - let actions = StateTable.find action_table state in - let actions = - IVarSet.fold (fun actions v -> -@@ -2006,7 +1958,8 @@ struct - { prod_item_right = []; - prod_item_action = action; - prod_item_name = name; -- prod_item_left = left -+ prod_item_left = left; -+ prod_item_prec = _ - } -> - let state_item = StateItem.create info.info_hash_state_item (state, item) in - let lookahead = prop_table.(StateItem.hash state_item).prop_vars in -@@ -2027,18 +1980,14 @@ struct - * Flatten a production state to a pda description. - *) - let pda_info_of_items info prop_table state items = -- let { info_first = first; -- info_hash_state_item = hash_state_item; -- info_hash = { hash_prod_item_state = hash_prod_item } -- } = info -- in -+ let first = info.info_first in -+ let hash_state_item = info.info_hash_state_item in -+ let hash_prod_item = info.info_hash.hash_prod_item_state in - let items, next = - ProdItemSet.fold (fun (items, next) prod_item -> - let core = ProdItem.get hash_prod_item prod_item in -- let { prod_item_left = left; -- prod_item_right = right -- } = core -- in -+ let left = core.prod_item_left in -+ let right = core.prod_item_right in - let item = - { pda_item_left = left; - pda_item_right = right -@@ -2094,7 +2043,7 @@ struct - (* Build the PDA states *) - let table = - State.map_array (fun state core -> -- let { info_state_items = items } = core in -+ let items = core.info_state_items in - { pda_delta = pda_delta (StateTable.find trans_table state); - pda_reduce = reduce_early info prop_table state items; - pda_info = pda_info_of_items info prop_table state items -@@ -2155,7 +2104,7 @@ struct - * Exceptions. - *) - let parse_error loc hash run _stack state (v : ivar) = -- let { pda_info = { pda_items = items; pda_next = next } } = run.run_states.(state) in -+ let { pda_items = items; pda_next = next } = run.run_states.(state).pda_info in - let pp_print_ivar = pp_print_ivar hash in - let buf = stdstr in - fprintf buf "@[<v 0>Syntax error on token %a" pp_print_ivar v; -@@ -2188,7 +2137,7 @@ struct - - let pda_loop hash run arg start = - let rec pda_lookahead arg stack state tok = -- let { pda_delta = delta } = run.run_states.(state) in -+ let delta = run.run_states.(state).pda_delta in - let v, loc, x = tok in - match - (try IVarTable.find delta v with -@@ -2323,24 +2272,24 @@ struct - let prec_max = Precedence.prec_max - - let add_assoc info pre assoc = -- let { parse_grammar = gram } = info in -- let { gram_prec_table = prec_table } = gram in -+ let gram = info.parse_grammar in -+ let prec_table = gram.gram_prec_table in - let prec_table = Precedence.add_assoc prec_table pre assoc in - let gram = { gram with gram_prec_table = prec_table } in - let info = { parse_grammar = gram; parse_pda = None } in - info - - let create_prec_lt info pre assoc = -- let { parse_grammar = gram } = info in -- let { gram_prec_table = prec_table } = gram in -+ let gram = info.parse_grammar in -+ let prec_table = gram.gram_prec_table in - let prec_table, pre = Precedence.create_prec_lt prec_table pre assoc in - let gram = { gram with gram_prec_table = prec_table } in - let info = { parse_grammar = gram; parse_pda = None } in - info, pre - - let create_prec_gt info pre assoc = -- let { parse_grammar = gram } = info in -- let { gram_prec_table = prec_table } = gram in -+ let gram = info.parse_grammar in -+ let prec_table = gram.gram_prec_table in - let prec_table, pre = Precedence.create_prec_gt prec_table pre assoc in - let gram = { gram with gram_prec_table = prec_table } in - let info = { parse_grammar = gram; parse_pda = None } in |