[package]
name = "scryer-prolog"
-version = "0.8.27"
+version = "0.8.28"
repository = "https://github.com/mthom/scryer-prolog"
description = "A modern Prolog implementation written mostly in Rust."
push_space_if_amb!(self, atom.as_str(), {
match atom.as_str() {
"" => self.append_str("''"),
+ "," if spec.is_some() => self.append_str(atom.as_str()),
";" | "!" => self.append_str(atom.as_str()),
- s => if spec.is_some() || !self.quoted || non_quoted_token(s.chars()) {
+ s => if !self.quoted || non_quoted_token(s.chars()) {
self.append_str(atom.as_str());
} else {
if self.quoted {
op_specifier(OpSpec) :- throw(error(type_error(atom, OpSpec), op/3)).
valid_op(Op) :- atom(Op),
- ( Op \== ',' -> true
- ; throw(error(permission_error(modify, operator, ','), op/3)) % 8.14.3.3 j), k).
+ ( Op \== (,) -> true
+ ; throw(error(permission_error(modify, operator, (,)), op/3)) % 8.14.3.3 j), k).
).
op_(Priority, OpSpec, Op) :- '$op'(Priority, OpSpec, Op).
use prolog_parser::ast::*;
use prolog_parser::parser::{get_desc, get_clause_spec};
+use prolog_parser::tabled_rc::*;
use prolog::clause_types::*;
use prolog::heap_iter::*;
let op = match self.store(self.deref(op)) {
Addr::Con(Constant::Atom(name, _)) => name,
+ Addr::Con(Constant::Char(c)) =>
+ clause_name!(c.to_string(), indices.atom_tbl),
_ => unreachable!()
};