From ec97ee5d410e8c018975e69b57120ba783db44f3 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 4 Jan 2024 13:14:50 -0700 Subject: [PATCH] fix acceptance of invalid syntax, update iso_conformity_tests.pl (#2270) --- src/parser/parser.rs | 6 +----- tests-pl/iso-conformity-tests.pl | 12 ++++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) 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) } -> [] -- 2.54.0