From 904cf97f7d942a32295a338f8840b4db1beadd75 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Thu, 11 Jun 2020 11:11:04 -0600 Subject: [PATCH] fix printing of atoms like '.x' (#585) --- .../bimetatrans_ruleml/bimetatrans_ruleml.pl | 23 ++++++------------- .../bimetatrans_ruleml_tests.pl | 2 ++ src/prolog/heap_print.rs | 2 -- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml.pl b/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml.pl index ba00346f..fd2b09a7 100644 --- a/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml.pl +++ b/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml.pl @@ -51,7 +51,8 @@ parse_ruleml(AssertItem, QueryItem, XML) :- ( ( var(AssertItem) ; var(QueryItem) ), var(XML) -> throw(error(instantiation_error, parse_ruleml/2)) - ; phrase(ruleml_top_level_items(AssertItem, QueryItem), XML) + ; phrase(ruleml_top_level_items(AssertItem, QueryItem), XML), + ! ). @@ -97,8 +98,7 @@ parse_header --> ruleml_top_level_items(AssertItem, QueryItems) --> ( ruleml_assert(AssertItem), - ruleml_query_items(QueryItems), - ! + ruleml_query_items(QueryItems) ; { AssertItem = [] }, ruleml_query_items(QueryItems) ). @@ -179,12 +179,10 @@ ruleml_assert(Items) --> ( { var(Items) } -> list_ws(""), ruleml_assert_items(Items), - !, list_ws("") ; "", { Items \== [] }, ruleml_assert_items(Items), - !, "" ). @@ -206,7 +204,6 @@ ruleml_assert(Items) --> ruleml_assert_items([Item | Items]) --> ruleml_assert_item(Item), - !, ruleml_assert_items(Items). ruleml_assert_items([]) --> []. @@ -214,7 +211,6 @@ ruleml_assert_items([]) --> []. ruleml_query_items(Items) --> ( { var(Items) } -> ruleml_query_item(Item), - !, ( { var(Item) } -> ruleml_query_items(Items) ; { Items = [Item | Items0] }, @@ -222,7 +218,6 @@ ruleml_query_items(Items) --> ) ; { Items = [Item | Items0] }, ruleml_query_item(Item), - !, ruleml_query_items(Items0) ). ruleml_query_items([]) --> []. @@ -279,7 +274,7 @@ space(' ') --> " ". decimal_point('.') --> ".". -sign('-') --> "-", !. +sign('-') --> "-". sign('+') --> "+". double_quote('"') --> "\"". @@ -332,7 +327,6 @@ ruleml_condition(Item) --> ruleml_item_conjunction([Item | Items]) --> ruleml_condition(Item), - !, ruleml_item_conjunction(Items). ruleml_item_conjunction([]) --> []. @@ -404,7 +398,6 @@ ruleml_conjunction_of_items(Items) --> ruleml_item_disjunction([Item | Items]) --> ruleml_condition(Item), - !, ruleml_item_disjunction(Items). ruleml_item_disjunction([]) --> []. @@ -549,7 +542,6 @@ ruleml_naf(Item) --> ruleml_atoms([Item|Items]) --> ruleml_atom(Item), - !, ruleml_atoms(Items). ruleml_atoms([]) --> []. @@ -829,9 +821,9 @@ ruleml_data(Name) --> */ ruleml_data_contents(number, Cs) --> - ruleml_number(Cs), !. + ruleml_number(Cs). ruleml_data_contents(symbol, Cs) --> - ruleml_symbol(Cs), !. + ruleml_symbol(Cs). ruleml_data_contents(string, Cs) --> ruleml_string(Cs). @@ -1195,8 +1187,7 @@ fold_semicolons(List, Output) :- * complicated by Scryer's current lack of multi-argument indexing. */ -fold_list([Item], _, Item) :- - !. +fold_list([Item], _, Item). fold_list([Item|Items], F, Form) :- Form =.. [F, Item, Fs], fold_list(Items, F, Fs). diff --git a/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml_tests.pl b/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml_tests.pl index cf1026d8..891cc8c0 100644 --- a/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml_tests.pl +++ b/src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml_tests.pl @@ -4172,3 +4172,5 @@ test_bimetatrans_ruleml :- (writeq(E), nl, false)). + +:- initialization(test_bimetatrans_ruleml). diff --git a/src/prolog/heap_print.rs b/src/prolog/heap_print.rs index d798ea68..86f8c5a2 100644 --- a/src/prolog/heap_print.rs +++ b/src/prolog/heap_print.rs @@ -449,8 +449,6 @@ fn non_quoted_token>(mut iter: Iter) -> bool { if let Some(c) = iter.next() { if small_letter_char!(c) { iter.all(|c| alpha_numeric_char!(c)) - } else if c == '.' { - iter.next().is_some() } else if graphic_token_char!(c) { non_quoted_graphic_token(iter, c) } else if semicolon_char!(c) { -- 2.54.0