Object selfobj "(self object)" with short_name [; return L__M(##Miscellany, 18); ], description [; return L__M(##Miscellany, 19); ], before NULL, after NULL, life NULL, each_turn NULL, time_out NULL, describe NULL, capacity 100, parse_name 0, orders 0, number 0, has concealed animate proper transparent; ! ============================================================================ ! The definition of the token-numbering system used by Inform. ! ---------------------------------------------------------------------------- Constant ILLEGAL_TT = 0; ! Types of grammar token: illegal Constant ELEMENTARY_TT = 1; ! (one of those below) Constant PREPOSITION_TT = 2; ! e.g. 'into' Constant ROUTINE_FILTER_TT = 3; ! e.g. noun=CagedCreature Constant ATTR_FILTER_TT = 4; ! e.g. edible Constant SCOPE_TT = 5; ! e.g. scope=Spells Constant GPR_TT = 6; ! a general parsing routine Constant NOUN_TOKEN = 0; ! The elementary grammar tokens, and Constant HELD_TOKEN = 1; ! the numbers compiled by Inform to Constant MULTI_TOKEN = 2; ! encode them Constant MULTIHELD_TOKEN = 3; Constant MULTIEXCEPT_TOKEN = 4; Constant MULTIINSIDE_TOKEN = 5; Constant CREATURE_TOKEN = 6; Constant SPECIAL_TOKEN = 7; Constant NUMBER_TOKEN = 8; Constant TOPIC_TOKEN = 9; Constant GPR_FAIL = -1; ! Return values from General Parsing Constant GPR_PREPOSITION = 0; ! Routines Constant GPR_NUMBER = 1; Constant GPR_MULTIPLE = 2; Constant GPR_REPARSE = REPARSE_CODE; Constant GPR_NOUN = $ff00; Constant GPR_HELD = $ff01; Constant GPR_MULTI = $ff02; Constant GPR_MULTIHELD = $ff03; Constant GPR_MULTIEXCEPT = $ff04; Constant GPR_MULTIINSIDE = $ff05; Constant GPR_CREATURE = $ff06; Constant ENDIT_TOKEN = 15; ! Value used to mean "end of grammar line" #Iftrue Grammar__Version == 1; [ AnalyseToken token m; found_tdata = token; if (token < 0) { found_ttype = ILLEGAL_TT; return; } if (token <= 8) { found_ttype = ELEMENTARY_TT; return; } if (token < 15) { found_ttype = ILLEGAL_TT; return; } if (token == 15) { found_ttype = ELEMENTARY_TT; return; } if (token < 48) { found_ttype = ROUTINE_FILTER_TT; found_tdata = token - 16; return; } if (token < 80) { found_ttype = GPR_TT; found_tdata = #preactions_table-->(token-48); return; } if (token < 128) { found_ttype = SCOPE_TT; found_tdata = #preactions_table-->(token-80); return; } if (token < 180) { found_ttype = ATTR_FILTER_TT; found_tdata = token - 128; return; } found_ttype = PREPOSITION_TT; m=#adjectives_table; for (::) { if (token==m-->1) { found_tdata = m-->0; return; } m=m+4; } m=#adjectives_table; RunTimeError(1); found_tdata = m; ];