right_directed_op,
));
} else if is_prefix!(spec.get_spec()) {
- match name {
- atom!("-") | atom!("\\") => {
- self.format_prefix_op_with_space(max_depth, name, spec);
- return;
- }
- _ => {}
- };
-
if self.check_max_depth(&mut max_depth) {
self.iter.pop_stack();
self.state_stack.push(TokenOrRedirect::Atom(atom!("...")));
- self.state_stack.push(TokenOrRedirect::Op(name, spec));
+ self.state_stack.push(TokenOrRedirect::Space);
+ self.state_stack.push(TokenOrRedirect::Atom(name));
return;
}
- let left_directed_op = DirectedOp::Left(name, spec);
+ let op = DirectedOp::Left(name, spec);
- self.state_stack.push(TokenOrRedirect::CompositeRedirect(
- max_depth,
- left_directed_op,
- ));
-
- self.state_stack.push(TokenOrRedirect::Op(name, spec));
+ self.state_stack.push(TokenOrRedirect::CompositeRedirect(max_depth, op));
+ self.state_stack.push(TokenOrRedirect::Space);
+ self.state_stack.push(TokenOrRedirect::Atom(name));
} else {
match name.as_str() {
"|" => {
true
}
- fn format_prefix_op_with_space(&mut self, mut max_depth: usize, name: Atom, spec: OpDesc) {
- if self.check_max_depth(&mut max_depth) {
- self.iter.pop_stack();
-
- self.state_stack.push(TokenOrRedirect::Atom(atom!("...")));
- self.state_stack.push(TokenOrRedirect::Space);
- self.state_stack.push(TokenOrRedirect::Atom(name));
-
- return;
- }
-
- let op = DirectedOp::Left(name, spec);
-
- self.state_stack.push(TokenOrRedirect::CompositeRedirect(max_depth, op));
- self.state_stack.push(TokenOrRedirect::Space);
- self.state_stack.push(TokenOrRedirect::Atom(name));
- }
-
fn format_bar_separator_op(&mut self, mut max_depth: usize, name: Atom, spec: OpDesc) {
if self.check_max_depth(&mut max_depth) {
self.iter.pop_stack();
self.state_stack.push(TokenOrRedirect::Open);
if let Some(ref op) = &op {
- if op.is_left() && requires_space(op.as_atom().as_str(), "(") {
- self.state_stack.push(TokenOrRedirect::Space);
+ if !self.outputter.ends_with(" ") {
+ if op.is_left() && requires_space(op.as_atom().as_str(), "(") {
+ self.state_stack.push(TokenOrRedirect::Space);
+ }
}
}
}
op(P,fy,+)).
test_257 :- writeq_term_to_chars([+{a},+[]], Chars),
- Chars == "[+{a},+[]]".
+ Chars == "[+ {a},+ []]".
test_68 :- [(:-)|(:-)]=[:-|:-].
C0 == "' op' '1 '",
read_from_chars("' op'[].", T1),
writeq_term_to_chars(T1, C1),
- C1 == "' op'[]"
+ C1 == "' op' []"
),
op(0, fx, ' op')
).
setup_call_cleanup(op(20,fx,--),
( read_from_chars("--(a).", T0),
writeq_term_to_chars(T0, C0),
- C0 == "--a",
+ C0 == "-- a",
op(0,fx,--),
read_from_chars("--(a).", T1),
writeq_term_to_chars(T1, C1),
C == "\\ (a=b)".
test_306 :- writeq_term_to_chars(+ (a = b), C),
- C == "+(a=b)".
+ C == "+ (a=b)".
test_307 :- writeq_term_to_chars([/**/], C),
C == "[]".