]> Repositorios git - scryer-prolog.git/commitdiff
fix printing of atoms like '.x' (#585)
authorMark Thom <[email protected]>
Thu, 11 Jun 2020 17:11:04 +0000 (11:11 -0600)
committerMark Thom <[email protected]>
Thu, 11 Jun 2020 17:11:04 +0000 (11:11 -0600)
src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml.pl
src/prolog/examples/bimetatrans_ruleml/bimetatrans_ruleml_tests.pl
src/prolog/heap_print.rs

index ba00346fd9dc0e0b8256cd392b9101b12ffe97ce..fd2b09a72425f36549278ffc098279e8cb82b82f 100644 (file)
@@ -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("<Assert mapClosure=\"universal\">"),
        ruleml_assert_items(Items),
-       !,
        list_ws("</Assert>")
     ;  "<Assert mapClosure=\"universal\">",
        { Items \== [] },
        ruleml_assert_items(Items),
-       !,
        "</Assert>"
     ).
 
@@ -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).
index cf1026d8bd80ef0b7bdf1f0377542faa32345948..891cc8c0297227783bc90f2dd92baa0a00771243 100644 (file)
@@ -4172,3 +4172,5 @@ test_bimetatrans_ruleml :-
           (writeq(E),
            nl,
            false)).
+
+:- initialization(test_bimetatrans_ruleml).
index d798ea68f39ceaac448c40c5059a47f30af6d974..86f8c5a24426b58c23b5247691b0bfa02d3c89b5 100644 (file)
@@ -449,8 +449,6 @@ fn non_quoted_token<Iter: Iterator<Item = char>>(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) {