re: conformity test #181
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "scryer-prolog"
|
name = "scryer-prolog"
|
||||||
version = "0.8.47"
|
version = "0.8.48"
|
||||||
authors = ["Mark Thom <markjordanthom@gmail.com>"]
|
authors = ["Mark Thom <markjordanthom@gmail.com>"]
|
||||||
repository = "https://github.com/mthom/scryer-prolog"
|
repository = "https://github.com/mthom/scryer-prolog"
|
||||||
description = "A modern Prolog implementation written mostly in Rust."
|
description = "A modern Prolog implementation written mostly in Rust."
|
||||||
|
|||||||
@@ -414,7 +414,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter>
|
|||||||
"-" | "\\" => {
|
"-" | "\\" => {
|
||||||
self.format_prefix_op_with_space(ct.name(), spec);
|
self.format_prefix_op_with_space(ct.name(), spec);
|
||||||
return;
|
return;
|
||||||
},
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -423,6 +423,14 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter>
|
|||||||
self.state_stack.push(TokenOrRedirect::CompositeRedirect(left_directed_op));
|
self.state_stack.push(TokenOrRedirect::CompositeRedirect(left_directed_op));
|
||||||
self.state_stack.push(TokenOrRedirect::Op(ct.name(), spec));
|
self.state_stack.push(TokenOrRedirect::Op(ct.name(), spec));
|
||||||
} else { // if is_infix!(spec.assoc())
|
} 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 left_directed_op = DirectedOp::Left(ct.name(), spec.clone());
|
||||||
let right_directed_op = DirectedOp::Right(ct.name(), spec.clone());
|
let right_directed_op = DirectedOp::Right(ct.name(), spec.clone());
|
||||||
|
|
||||||
@@ -456,6 +464,18 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter>
|
|||||||
self.state_stack.push(TokenOrRedirect::Atom(name));
|
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)
|
fn format_curly_braces(&mut self)
|
||||||
{
|
{
|
||||||
self.state_stack.push(TokenOrRedirect::RightCurly);
|
self.state_stack.push(TokenOrRedirect::RightCurly);
|
||||||
|
|||||||
Reference in New Issue
Block a user