﻿#----------------------------------------------------------------------------
# Purpose: To define the grammar for the English language
# Version: Thinknowlogy 2018r4 (New Science)
#----------------------------------------------------------------------------
# Copyright (C) 2009-2018, Menno Mafait. Your suggestions, modifications,
# corrections and bug reports are welcome at http://mafait.org/contact/
#----------------------------------------------------------------------------

#----------- Word definitions -----------

@0		:0		$undefined

#--- Symbols ---
@1		:0		$symbol
@1		:100	$symbol_comma									,
@1		:101	$symbol_colon									.
@1		:102	$symbol_exclamation_mark						!
@1		:103	$symbol_question_mark							?
#@1		:104	$symbol_Chinese_negative_separator
#@1		:105	$symbol_Chinese_question_separator
#@1		:106	$symbol_Spanish_inverted_exclamation_mark
#@1		:107	$symbol_Spanish_inverted_question_mark


#--- Numerals ---
@2		:0		$numeral
@2		:200	$numeral_Both									both
#@2		:201	$numeral_Chinese_All


#--- Letters ---
@3		:0		$letter_small
@4		:0		$letter_capital


#--- Proper nouns ---
@5		:0		$proper_noun


#--- Adjectives ---
@6		:0		$adjective
@6		:600	$adjective										assigned
@6		:601	$adjective										busy
@6		:602	$adjective										defensive
@6		:603	$adjective										done
@6		:604	$adjective										empty
@6		:605	$adjective										exclusive
@6		:606	$adjective										feminine
@6		:607	$adjective										inverted
@6		:608	$adjective										masculine
@6		:609	$adjective_comparison							bigger
@6		:610	$adjective_comparison							earlier
@6		:611	$adjective_comparison							equal
@6		:612	$adjective_comparison							higher
@6		:613	$adjective_comparison							larger
@6		:614	$adjective_comparison							later
@6		:615	$adjective_comparison							less
@6		:616	$adjective_comparison							lower
@6		:617	$adjective_comparison							more
@6		:618	$adjective_comparison							same
@6		:619	$adjective_comparison							smaller
@6		:620	$adjective_Called								called
#@6		:621	$adjective_Called
#@6		:622	$adjective_Called
@6		:623	$adjective_Characteristic						characteristic
@6		:624	$adjective_Current								current
#@6		:625	$adjective_Current
@6		:626	$adjective_Even									even
@6		:627	$adjective_Every								every
#@6		:628	$adjective_Every
@6		:629	$adjective_New									new
#@6		:630	$adjective_New
#@6		:631	$adjective_Next									next
#@6		:632	$adjective_Next
@6		:633	$adjective_No									no
@6		:634	$adjective_Odd									odd
@6		:635	$adjective_Previous								previous
#@6		:636	$adjective_Previous
@6		:637	$adjective_Specific								specific


#--- Adverbs ---
@7		:0		$adverb
@7		:700	$adverb_uncertainty								maybe
@7		:701	$adverb_uncertainty								possibly
@7		:702	$adverb_uncertainty								probably
@7		:703	$adverb_Anymore									anymore
@7		:704	$adverb_As										as
@7		:705	$adverb_Not										not
#@7		:706	$adverb_Chinese_Never_Again
#@7		:707	$adverb_French_Pas


#--- Interjections ---
@8		:0		$interjection
@8		:800	$interjection_Yes								yes
@8		:801	$interjection_No								no


#--- Articles ---
@9		:0		$article
@9		:900	$article_indefinite								an
#@9		:901	$article_indefinite
#@9		:902	$article_indefinite
#@9		:903	$article_indefinite
@9		:904	$article_indefinite								a
#@9		:905	$article_indefinite
#@9		:906	$article_indefinite
#@9		:907	$article_indefinite
@9		:908	$article_definite								the
#@9		:909	$article_definite
#@9		:910	$article_definite
#@9		:911	$article_definite
#@9		:912	$article_definite
#@9		:913	$article_definite


#--- Conjunctions ---
@10		:0		$conjunction
@10		:1000	$conjunction_collective							and
@10		:1001	$conjunction_exclusive							or
@10		:1002	$conjunction_Than								than
#@10	:1003	$conjunction_Than
#@10	:1004	$conjunction_Dutch_Zowel
#@10	:1005	$conjunction_Dutch_Als


#--- Singular nouns ---
@11		:0		$noun_singular
@11		:1100	$noun_singular									developer
@11		:1101	$noun_singular									expert
@11		:1102	$noun_singular									file
@11		:1103	$noun_singular									head
@11		:1104	$noun_singular									justification report
@11		:1105	$noun_singular									language
@11		:1106	$noun_singular									mind
@11		:1107	$noun_singular									number
@11		:1108	$noun_singular									password
@11		:1109	$noun_singular									solve level
@11		:1110	$noun_singular									solve method
@11		:1111	$noun_singular									solve strategy
@11		:1112	$noun_singular									startup language
@11		:1113	$noun_singular									tail
@11		:1114	$noun_singular									test file
@11		:1115	$noun_singular									user
@11		:1116	$noun_singular_Information						information
@11		:1117	$noun_singular_Part								part
@11		:1118	$noun_singular_Value							value
#@11	:1119	$noun_Chinese_Is_It_True


#--- Plural nouns ---
@12		:0		$noun_plural


#--- Singular pronouns ---
@13		:0		$personal_pronoun_singular_subjective
#@13	:1300	$personal_pronoun_singular_subjective			I
#@13	:1301	$personal_pronoun_singular_subjective			you
#@13	:1302	$personal_pronoun_singular_subjective			you
#@13	:1303	$personal_pronoun_singular_subjective			he
#@13	:1304	$personal_pronoun_singular_subjective			she
#@13	:1305	$personal_pronoun_singular_subjective			it

@14		:0		$personal_pronoun_singular_objective
#@14	:1300	$personal_pronoun_singular_objective			me
#@14	:1301	$personal_pronoun_singular_objective			you
#@14	:1302	$personal_pronoun_singular_objective			you
#@14	:1303	$personal_pronoun_singular_objective			him
#@14	:1304	$personal_pronoun_singular_objective			her
#@14	:1305	$personal_pronoun_singular_objective			it

@15		:0		$possessive_determiner_singular
@15		:1300	$possessive_determiner_singular					my
@15		:1301	$possessive_determiner_singular					your
#@15	:1302	$possessive_determiner_singular					your
@15		:1303	$possessive_determiner_singular					his
@15		:1304	$possessive_determiner_singular					her
@15		:1305	$possessive_determiner_singular					its

@16		:0		$possessive_pronoun_singular
@16		:1300	$possessive_pronoun_singular					mine
@16		:1301	$possessive_pronoun_singular					yours
#@16	:1302	$possessive_pronoun_singular					yours
#@16	:1303	$possessive_pronoun_singular					his
#@16	:1304	$possessive_pronoun_singular					hers
#@16	:1305	$possessive_pronoun_singular					its


#--- Plural pronouns ---
@17		:0		$personal_pronoun_plural_subjective
#@17	:1700	$personal_pronoun_plural_subjective				we
#@17	:1701	$personal_pronoun_plural_subjective				we
#@17	:1702	$personal_pronoun_plural_subjective				you
#@17	:1703	$personal_pronoun_plural_subjective				you
#@17	:1704	$personal_pronoun_plural_subjective				you
#@17	:1705	$personal_pronoun_plural_subjective				they
#@17	:1706	$personal_pronoun_plural_subjective				they

@18		:0		$personal_pronoun_plural_objective
#@18	:1700	$personal_pronoun_plural_objective				us
#@18	:1701	$personal_pronoun_plural_objective				us
#@18	:1702	$personal_pronoun_plural_objective				you
#@18	:1703	$personal_pronoun_plural_objective				you
#@18	:1704	$personal_pronoun_plural_objective				you
#@18	:1705	$personal_pronoun_plural_objective				them
#@18	:1706	$personal_pronoun_plural_objective				them

@19		:0		$possessive_determiner_plural
#@19	:1700	$possessive_determiner_plural					our
#@19	:1701	$possessive_determiner_plural					our
#@19	:1702	$possessive_determiner_plural					your
#@19	:1703	$possessive_determiner_plural					your
#@19	:1704	$possessive_determiner_plural					your
#@19	:1705	$possessive_determiner_plural					their
#@19	:1706	$possessive_determiner_plural					their

@20		:0		$possessive_pronoun_plural
#@20	:1700	$possessive_pronoun_plural						ours
#@20	:1701	$possessive_pronoun_plural						ours
#@20	:1702	$possessive_pronoun_plural						yours
#@20	:1703	$possessive_pronoun_plural						yours
#@20	:1704	$possessive_pronoun_plural						yours
#@20	:1705	$possessive_pronoun_plural						theirs
#@20	:1706	$possessive_pronoun_plural						theirs


#--- Prepositions ---
@21		:0		$preposition
@21		:2100	$preposition									about
@21		:2101	$preposition									from
#@21	:2102	$preposition
@21		:2103	$preposition									to
@21		:2104	$preposition_For								for
@21		:2105	$preposition_Of									of
#@21	:2106	$preposition_Chinese_imperative_verb
#@21	:2107	$preposition_Chinese_imperative_verb
#@21	:2108	$preposition_Chinese_imperative_verb
#@21	:2109	$preposition_French_à


#--- Singular verbs ---
@22		:0		$verb_singular
@22		:2200	$verb_singular_present_tense					is
@22		:2201	$verb_singular_past_tense						was
@22		:2202	$verb_singular_conditional						can-be
@22		:2203	$verb_singular_possessive_present_tense			has
@22		:2204	$verb_singular_possessive_past_tense			had
@22		:2205	$verb_imperative								add
@22		:2206	$verb_imperative								clear
@22		:2207	$verb_imperative								display
@22		:2208	$verb_imperative								help
@22		:2209	$verb_imperative								login
@22		:2210	$verb_imperative								move
@22		:2211	$verb_imperative								read
@22		:2212	$verb_imperative								redo
@22		:2213	$verb_imperative								remove
@22		:2214	$verb_imperative								restart
@22		:2215	$verb_imperative								solve
@22		:2216	$verb_imperative								undo
#@22	:2217	$verb_imperative_Chinese_Put


#--- Plural verbs ---
@23		:0		$verb_plural
@23		:2300	$verb_plural_present_tense						are
@23		:2301	$verb_plural_past_tense							were
@23		:2302	$verb_plural_conditional						can-be
@23		:2303	$verb_plural_possessive_present_tense			have
@23		:2304	$verb_plural_possessive_past_tense				had


#--- Selection words ---
@24		:0		$selection
@24		:2400	$selection_If									if
@24		:2401	$selection_Then									then
@24		:2402	$selection_Else									else


#--- Text ---
@25		:0		$text


#--- Feminine proper noun endings ---
@0		:3000	$a
@0		:3000	$ee
@0		:3000	$ée
@0		:3000	$ell
@0		:3000	$ine
@0		:3000	$lie
@0		:3000	$lle
@0		:3000	$lyn
@0		:3000	$nn
@0		:3000	$nne
@0		:3000	$oan
@0		:3000	$tte


#--- Masculine proper noun endings ---
#@0		:3001


#--- Feminine singular noun endings ---
#@0		:3002


#--- Masculine singular noun endings ---
#@0		:3003


#--- Plural noun endings ---
@0		:3004	$ren
@0		:3004	$sen
@0		:3004	$bs				b
@0		:3004	$ds				d
@0		:3004	$ees			ee
@0		:3004	$fish			fish
@0		:3004	$ges			ge
@0		:3004	$gs				g
@0		:3004	$hs				h
@0		:3004	$i				us
@0		:3004	$ks				k
@0		:3004	$las			la
@0		:3004	$les			le
@0		:3004	$lies			ly
@0		:3004	$ls				l
@0		:3004	$men			man
@0		:3004	$mice			mouse
@0		:3004	$ms				m
@0		:3004	$nes			ne
@0		:3004	$ns				n
@0		:3004	$os				o
@0		:3004	$pes			pe
@0		:3004	$ps				p
@0		:3004	$res			re
@0		:3004	$rs				r
@0		:3004	$ts				t
@0		:3004	$ses			se
@0		:3004	$tes			te
@0		:3004	$ys				y
#-----------------------------------------------------
# Process the following plural noun endings first
#-----------------------------------------------------
@0		:3004	$cts			ct


#--- Merged words ---
#@0		:3005


#--- Assignment nouns ---
#@0		:3006


#----------- Grammar definitions ---------------

# [ .. ]		= option
# [ .. | .. ]	= multiple options
# { .. | .. }	= choice
# ( .. )		= optional for reading, will not be used for writing


#--- Special verbs ---
		$singular_verb_present_or_past_tense											{ verb_singular_present_tense | verb_singular_past_tense }
:5120	$singular_verb																	singular_verb_present_or_past_tense [ adverb_uncertainty ]
:5120	$singular_conditional_verb														verb_singular_conditional

		$plural_verb_present_or_past_tense												{ verb_plural_present_tense | verb_plural_past_tense }
:5120	$plural_verb																	plural_verb_present_or_past_tense [ adverb_uncertainty ]
:5120	$plural_conditional_verb														verb_plural_conditional

:5120	$singular_possessive_verb														{ verb_singular_possessive_present_tense | verb_singular_possessive_past_tense } [ adverb_uncertainty ]
:5120	$plural_possessive_verb															{ verb_plural_possessive_present_tense | verb_plural_possessive_past_tense } [ adverb_uncertainty ]

:5121	$singular_question_verb															singular_verb_present_or_past_tense
:5121	$plural_question_verb															plural_verb_present_or_past_tense

