Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000580Core InformUnderstandingpublic2011-02-22 11:522014-05-07 07:33
Reportermattweiner 
Assigned Tograham 
PrioritynormalSeveritymildReproducibilityalways
StatusclosedResolutionfixed 
Platformx86OSMac OS XOS Version10.5
Product Version6G60 
Target VersionFixed in Version6L02 
Summary0000580: P37 low level error with invalid use of text token
DescriptionWhen using a text token in a way that I probably shouldn't, I get a library error followed by a P37 run-time error. I suspect that it's throwing an error after trying to report the library error, but the error message says to report it as a possible bug. The code should probably refuse to compile, as the underlying error seems to be that the [text] token can't precede the [something] token in an Understand statement.
Minimal Source Text To Reproduce
Lab is a room.
Frizzling is an action applying to one thing. Understand "frizzle [something]" as frizzling. 

Frozzling is an action applying to one topic and one thing. Understand "[text] [something]" 
as frozzling. 

The grunion is in the lab.
Carry out frizzling:
	say "You frizzle [the noun]."
Carry out frozzling:
	if the topic understood matches "boo":
		try frizzling the noun;
	otherwise:
		say "I didn't follow that."
Additional InformationThe response to "boo grunion" is:

** Library error 13 (0,0) **
** A 'topic' token can only be followed by a preposition **

*** Run-time problem P37: Low level error.

(the grunion)
I didn't follow that.
TagsNo tags attached.
Effect(mild) Compiler accepts invalid code
Attached Files

- Relationships

-  Notes
(0001044)
mattweiner (reporter)
2011-02-22 19:08
edited on: 2011-02-22 19:09

This can also occur even in less abusive cases. For instance in the following:

[code]
Lab is a room.
The frozzle-text is an indexed text that varies.
The grunion-list is a list of indexed texts that varies.
Booing is an action applying to one topic. Understand "boo [text]" as booing.
Carry out booing:
   Now the frozzle-text is the topic understood;
   Add the frozzle-text to the grunion-list;
   say "'[The topic understood]' is now a synonym for the grunion."
The grunion is in the lab. Understand "[text]" as the grunion when the topic understood is listed in the grunion-list.
test me with "boo bam/x bam/show bam to me".
[/code]

"x bam" works, but "show bam to me" produces a P37 error (and then behaves as desired). Here I don't have a single "understand" statement of the form "[text] [something]", but I do wind up forcing the parser to evaluate a text-token in the middle of a command.

Apologies for the silly vocabulary; I tried writing a less silly example but couldn't get it to work.

(0002510)
graham (administrator)
2014-02-15 10:51

I've added a problem message to catch the original case at compile-time, and a run-time problem to catch the variation case at run-time.

- Issue History
Date Modified Username Field Change
2011-02-22 11:52 mattweiner New Issue
2011-02-22 16:08 jmcgrew Status new => acknowledged
2011-02-22 19:08 mattweiner Note Added: 0001044
2011-02-22 19:08 mattweiner Note Edited: 0001044 View Revisions
2011-02-22 19:09 mattweiner Note Edited: 0001044 View Revisions
2011-02-24 15:55 EmacsUser Status acknowledged => confirmed
2014-02-15 10:51 graham Note Added: 0002510
2014-02-15 10:51 graham Status confirmed => resolved
2014-02-15 10:51 graham Resolution open => fixed
2014-02-15 10:51 graham Assigned To => graham
2014-05-07 07:32 jmcgrew Fixed in Version => 6L02
2014-05-07 07:33 jmcgrew Status resolved => closed


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker