Ahh, I was a little too excited when I saw the code you wrote… Sorry
I’m running though some IF in Japanese right now and inventorying the commands. This may be my best bet… There are only a finite number of things Kaori can do, and I want to leverage as much of Inform’s native ability to handle objects
for what it’s worth, this is the error I got when I tried to run your example
C:\Program Files (x86)\Inform 7\Compilers\ni \
-rules "C:\Program Files (x86)\Inform 7\Inform7\Extensions" -package "C:\Users\halkun\Documents\Inform\Projects\Jtest.inform" -extension=ulx
Inform 7 build 6G60 has started.
I've now read your source text, which is 937 words long.
I've also read Standard Rules by Graham Nelson, which is 39455 words long.
I've also read Context-Free Parsing Engine by Brady Garvin, which is 13902 words long.
I've also read Punctuated Word Parsing Engine by Brady Garvin, which is 5454 words long.
I've also read Disambiguation Framework by Brady Garvin, which is 6292 words long.
I've also read Runtime Checks by Brady Garvin, which is 1797 words long.
I've also read Low-Level Operations by Brady Garvin, which is 7588 words long.
I've also read Low-Level Text by Brady Garvin, which is 4835 words long.
I've also read Low-Level Linked Lists by Brady Garvin, which is 17877 words long.
I've also read Low-Level Hash Tables by Brady Garvin, which is 6601 words long.
I've also read Object Pools by Brady Garvin, which is 1521 words long.
In Book "Linked List Vertices", Chapter "The Linked List Vertex Structure" -
unindexed, Section "Linked List Vertex Construction and Destruction" -
unindexed in the extension Low-Level Linked Lists by Brady Garvin:
>--> The sentence 'The linked list vertex object pool is an object pool that
varies' (C:\Users\halkun\Documents\Inform\Extensions\brady garvin\low-level
linked lists.i7x, line 99) appears to say two things are the same - I am
reading 'linked list vertex object pool' and 'object pool that varies' as
two different things, and therefore it makes no sense to say that one is
the other: it would be like saying that 'Choucas is Hibou'. It would be all
right if the second thing were the name of a kind, perhaps with properties:
for instance 'The Hall is a lighted room' says that something called The
Hall exists and that it is a 'room', which is a kind I know about, combined
with a property called 'lighted' which I also know about.
In Book "Linked Lists", Chapter "The Linked List Kind" in the extension
Low-Level Linked Lists by Brady Garvin:
>--> You wrote ''A linked list is a kind of value' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\low-level linked lists.i7x, line 172)', but that seems to say that
some room or thing already created ('linked list vertex object pool',
created by ''The linked list vertex object pool is an object pool that
varies' (C:\Users\halkun\Documents\Inform\Extensions\brady garvin\low-level
linked lists.i7x, line 99)') is now to become a kind. To prevent a variety
of possible misunderstandings, this is not allowed: when a kind is created,
the name given has to be a name not so far used. (Sometimes this happens
due to confusion between names. For instance, if a room called 'Marble
archway' exists, then Inform reads 'An archway is a kind of thing', Inform
will read 'archway' as a reference to the existing room, not as a new name.
To solve this, put the sentences the other way round.)
>--> The sentence 'A linked list is an invalid linked list' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\low-level linked lists.i7x, line 173) appears to say two things are
the same - I am reading 'linked list' and 'invalid linked list' as two
different things, and therefore it makes no sense to say that one is the
other: it would be like saying that 'Choucas is Hibou'. It would be all
right if the second thing were the name of a kind, perhaps with properties:
for instance 'The Hall is a lighted room' says that something called The
Hall exists and that it is a 'room', which is a kind I know about, combined
with a property called 'lighted' which I also know about.
In Book "Object Pools", Chapter "Object Pools", Section "The Object Pool
Kind" in the extension Object Pools by Brady Garvin:
>--> You wrote ''An object pool is a kind of value' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\object pools.i7x, line 47)', but that seems to say that some room or
thing already created ('object pool that varies', created by ''The linked
list vertex object pool is an object pool that varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\low-level linked lists.i7x, line 99)') is now to become a kind. To
prevent a variety of possible misunderstandings, this is not allowed: when
a kind is created, the name given has to be a name not so far used.
(Sometimes this happens due to confusion between names. For instance, if a
room called 'Marble archway' exists, then Inform reads 'An archway is a
kind of thing', Inform will read 'archway' as a reference to the existing
room, not as a new name. To solve this, put the sentences the other way
round.)
>--> The sentence 'An object pool is an invalid object pool' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\object pools.i7x, line 48) appears to say two things are the same -
I am reading 'object pool' and 'invalid object pool' as two different
things, and therefore it makes no sense to say that one is the other: it
would be like saying that 'Choucas is Hibou'. It would be all right if the
second thing were the name of a kind, perhaps with properties: for instance
'The Hall is a lighted room' says that something called The Hall exists and
that it is a 'room', which is a kind I know about, combined with a property
called 'lighted' which I also know about.
In Book "Data Structures", Part "Parsing Structures", Chapter "Parse Steps" -
unindexed, Section "Helper Variables and Functions for [...] Step
Construction and Destruction" - unindexed in the extension Context-Free
Parsing Engine by Brady Garvin:
>--> In 'The parse step object pool is an object pool that varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\context-free parsing engine.i7x, line 399), 'object pool that
varies' is a contradiction in terms, as this is something that cannot ever
vary.
In Part "Mixed-Purpose Data Structures", Chapter "Parse Tree Vertices",
Section "Helper Variables and Functions for [...] ertex Construction and
Destruction" - unindexed in the extension Context-Free Parsing Engine by
Brady Garvin:
>--> In 'The parse tree vertex object pool is an object pool that varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\context-free parsing engine.i7x, line 464), 'object pool that
varies' is a contradiction in terms, as this is something that cannot ever
vary.
In Book "Punctuated Word Parsing", Chapter "Understand Line Internals" -
unindexed in the extension Punctuated Word Parsing Engine by Brady
Garvin:
>--> In 'The understand parseme linked list is a linked list that varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\punctuated word parsing engine.i7x, line 285), 'linked list that
varies' is a contradiction in terms, as this is something that cannot ever
vary.
In Book "Disambiguation Framework", Chapter "Scoring", Section "Scoring
Subroutines" - unindexed in the extension Disambiguation Framework by Brady
Garvin:
>--> In 'The parse tree score hash table stack is a linked list that varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\disambiguation framework.i7x, line 180), 'linked list that varies'
is a contradiction in terms, as this is something that cannot ever vary.
In Chapter "Unification" - unindexed, Section "Private Unification Variables"
- unindexed in the extension Disambiguation Framework by Brady Garvin:
>--> In 'The canonical tree count list is a linked list that varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\disambiguation framework.i7x, line 383), 'linked list that varies'
is a contradiction in terms, as this is something that cannot ever vary.
>--> In 'The canonical tree count list stack is a linked list that varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\disambiguation framework.i7x, line 385), 'linked list that varies'
is a contradiction in terms, as this is something that cannot ever vary.
In Chapter "Local Disambiguation", Section "Private Local Disambiguation
Variables" - unindexed in the extension Disambiguation Framework by Brady
Garvin:
>--> In 'The parse tree feature hash table stack is a linked list that
varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\disambiguation framework.i7x, line 433), 'linked list that varies'
is a contradiction in terms, as this is something that cannot ever vary.
>--> In 'The already matchable tree list is a linked list that varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\disambiguation framework.i7x, line 439), 'linked list that varies'
is a contradiction in terms, as this is something that cannot ever vary.
>--> In 'The offered feature alternative list is a linked list that varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\disambiguation framework.i7x, line 443), 'linked list that varies'
is a contradiction in terms, as this is something that cannot ever vary.
>--> In 'The offered beginning lexeme index stack is a linked list that
varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\disambiguation framework.i7x, line 448), 'linked list that varies'
is a contradiction in terms, as this is something that cannot ever vary.
>--> In 'The offered feature alternative list stack is a linked list that
varies' (C:\Users\halkun\Documents\Inform\Extensions\brady
garvin\disambiguation framework.i7x, line 449), 'linked list that varies'
is a contradiction in terms, as this is something that cannot ever vary.
Inform 7 has finished.
Compiler finished with code 1