:5122	$singular_specification_generalization_verb										singular_verb
:5122	$plural_specification_generalization_verb										plural_verb

:5123	$singular_specification_generalization_question_verb							singular_verb_present_or_past_tense
:5123	$plural_specification_generalization_question_verb								plural_verb_present_or_past_tense


#--- Special conjunctions ---
:5110	$comma_conjunction																symbol_comma
:5110	$collective_sentence_conjunction												conjunction_collective
:5110	$exclusive_sentence_conjunction													conjunction_exclusive


#--- Special articles ---
		$assignment_possessive_determiner												{ possessive_determiner_singular | possessive_determiner_plural }
:5100	$generalization_assignment_article												{ assignment_possessive_determiner | article_definite }
:5101	$specification_assignment_definite_article										article_definite
:5101	$specification_assignment_possessive_determiner									assignment_possessive_determiner
:5102	$relation_assignment_article													{ assignment_possessive_determiner | article_definite }


#-----------

:5023	$exclusive_specification_conjunction											( symbol_comma ) conjunction_exclusive

:5022	$As																				adverb_As
:5022	$Information																	noun_singular_Information
:5022	$specification_numeral															[ adverb_Not ] numeral
		$comma_separated_specification_numerals											symbol_comma specification_numeral [ comma_separated_specification_numerals ]
		$collective_specification_numerals												specification_numeral [ comma_separated_specification_numerals ] conjunction_collective specification_numeral
		$more_exclusive_specification_numerals											[ comma_separated_specification_numerals ] exclusive_specification_conjunction specification_numeral
		$exclusive_specification_numerals												specification_numeral [ more_exclusive_specification_numerals ]

:5022	$specification_small_letter														[ adverb_Not ] letter_small
		$comma_separated_specification_small_letters									symbol_comma specification_small_letter [ comma_separated_specification_small_letters ]
		$collective_specification_small_letters											specification_small_letter [ comma_separated_specification_small_letters ] conjunction_collective specification_small_letter
		$more_exclusive_specification_small_letters										[ comma_separated_specification_small_letters ] exclusive_specification_conjunction specification_small_letter
		$exclusive_specification_small_letters											specification_small_letter [ more_exclusive_specification_small_letters ]

:5022	$specification_capital_letter													[ adverb_Not ] letter_capital
		$comma_separated_specification_capital_letters									symbol_comma specification_capital_letter [ comma_separated_specification_capital_letters ]
		$collective_specification_capital_letters										specification_capital_letter [ comma_separated_specification_capital_letters ] conjunction_collective specification_capital_letter
		$more_exclusive_specification_capital_letters									[ comma_separated_specification_capital_letters ] exclusive_specification_conjunction specification_capital_letter
		$exclusive_specification_capital_letters										specification_capital_letter [ more_exclusive_specification_capital_letters ]

:5022	$specification_adjective														[ adverb_Not ] adjective
		$comma_separated_specification_adjectives										symbol_comma specification_adjective [ comma_separated_specification_adjectives ]
		$collective_specification_adjectives											specification_adjective [ comma_separated_specification_adjectives ] conjunction_collective specification_adjective
		$more_exclusive_specification_adjectives										[ comma_separated_specification_adjectives ] exclusive_specification_conjunction specification_adjective
		$exclusive_specification_adjectives												specification_adjective [ more_exclusive_specification_adjectives ]

		$multiple_word_singular_noun													noun_singular ( multiple_word_singular_noun )
:5022	$single_singular_specification_noun												multiple_word_singular_noun
:5022	$Value																			noun_singular_Value

		$specification_noun_assignment_article											[ adverb_Not ] { specification_assignment_possessive_determiner | article_indefinite | specification_assignment_definite_article }
		$singular_noun_assignment_specification_noun									[ adjective_Previous | adjective_Current | Value preposition_Of relation_assignment_article ] single_singular_specification_noun
		$singular_noun_assignment_specification_noun_with_mandatory_article				specification_noun_assignment_article singular_noun_assignment_specification_noun
		$singular_noun_assignment_specification_noun_with_optional_article				[ specification_noun_assignment_article ] singular_noun_assignment_specification_noun
		$comma_separated_singular_noun_assignment_specification_nouns					symbol_comma singular_noun_assignment_specification_noun_with_optional_article [ comma_separated_singular_noun_assignment_specification_nouns ]
		$more_singular_noun_assignment_specification_nouns								[ comma_separated_singular_noun_assignment_specification_nouns ] conjunction_collective singular_noun_assignment_specification_noun_with_optional_article
		$singular_noun_assignment_specification_nouns									singular_noun_assignment_specification_noun_with_mandatory_article [ more_singular_noun_assignment_specification_nouns ]

		$specification_proper_noun_assignment_article									[ adverb_Not ] { specification_assignment_possessive_determiner | specification_assignment_definite_article }
		$singular_proper_noun_assignment_specification_noun								[ adjective_Previous | adjective_Current | Value preposition_Of relation_assignment_article ] single_singular_specification_noun
		$singular_proper_noun_assignment_specification_noun_with_mandatory_article		specification_proper_noun_assignment_article singular_proper_noun_assignment_specification_noun
		$singular_proper_noun_assignment_specification_noun_with_optional_article		[ specification_proper_noun_assignment_article ] singular_proper_noun_assignment_specification_noun
		$comma_separated_singular_proper_noun_assignment_specification_nouns			symbol_comma singular_proper_noun_assignment_specification_noun_with_optional_article [ comma_separated_singular_proper_noun_assignment_specification_nouns ]
		$more_singular_proper_noun_assignment_specification_nouns						[ comma_separated_singular_proper_noun_assignment_specification_nouns ] conjunction_collective singular_proper_noun_assignment_specification_noun_with_optional_article
		$singular_proper_noun_assignment_specification_nouns							singular_proper_noun_assignment_specification_noun_with_mandatory_article [ more_singular_proper_noun_assignment_specification_nouns ]

		$singular_structure_specification_noun											[ adjective_Previous | adjective_New ] single_singular_specification_noun
		$singular_structure_specification_noun_with_mandatory_article					[ adverb_Not ] article_indefinite singular_structure_specification_noun
		$singular_structure_specification_noun_with_optional_article					[ adjective_No | article_indefinite ] singular_structure_specification_noun
		$comma_separated_singular_structure_specification_nouns							symbol_comma singular_structure_specification_noun_with_optional_article [ comma_separated_singular_structure_specification_nouns ]
		$singular_exclusive_structure_specification_nouns								singular_structure_specification_noun_with_mandatory_article [ comma_separated_singular_structure_specification_nouns ] [ exclusive_specification_conjunction singular_structure_specification_noun_with_optional_article ]

		$multiple_word_plural_noun														( multiple_word_singular_noun ) noun_plural
:5022	$plural_specification_noun														multiple_word_plural_noun
		$plural_assignment_specification_noun											[ specification_noun_assignment_article ] plural_specification_noun
		$comma_separated_plural_assignment_specification_nouns							symbol_comma plural_assignment_specification_noun [ comma_separated_plural_assignment_specification_nouns ]
		$more_plural_assignment_specification_nouns										[ comma_separated_plural_assignment_specification_nouns ] conjunction_collective plural_assignment_specification_noun
		$plural_assignment_specification_nouns											plural_assignment_specification_noun [ more_plural_assignment_specification_nouns ]
		$plural_structure_specification_noun											[ adjective_No | numeral ] plural_specification_noun

		$structure_specification_noun													{ singular_structure_specification_noun_with_mandatory_article | plural_structure_specification_noun }
		$comma_separated_structure_specification_nouns									symbol_comma structure_specification_noun [ comma_separated_structure_specification_nouns ]
		$more_collective_structure_specification_nouns									[ comma_separated_structure_specification_nouns ] conjunction_collective structure_specification_noun
		$collective_structure_specification_nouns										structure_specification_noun [ more_collective_structure_specification_nouns ]
		$more_exclusive_structure_specification_nouns									[ comma_separated_structure_specification_nouns ] exclusive_specification_conjunction structure_specification_noun
		$structure_specification_nouns													structure_specification_noun [ more_collective_structure_specification_nouns | more_exclusive_structure_specification_nouns ]

		$possessive_singular_structure_specification_noun_with_mandatory_article		{ adjective_No | article_indefinite } [ adjective_Specific ] singular_structure_specification_noun
		$possessive_structure_specification_noun										{ possessive_singular_structure_specification_noun_with_mandatory_article | plural_structure_specification_noun }
		$comma_separated_possessive_structure_specification_nouns						symbol_comma possessive_structure_specification_noun [ comma_separated_possessive_structure_specification_nouns ]
		$more_collective_possessive_structure_specification_nouns						[ comma_separated_possessive_structure_specification_nouns ] conjunction_collective possessive_structure_specification_noun
		$possessive_structure_specification_nouns										possessive_structure_specification_noun [ more_collective_possessive_structure_specification_nouns ]

:5022	$specification_pronoun															[ adverb_Not ] { possessive_pronoun_singular | possessive_pronoun_plural }
		$comma_separated_specification_pronouns											symbol_comma specification_pronoun [ comma_separated_specification_pronouns ]
		$collective_specification_pronouns												specification_pronoun [ comma_separated_specification_pronouns ] conjunction_collective specification_pronoun
		$more_exclusive_specification_pronouns											[ comma_separated_specification_pronouns ] exclusive_specification_conjunction specification_pronoun
		$exclusive_specification_pronouns												specification_pronoun [ more_exclusive_specification_pronouns ]

		$multiple_word_proper_noun														proper_noun ( multiple_word_proper_noun )
:5022	$specification_proper_noun														[ adverb_Not ] [ article_definite ] multiple_word_proper_noun
		$comma_separated_specification_proper_nouns										symbol_comma specification_proper_noun [ comma_separated_specification_proper_nouns ]
		$collective_specification_proper_nouns											specification_proper_noun [ comma_separated_specification_proper_nouns ] conjunction_collective specification_proper_noun
		$more_exclusive_specification_proper_nouns										[ comma_separated_specification_proper_nouns ] exclusive_specification_conjunction specification_proper_noun
		$exclusive_specification_proper_nouns											specification_proper_noun [ more_exclusive_specification_proper_nouns ]

:5022	$specification_text																text
		$comma_separated_specification_texts											symbol_comma specification_text [ comma_separated_specification_texts ]
		$more_exclusive_specification_texts												[ comma_separated_specification_texts ] exclusive_specification_conjunction specification_text
		$exclusive_specification_texts													specification_text [ more_exclusive_specification_texts ]

:5021	$singular_noun_assignment_specification											{ singular_noun_assignment_specification_nouns | collective_specification_proper_nouns | specification_proper_noun | collective_specification_numerals | specification_numeral | collective_specification_small_letters | specification_small_letter | collective_specification_capital_letters | specification_capital_letter | collective_specification_adjectives | specification_adjective | collective_specification_pronouns | specification_pronoun | specification_text }
:5021	$singular_proper_noun_assignment_specification									{ singular_proper_noun_assignment_specification_nouns | collective_specification_numerals | specification_numeral | collective_specification_small_letters | specification_small_letter | collective_specification_capital_letters | specification_capital_letter | collective_specification_adjectives | specification_adjective | collective_specification_pronouns | specification_pronoun | specification_text }
:5021	$plural_assignment_specification												{ plural_assignment_specification_nouns | collective_specification_numerals | collective_specification_small_letters | collective_specification_capital_letters | collective_specification_adjectives | collective_specification_pronouns }
:5021	$noun_assignment_specification													{ singular_noun_assignment_specification_nouns | plural_assignment_specification_nouns | collective_specification_adjectives }
:5021	$proper_noun_assignment_specification											{ singular_proper_noun_assignment_specification_nouns | plural_assignment_specification_nouns | collective_specification_adjectives }

:5020	$singular_structure_specification												{ singular_exclusive_structure_specification_nouns | exclusive_specification_proper_nouns | exclusive_specification_numerals | exclusive_specification_small_letters | exclusive_specification_capital_letters | exclusive_specification_adjectives | exclusive_specification_pronouns | exclusive_specification_texts }
:5020	$plural_structure_specification													{ collective_structure_specification_nouns | collective_specification_proper_nouns | collective_specification_numerals | collective_specification_small_letters | collective_specification_capital_letters | collective_specification_adjectives | collective_specification_pronouns }
:5020	$singular_condition_noun_specification											{ specification_assignment_possessive_determiner | specification_assignment_definite_article } single_singular_specification_noun


#-----------

		$multiple_type																	{ noun_singular | noun_plural | proper_noun } [ multiple_type ]
:5031	$multiple_type_relation_numeral													numeral ( multiple_type )
:5031	$relation_numeral																numeral
:5031	$single_singular_relation_noun													multiple_word_singular_noun
:5031	$single_plural_relation_noun													multiple_word_plural_noun
:5031	$relation_proper_noun															[ article_definite ] multiple_word_proper_noun
		$comma_separated_relation_proper_nouns											symbol_comma relation_proper_noun [ comma_separated_relation_proper_nouns ]
		$more_relation_proper_nouns														[ comma_separated_relation_proper_nouns ] conjunction_collective relation_proper_noun
		$relation_proper_nouns															relation_proper_noun [ more_relation_proper_nouns ]
		$specification_assignment_relation_noun											[ article_definite ] { single_plural_relation_noun | single_singular_relation_noun | multiple_type_relation_numeral }

:5030	$preposition_noun_relation														{ preposition | preposition_Of } specification_assignment_relation_noun
:5030	$preposition_relation															{ preposition | preposition_Of } { relation_proper_noun | specification_assignment_relation_noun }
:5030	$preposition_relations															preposition_Of [ numeral_Both ] relation_proper_nouns
:5030	$possessive_relations															[ symbol_comma ] adjective_Called relation_proper_nouns

:5040	$execution_text																	text


#-----------

:5012	$linked_generalization_conjunction												conjunction_collective

:5011	$singular_generalization_noun													multiple_word_singular_noun
:5011	$plural_generalization_noun														multiple_word_plural_noun
:5011	$generalization_proper_noun														[ article_definite ] multiple_word_proper_noun
:5011	$generalization_Odd_or_Even														{ adjective_Odd | adjective_Even }
:5011	$generalization_comparison														adjective_comparison

:5010	$generalization_noun_singular_assignment										generalization_assignment_article singular_generalization_noun
:5010	$singular_structure_noun_generalization											[ adjective_Every | article_indefinite ] singular_generalization_noun
:5010	$generalization_singular_verb_Odd_or_Even										singular_verb [ adverb_Not ] generalization_Odd_or_Even
:5010	$generalization_singular_verb_comparison										singular_verb [ adverb_Not ] generalization_comparison conjunction_Than

		$comma_separated_generalization_proper_nouns									symbol_comma generalization_proper_noun [ comma_separated_generalization_proper_nouns ]
		$collective_generalization_proper_nouns											generalization_proper_noun [ comma_separated_generalization_proper_nouns ] conjunction_collective generalization_proper_noun
		$singular_proper_noun_generalization_assignment									generalization_proper_noun singular_verb proper_noun_assignment_specification
		$comma_separated_singular_proper_noun_generalization_assignment					symbol_comma singular_proper_noun_generalization_assignment [ comma_separated_singular_proper_noun_generalization_assignment ]
		$more_singular_proper_noun_generalization_assignments							[ comma_separated_singular_proper_noun_generalization_assignment ] conjunction_collective singular_proper_noun_generalization_assignment

		$Part_Of																		noun_singular_Part preposition_Of
		$singular_proper_noun_specification												singular_possessive_verb possessive_structure_specification_nouns [ possessive_relations ] [ adverb_Anymore ]
		$singular_proper_noun_specification												singular_verb [ Part_Of ] { structure_specification_nouns | exclusive_specification_adjectives } [ preposition_relations ]
		$singular_proper_noun_generalization_structure									generalization_proper_noun singular_proper_noun_specification
		$linked_singular_proper_noun_generalization_structure							{ singular_verb | singular_possessive_verb } possessive_structure_specification_nouns
		$comma_separated_singular_proper_noun_generalization_structure					symbol_comma { singular_proper_noun_generalization_structure | linked_singular_proper_noun_generalization_structure } [ comma_separated_singular_proper_noun_generalization_structure ]
		$more_singular_proper_noun_generalization_structures							[ comma_separated_singular_proper_noun_generalization_structure ] linked_generalization_conjunction linked_singular_proper_noun_generalization_structure


#-----------

# Condition examples:
# - (if) the age is less than 13 (then)
# - (if) the time is earlier than "12:00" (then)
# - (if) the number of the start pole is odd (then)
# - (if) the head of the start pole is smaller than the head of the swap pole (then)
		$condition_specification														generalization_singular_verb_comparison { relation_numeral | execution_text }
		$condition_specification														preposition_noun_relation { generalization_singular_verb_Odd_or_Even | generalization_singular_verb_comparison singular_condition_noun_specification preposition_noun_relation | generalization_singular_verb_comparison text }
:5000	$condition_generalization_specification											singular_condition_noun_specification condition_specification
:5000	$condition_generalization_specification											generalization_proper_noun singular_verb singular_proper_noun_assignment_specification
:5000	$condition_generalization_specification											generalization_noun_singular_assignment singular_verb singular_noun_assignment_specification

#-----------

:5000	$assignment_generalization_specification										generalization_noun_singular_assignment { singular_verb singular_noun_assignment_specification | singular_possessive_verb noun_assignment_specification }
:5000	$assignment_generalization_specification										singular_proper_noun_generalization_assignment [ more_singular_proper_noun_generalization_assignments | preposition_relations ]
		$assignment_question_specification												generalization_noun_singular_assignment { singular_structure_specification | singular_noun_assignment_specification }
		$assignment_question_specification												generalization_proper_noun [ adverb_uncertainty ] proper_noun_assignment_specification [ preposition_relations ]
:5000	$assignment_generalization_specification_question								singular_question_verb assignment_question_specification

		$structure_plural_specification													plural_possessive_verb possessive_structure_specification_nouns [ possessive_relations ]
		$structure_plural_specification													{ plural_verb | plural_conditional_verb } plural_structure_specification
:5000	$structure_generalization_specification											plural_generalization_noun structure_plural_specification
:5000	$structure_generalization_specification											singular_structure_noun_generalization singular_possessive_verb possessive_structure_specification_nouns [ preposition_noun_relation ]
:5000	$structure_generalization_specification											singular_proper_noun_generalization_structure [ more_singular_proper_noun_generalization_structures ]
:5000	$structure_generalization_specification											singular_structure_noun_generalization { singular_verb | singular_conditional_verb } singular_structure_specification

		$structure_question_specification												generalization_proper_noun [ adverb_uncertainty ] structure_specification_nouns [ preposition_relations ]
		$structure_question_specification												singular_structure_noun_generalization singular_structure_specification
:5000	$structure_generalization_specification_question								plural_question_verb collective_generalization_proper_nouns plural_specification_noun [ preposition_relations ]
:5000	$structure_generalization_specification_question								singular_question_verb structure_question_specification

:5000	$structure_specification_generalization											plural_structure_specification plural_specification_generalization_verb { plural_generalization_noun | Part_Of singular_structure_noun_generalization }
:5000	$structure_specification_generalization											singular_structure_specification singular_specification_generalization_verb [ Part_Of | adjective_Characteristic preposition_For ] singular_structure_noun_generalization

:5000	$structure_specification_generalization_question								plural_specification_generalization_question_verb plural_structure_specification [ adverb_uncertainty ] { plural_generalization_noun | Part_Of singular_structure_noun_generalization }
:5000	$structure_specification_generalization_question								singular_specification_generalization_question_verb singular_structure_specification [ adverb_uncertainty ] [ Part_Of ] singular_structure_noun_generalization


#-----------

# Examples of an imperative:
# - Help.
# - Login as Expert.
# - Solve the game.
# - Display the copyright.
# - Display "Hello world".
# - Display info about John.
# - Display info about the lists.
		$imperative-specification														[ singular_noun_assignment_specification | plural_assignment_specification | Information preposition_relation | execution_text | As specification_proper_noun ]

# Examples of an imperative:
# - Read the file "English/user/programming/Connect-Four".
# - Add D, C, B and A to the start pole.
# - Move the head of the swap pole to the goal pole.
		$imperative-specification														singular_noun_assignment_specification preposition_relation [ preposition_relation ]

:4040	$imperative																		verb_imperative [ imperative-specification ]


#-----------

		$execution																		{ assignment_generalization_specification | imperative }
		$comma_separated_executions														comma_conjunction execution [ comma_separated_executions ]
		$more_executions																[ comma_separated_executions ] collective_sentence_conjunction execution

		$comma_separated_conditions														comma_conjunction condition_generalization_specification [ comma_separated_conditions ]
		$more_conditions																[ comma_separated_conditions ] collective_sentence_conjunction condition_generalization_specification

		$condition_list																	condition_generalization_specification [ more_conditions ] [ exclusive_sentence_conjunction condition_list ]
		$execution_list																	execution [ more_executions ]
		$selection_execution															execution_list [ selection_Else { selection_list | execution_list } ]

:4030	$selection_list																	selection_If condition_list selection_Then { selection_list | selection_execution }
		$selection_sentence																selection_list [ symbol_colon ]


#-----------

:4022	$question																		structure_specification_generalization_question
:4021	$question																		structure_generalization_specification_question
		$question																		assignment_generalization_specification_question
		$comma_separated_questions														comma_conjunction question [ comma_separated_questions ]
		$more_questions																	[ comma_separated_questions ] { collective_sentence_conjunction | exclusive_sentence_conjunction } question
:4020	$question_sentence																question [ more_questions ] symbol_question_mark

		$statement																		imperative
:4014	$statement																		structure_specification_generalization
:4013	$statement																		structure_generalization_specification
:4012	$statement																		assignment_generalization_specification
		$comma_separated_statements														comma_conjunction statement [ comma_separated_statements ]
		$more_statements																[ comma_separated_statements ] collective_sentence_conjunction statement
:4011	$answer_Yes_or_No																{ interjection_Yes | interjection_No }
:4010	$statement_sentence																[ answer_Yes_or_No symbol_comma ] statement [ more_statements ] [ symbol_colon | symbol_exclamation_mark ]

:4000	$sentence																		{ statement_sentence | question_sentence | selection_sentence }


#----------- Assignments and specifications -----------

Every solve method can-be inverted.
Every solve method can-be busy or done.

Every solve strategy is defensive or exclusive.