From: Mark Date: Thu, 4 Jan 2024 20:14:50 +0000 (-0700) Subject: fix acceptance of invalid syntax, update iso_conformity_tests.pl (#2270) X-Git-Tag: v0.9.4~44 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=ec97ee5d410e8c018975e69b57120ba783db44f3;p=scryer-prolog.git fix acceptance of invalid syntax, update iso_conformity_tests.pl (#2270) --- diff --git a/src/parser/parser.rs b/src/parser/parser.rs index 473cbe46..3637df24 100644 --- a/src/parser/parser.rs +++ b/src/parser/parser.rs @@ -885,11 +885,7 @@ impl<'a, R: CharRead> Parser<'a, R> { .push(Term::Literal(Cell::default(), Literal::Atom(atom))); } - self.stack[idx].spec = if self.stack[idx].priority > 0 { - TERM - } else { - BTERM - }; + self.stack[idx].spec = BTERM; self.stack[idx].tt = TokenType::Term; self.stack[idx].priority = 0; diff --git a/tests-pl/iso-conformity-tests.pl b/tests-pl/iso-conformity-tests.pl index bfd74c61..dc08ce2d 100644 --- a/tests-pl/iso-conformity-tests.pl +++ b/tests-pl/iso-conformity-tests.pl @@ -1005,6 +1005,18 @@ test_311 :- test_syntax_error("Finis ().", syntax_error(incomplete_reduction)). test_318 :- writeq_term_to_chars(+((1*2)^3), C), C == "+ (1*2)^3". +test_320 :- writeq_term_to_chars([a|\+2], C), + C == "[a|\\+2]". + +test_321 :- test_syntax_error("writeq((a)(b)).", syntax_error(incomplete_reduction)). + +test_324 :- writeq_term_to_chars('%', C), + C == "'%'". + +test_325 :- test_syntax_error("writeq({[y}]).", syntax_error(incomplete_reduction)). + +test_326 :- test_syntax_error("(>)(1,2).", syntax_error(incomplete_reduction)). + run_tests([Test|Tests]) --> ( { call(Test) } -> []