Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002007Core InformUnderstandingpublic2017-03-28 06:112017-03-28 10:07
Reportermattweiner 
Assigned To 
PrioritynormalSeveritymildReproducibilityalways
StatusnewResolutionopen 
PlatformmacintoshOSel capitanOS Version10.11.6
Product Version6M62 
Target VersionFixed in Version 
Summary0002007: "if the player's command includes [foo]" in a printing the parser error rule can cause a run-time problem when taking all
DescriptionWhen a rule for printing a parser error includes a check for whether the player's command has cited a particular object, and the player types "take all," then Inform issues a run-time problem for abandoning an activity which wasn't going on.

Because of http://inform7.com/mantis/view.php?id=2004 [^] this is probably meant to be a run-time problem for ending an activity which wasn't going on, but it's not clear why it's happening in any case.
Minimal Source Text To Reproduce
Testing Suite is a room. The barrel is a scenery container in Testing Suite.

Rule for printing a parser error when the latest parser error is the nothing to do error:
	if the player's command includes "[the barrel]":
		say "You'll have to search it."

test me with "take all/rules/take all".
Additional InformationOutput:

Testing Suite

>test me
(Testing.)

>[1] take all

*** Run-time problem P13: Tried to abandon an activity which wasn't going on.


>[2] rules
Rules tracing now switched on. Type "rules off" to switch it off again, or "rules all" to include even rules which do not apply.

>[3] take all
[Rule "exclude scenery from take all rule" applies.]
[Rule "exclude people from take all rule" applies.]
[Rule "Rule for printing a parser error when the latest parser error is the nothing to do error" applies.]
[Rule "exclude scenery from take all rule" applies.]

*** Run-time problem P13: Tried to abandon an activity which wasn't going on.

This seems to be unique to "Take all". If we change the rule for printing a parser error so it applies to every parser error, then "asdf all," "all," and "kiss barrel" all produce the desired message for a parser error that refers to the barrel; only "take all" yields the run-time problem.

TagsNo tags attached.
Effect(serious/mild) Game compiles but misbehaves
Attached Files

- Relationships

-  Notes
(0004669)
mattweiner (reporter)
2017-03-28 06:12

Forum thread: http://www.intfiction.org/forum/viewtopic.php?p=119499#p119499 [^]
(0004670)
zarf (developer)
2017-03-28 10:07

Parsing the [the barrel] token invokes ParseToken, which is already running (and failing, at Parser Letter I). So this is some kind of failure to handle re-entering that routine.

I don't know whether that sort of usage is supported or not. Offhand I'd guess that it's not -- the parser is hip-deep in global variables.

- Issue History
Date Modified Username Field Change
2017-03-28 06:11 mattweiner New Issue
2017-03-28 06:12 mattweiner Note Added: 0004669
2017-03-28 10:07 zarf Note Added: 0004670


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker