From 365283e10058822061213ec16210d4e0c8d55195 Mon Sep 17 00:00:00 2001 From: Graham Nelson Date: Wed, 13 Apr 2022 09:02:01 +0100 Subject: [PATCH] Fix for Mantis bug 1874 --- .../Documentation/Examples/(Recipes).txt | 1 - resources/Documentation/Examples/BNFRules.txt | 87 ------------------- 2 files changed, 88 deletions(-) delete mode 100644 resources/Documentation/Examples/BNFRules.txt diff --git a/resources/Documentation/Examples/(Recipes).txt b/resources/Documentation/Examples/(Recipes).txt index 75ff78fdc..10aa8c152 100644 --- a/resources/Documentation/Examples/(Recipes).txt +++ b/resources/Documentation/Examples/(Recipes).txt @@ -31,7 +31,6 @@ Appraisal == OMIT 12. Complete playable scenario *INFORMATION ONLY - Backus-Naur form for rules Formal syntax of sentences Mathematical view of relations Graph-theory view of relations diff --git a/resources/Documentation/Examples/BNFRules.txt b/resources/Documentation/Examples/BNFRules.txt deleted file mode 100644 index 0bd569274..000000000 --- a/resources/Documentation/Examples/BNFRules.txt +++ /dev/null @@ -1,87 +0,0 @@ -*** The preamble of a rule -(Backus-Naur form for rules) -The full grammar Inform uses to parse rule definitions, in a standard computer-science notation. - -Backus-Naur form, or BNF, is a standard notation used by computer scientists to specify more or less precisely what the valid programs are for a given programming language. It tends to provide a good description for a language such as C or Pascal, where contextual rules are limited, but the authors of Inform are doubtful that it is such a good tool for a natural-language system. For those who are interested, though, the following gives a formal specification for Inform's rules. - - <rule> ::= - Definition : A/an <kind> is <new adjectival name> if/unless <definition> - | <preamble> : <phrases> - | <preamble> , <phrase> (* only allowed for a few cases: see below) - - <definition> ::= - <condition> - | its/his/her/their <value property name> is/are <value> or less/more - | : <phrases> - - <preamble> ::= - To <phrase template> - | To decide if/whether <phrase template> - | To decide which/what <kind of value> is <phrase template> - | This is the <rule name> - | [[A] Rule for] <circumstances> [(this is the <rule name>)] - - <circumstances> ::= - At <time> - | When <event name> - | [<placement>] <rulebook reference> [while/when <condition>] [during <scene name>] - - <rulebook reference> ::= - <rulebook name> [about/for/of/on/rule] [<action pattern>] - | <object-based-rulebook name> [about/for/of/on/rule] [<description>] - - <placement> ::= - a/an - | [the] first - | [the] last - - <phrases> ::= - <phrase> - | <phrases> ; <phrase> - - -The following examples show how Inform breaks down some typical rules using the system above: - - <rule> = At 2:09 PM: increase the score by 2; say "Progress!" - <preamble> = At 2:09 PM - <circumstances> = At 2:09 PM - At - <time> = 2:09 PM - : - <phrases> = increase the score by 2; say "Progress!" - <phrase> = increase the score by 2 - ; - <phrase> = say "Progress" - - <rule> = Instead of eating the ostrich during Formal Dinner (this is the cuisine rule), say "It's greasy!" - <preamble> = Instead of eating the ostrich during Formal Dinner (this is the cuisine rule) - <circumstances> = Instead of eating the ostrich during Formal Dinner - <rulebook reference> = Instead of eating the ostrich - <rulebook name> = Instead - of - <action pattern> = eating the ostrich - during - <scene name> = Formal Dinner - ( - this - is - the - <rule name> = cuisine rule - ) - , - <phrases> = say "It's greasy!" - <phrase> = say "It's greasy!" - - <rule> = After printing the name of a container: say "!" - <preamble> = After printing the name of a container - <circumstances> = After printing the name of a container - <rulebook reference> = After printing the name of a container - <object-based-rulebook name> = After printing the name - of - <description> = a container - : - <phrases> = say "!" - <phrase> = say "!" - - -(*) The colon dividing a rule preamble from its definition can be replaced by a comma only if the preamble begins with the words "Instead of", "Before", "After", "Every turn" or "When", and if the definition consists only of a single phrase.