! Testing that held and creature tokens parse all/all-but correctly
! Testing issue 60 (sentence splitting)
! 
!
#Iftrue (#version_number == 8);
Constant USEINFORM;
#Endif;

Constant Story      "Parser test";
Constant Headline   "^A parser test suite for PunyInform.^";
Serial "200827";
Constant INITIAL_LOCATION_VALUE = LitRoom;

! Uncomment to show time instead of score/turns
!Statusline time;

!Constant DEBUG;
!Constant DEBUG_PARSEANDPERFORM;
!Constant DEBUG_PARSEPATTERN;
!Constant DEBUG_PARSETOKEN;
!Constant DEBUG_PARSENOUNPHRASE;
!Constant DEBUG_GETNEXTNOUN;
!Constant DEBUG_SCOPE;

! Uncomment to add optional features to PunyLib
!Constant DEBUG;
!Constant CUSTOM_ABBREVIATIONS;
!Constant OPTIONAL_ALLOW_WRITTEN_NUMBERS;
Constant OPTIONAL_EXTENDED_METAVERBS;
!Constant OPTIONAL_EXTENDED_VERBSET;
!Constant OPTIONAL_FULL_SCORE;
!Constant OPTIONAL_FULL_DIRECTIONS;
!Constant OPTIONAL_GUESS_MISSING_NOUN;
!Constant OPTIONAL_MANUAL_SCOPE;
!Constant RUNTIME_ERRORS = 0;

#Ifdef USEINFORM;
Include "Parser";
Include "VerbLib";
#IfNot;
Include "globals.h";
#EndIf;

#Ifndef USEINFORM;
Include "puny.h";
#EndIf;

! Uncomment to add PunyLib extensions
!Include "ext_menu.h";
!Include "ext_flags.h";
!Include "ext_quote_box.h";
!Include "ext_cheap_scenery.h";


! -- testing third noun
! See: https://www.inform-fiction.org/manual/html/sa6.html#ans91

#Ifdef USEINFORM;
Include "Grammar";
#Endif;

Object AnotherRoom "Another Room"
	with
		description [;
			print "You are the other room.^";
		],
		n_to LitRoom,
	has light;

Object LitRoom "Lit Room"
	with
		description [;
			print "You are in a brightly lit room.^";
		],
		s_to AnotherRoom,
	has light;

Object -> Battery "battery"
    with
        name 'battery';

Object -> Trousers "trousers"
    with
        name 'trousers'
    has clothing pluralname;

Object -> Box "box"
    with
        name 'box',
        before [;
        Enter: "Not a good idea";
        ],
    has open container static enterable;

Object -> Sack "sack"
    with
        name 'sack',
    has open container static enterable;

[Initialise;
	print "^^The testsuite is open for business!^^";
	print "If you drop the ball in the dark room it will still be in scope.^";
#IfDef USEINFORM;
    location=INITIAL_LOCATION_VALUE;
#EndIf;
];


