fix acceptance of invalid syntax, update iso_conformity_tests.pl (#2270)
This commit is contained in:
@@ -885,11 +885,7 @@ impl<'a, R: CharRead> Parser<'a, R> {
|
|||||||
.push(Term::Literal(Cell::default(), Literal::Atom(atom)));
|
.push(Term::Literal(Cell::default(), Literal::Atom(atom)));
|
||||||
}
|
}
|
||||||
|
|
||||||
self.stack[idx].spec = if self.stack[idx].priority > 0 {
|
self.stack[idx].spec = BTERM;
|
||||||
TERM
|
|
||||||
} else {
|
|
||||||
BTERM
|
|
||||||
};
|
|
||||||
self.stack[idx].tt = TokenType::Term;
|
self.stack[idx].tt = TokenType::Term;
|
||||||
self.stack[idx].priority = 0;
|
self.stack[idx].priority = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -1005,6 +1005,18 @@ test_311 :- test_syntax_error("Finis ().", syntax_error(incomplete_reduction)).
|
|||||||
test_318 :- writeq_term_to_chars(+((1*2)^3), C),
|
test_318 :- writeq_term_to_chars(+((1*2)^3), C),
|
||||||
C == "+ (1*2)^3".
|
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]) -->
|
run_tests([Test|Tests]) -->
|
||||||
( { call(Test) } ->
|
( { call(Test) } ->
|
||||||
[]
|
[]
|
||||||
|
|||||||
Reference in New Issue
Block a user