"-" | "\\" => {
self.format_prefix_op_with_space(ct.name(), spec);
return;
- },
+ }
_ => {}
};
self.state_stack.push(TokenOrRedirect::CompositeRedirect(left_directed_op));
self.state_stack.push(TokenOrRedirect::Op(ct.name(), spec));
} else { // if is_infix!(spec.assoc())
+ match ct.name().as_str() {
+ "|" => {
+ self.format_infix_op_with_space(ct.name(), spec);
+ return;
+ },
+ _ => {}
+ };
+
let left_directed_op = DirectedOp::Left(ct.name(), spec.clone());
let right_directed_op = DirectedOp::Right(ct.name(), spec.clone());
self.state_stack.push(TokenOrRedirect::Atom(name));
}
+ fn format_infix_op_with_space(&mut self, name: ClauseName, spec: SharedOpDesc)
+ {
+ let left_directed_op = DirectedOp::Left(name.clone(), spec.clone());
+ let right_directed_op = DirectedOp::Right(name.clone(), spec.clone());
+
+ self.state_stack.push(TokenOrRedirect::CompositeRedirect(left_directed_op));
+ self.state_stack.push(TokenOrRedirect::Space);
+ self.state_stack.push(TokenOrRedirect::Op(name.clone(), spec));
+ self.state_stack.push(TokenOrRedirect::Space);
+ self.state_stack.push(TokenOrRedirect::CompositeRedirect(right_directed_op));
+ }
+
fn format_curly_braces(&mut self)
{
self.state_stack.push(TokenOrRedirect::RightCurly);