Skip to content

Commit 95d4aa4

Browse files
committed
WIP
1 parent 1c306b2 commit 95d4aa4

File tree

1 file changed

+5
-18
lines changed

1 file changed

+5
-18
lines changed

src/parser.c

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2252,6 +2252,7 @@ static cell *insert_call_here(parser *p, cell *c, cell *p1)
22522252

22532253
static cell *term_to_body_conversion(parser *p, cell *c)
22542254
{
2255+
//printf("*** %s/%u, p->is_command=%d\n", C_STR(p, c), c->arity, p->is_command);
22552256
pl_idx c_idx = c - p->cl->cells;
22562257
bool is_head = (c_idx == 0) && !p->is_command;
22572258

@@ -3759,7 +3760,7 @@ unsigned tokenize(parser *p, bool is_arg_processing, bool is_consing)
37593760

37603761
process_clause(p->m, p->cl, NULL);
37613762

3762-
if (!p->one_shot)
3763+
if (!p->one_shot || p->is_command)
37633764
term_to_body(p);
37643765

37653766
if ((p->is_consulting /*|| p->is_command*/) && !p->skip) {
@@ -4387,25 +4388,10 @@ bool run(parser *p, const char *prolog_src, bool dump, query **subq, unsigned in
43874388
}
43884389

43894390
SB(pr);
4390-
4391-
if (dump) {
4392-
SB_strcat(pr, "true,");
4393-
}
4394-
4395-
if (*prolog_src != '[') {
4396-
SB_sprintf(pr, "((%s", prolog_src);
4397-
} else {
4398-
SB_sprintf(pr, "%s", prolog_src);
4399-
}
4400-
4391+
SB_sprintf(pr, "%s", prolog_src);
44014392
SB_trim_ws(pr);
44024393
SB_trim(pr, '.');
4403-
4404-
if (*prolog_src != '[') {
4405-
SB_strcat(pr, ")).");
4406-
} else {
4407-
SB_strcat(pr, ".");
4408-
}
4394+
SB_strcat(pr, ".");
44094395

44104396
p->in_body = true;
44114397
p->srcptr = SB_cstr(pr);
@@ -4416,6 +4402,7 @@ bool run(parser *p, const char *prolog_src, bool dump, query **subq, unsigned in
44164402
p->line_num_start = 0;
44174403
p->line_num = 1;
44184404
p->one_shot = true;
4405+
p->is_command = true;
44194406
p->is_consulting = false;
44204407
tokenize(p, false, false);
44214408

0 commit comments

Comments
 (0)