revise iso_conformity_tests.pl in response to new ambiguity check of #1860
This commit is contained in:
@@ -44,6 +44,15 @@ impl DirectedOp {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn is_prefix(&self )-> bool {
|
||||||
|
match self {
|
||||||
|
&DirectedOp::Left(_name, cell) | &DirectedOp::Right(_name, cell) => {
|
||||||
|
is_prefix!(cell.get_spec() as u32)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn is_negative_sign(&self) -> bool {
|
fn is_negative_sign(&self) -> bool {
|
||||||
match self {
|
match self {
|
||||||
@@ -604,7 +613,6 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
self.iter.pop_stack();
|
self.iter.pop_stack();
|
||||||
|
|
||||||
self.state_stack.push(TokenOrRedirect::Atom(atom!("...")));
|
self.state_stack.push(TokenOrRedirect::Atom(atom!("...")));
|
||||||
self.state_stack.push(TokenOrRedirect::Space);
|
|
||||||
self.state_stack.push(TokenOrRedirect::Atom(name));
|
self.state_stack.push(TokenOrRedirect::Atom(name));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -613,7 +621,13 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
let op = DirectedOp::Left(name, spec);
|
let op = DirectedOp::Left(name, spec);
|
||||||
|
|
||||||
self.state_stack.push(TokenOrRedirect::CompositeRedirect(max_depth, op));
|
self.state_stack.push(TokenOrRedirect::CompositeRedirect(max_depth, op));
|
||||||
|
|
||||||
|
/*
|
||||||
|
if fetch_op_spec(name, 2, self.op_dir).is_some() {
|
||||||
self.state_stack.push(TokenOrRedirect::Space);
|
self.state_stack.push(TokenOrRedirect::Space);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
self.state_stack.push(TokenOrRedirect::Atom(name));
|
self.state_stack.push(TokenOrRedirect::Atom(name));
|
||||||
} else {
|
} else {
|
||||||
match name.as_str() {
|
match name.as_str() {
|
||||||
@@ -938,13 +952,17 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn print_number(&mut self, max_depth: usize, n: NumberFocus, op: &Option<DirectedOp>) {
|
fn print_number(&mut self, max_depth: usize, n: NumberFocus, op: &Option<DirectedOp>) {
|
||||||
let add_brackets = if let Some(op) = op {
|
let (add_brackets, op_is_prefix) = if let Some(op) = op {
|
||||||
op.is_negative_sign() && !n.is_negative()
|
(op.is_negative_sign() && !n.is_negative(), op.is_prefix())
|
||||||
} else {
|
} else {
|
||||||
false
|
(false, false)
|
||||||
};
|
};
|
||||||
|
|
||||||
if add_brackets {
|
if add_brackets {
|
||||||
|
if op_is_prefix && !self.outputter.ends_with(" ") {
|
||||||
|
push_char!(self, ' ');
|
||||||
|
}
|
||||||
|
|
||||||
push_char!(self, '(');
|
push_char!(self, '(');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1333,13 +1351,15 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
|
|
||||||
if let Some(ref op) = &op {
|
if let Some(ref op) = &op {
|
||||||
if !self.outputter.ends_with(" ") {
|
if !self.outputter.ends_with(" ") {
|
||||||
if op.is_left() && requires_space(op.as_atom().as_str(), "(") {
|
if op.is_left() {
|
||||||
|
if op.is_prefix() || requires_space(op.as_atom().as_str(), "(") {
|
||||||
self.state_stack.push(TokenOrRedirect::Space);
|
self.state_stack.push(TokenOrRedirect::Space);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
fn print_tcp_listener(&mut self, tcp_listener: &TcpListener, max_depth: usize) {
|
fn print_tcp_listener(&mut self, tcp_listener: &TcpListener, max_depth: usize) {
|
||||||
@@ -1457,7 +1477,9 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
let mut result = String::new();
|
let mut result = String::new();
|
||||||
|
|
||||||
if let Some(ref op) = op {
|
if let Some(ref op) = op {
|
||||||
if printer.outputter.ends_with(&format!(" {}", op.as_atom().as_str())) {
|
let op_is_prefix = op.is_prefix() && op.is_left();
|
||||||
|
|
||||||
|
if op_is_prefix || printer.outputter.ends_with(&format!(" {}", op.as_atom().as_str())) {
|
||||||
result.push(' ');
|
result.push(' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -288,8 +288,8 @@ test_191 :- writeq_term_to_chars(-(-a), Chars),
|
|||||||
test_192 :- writeq_term_to_chars(-(-(-a)), Chars),
|
test_192 :- writeq_term_to_chars(-(-(-a)), Chars),
|
||||||
Chars == "- - -a".
|
Chars == "- - -a".
|
||||||
|
|
||||||
test_216 :- writeq_term_to_chars(-(-1), Chars),
|
test_216 :- writeq_term_to_chars(-(-(1)), Chars),
|
||||||
Chars == "- -1".
|
Chars == "- - (1)".
|
||||||
|
|
||||||
test_215_248_249 :-
|
test_215_248_249 :-
|
||||||
setup_call_cleanup(op(100,yfx,~),
|
setup_call_cleanup(op(100,yfx,~),
|
||||||
|
|||||||
Reference in New Issue
Block a user