From 0faa5175b6f0de8835ed514615ac64135f406b29 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Tue, 29 May 2018 15:35:02 -0300 Subject: Move files out of folder --- .gitignore | 6 + REPORT.md | 34 + RGens/.classpath | 31 - RGens/.gitignore | 6 - RGens/.project | 23 - RGens/.settings/org.eclipse.core.resources.prefs | 4 - RGens/.settings/org.eclipse.jdt.core.prefs | 12 - RGens/.settings/org.eclipse.m2e.core.prefs | 4 - RGens/REPORT.md | 34 - RGens/data/misc/700000items.gram | 99 - RGens/data/misc/nimble.gram | 30 - RGens/data/new-sample-grammars/cbs.gram | 86 - .../data/new-sample-grammars/drakensang/armor.gram | 142 - .../data/new-sample-grammars/drakensang/gems.gram | 91 - .../data/new-sample-grammars/drakensang/runes.gram | 29 - RGens/data/new-sample-grammars/repinsult.gram | 196 -- RGens/data/rpg-tools-cd/wands.gram | 119 - RGens/data/sample-grammars/24hr-rpg.gram | 215 -- RGens/data/sample-grammars/acronym.gram | 25 - RGens/data/sample-grammars/address.gram | 131 - RGens/data/sample-grammars/anime.gram | 102 - RGens/data/sample-grammars/art-objects.gram | 142 - RGens/data/sample-grammars/awe-names.gram | 43 - RGens/data/sample-grammars/buzzword.gram | 280 -- RGens/data/sample-grammars/career.gram | 135 - RGens/data/sample-grammars/city.gram | 54 - RGens/data/sample-grammars/college.gram | 723 ----- RGens/data/sample-grammars/company.gram | 187 -- RGens/data/sample-grammars/computer.gram | 53 - RGens/data/sample-grammars/congress.gram | 35 - RGens/data/sample-grammars/dates.gram | 20 - RGens/data/sample-grammars/diablo-ii/diabloii.gram | 63 - .../sample-grammars/diablo-ii/diabloiiitems.gram | 262 -- .../sample-grammars/diablo-ii/diabloiiperish.gram | 132 - .../diablo-ii/diabloiiprefixes.gram | 182 -- .../diablo-ii/diabloiisuffixes.gram | 230 -- RGens/data/sample-grammars/dungeon-enviroment.gram | 140 - .../sample-grammars/dungeondressing/abandoned.gram | 24 - .../sample-grammars/dungeondressing/bedroom.gram | 255 -- .../dungeondressing/dragonencounter.gram | 24 - .../sample-grammars/dungeondressing/kitchen.gram | 25 - .../sample-grammars/dungeondressing/monster.gram | 51 - .../eastern-sun/easternsunsocketing.gram | 17 - RGens/data/sample-grammars/elementals.gram | 237 -- RGens/data/sample-grammars/fantasy-locations.gram | 230 -- RGens/data/sample-grammars/fortune.gram | 123 - RGens/data/sample-grammars/gemstones.gram | 143 - RGens/data/sample-grammars/genre-fiction.gram | 167 - RGens/data/sample-grammars/horror.gram | 33 - RGens/data/sample-grammars/insults.gram | 160 - RGens/data/sample-grammars/linux.gram | 988 ------ RGens/data/sample-grammars/long-data/animal.gram | 17 - .../sample-grammars/long-data/canada-province.gram | 16 - RGens/data/sample-grammars/long-data/cards.gram | 261 -- RGens/data/sample-grammars/long-data/color.gram | 16 - .../long-data/first-name-female.gram | 534 ---- .../sample-grammars/long-data/first-name-male.gram | 626 ---- .../long-data/geographic-thing.gram | 26 - .../sample-grammars/long-data/greek-letters.gram | 26 - .../long-data/japanese-writing.gram | 107 - .../data/sample-grammars/long-data/last-name.gram | 3379 -------------------- RGens/data/sample-grammars/long-data/letters.gram | 134 - RGens/data/sample-grammars/long-data/nation.gram | 220 -- RGens/data/sample-grammars/long-data/numbers.gram | 99 - RGens/data/sample-grammars/long-data/planet.gram | 10 - .../data/sample-grammars/long-data/real-city.gram | 78 - .../sample-grammars/long-data/real-company.gram | 209 -- RGens/data/sample-grammars/long-data/relative.gram | 12 - .../sample-grammars/long-data/roman-numeral.gram | 29 - .../data/sample-grammars/long-data/syllables.gram | 598 ---- .../data/sample-grammars/long-data/town-name.gram | 143 - RGens/data/sample-grammars/long-data/tree.gram | 19 - RGens/data/sample-grammars/martial-arts.gram | 39 - RGens/data/sample-grammars/mary-sue.gram | 495 --- RGens/data/sample-grammars/media.gram | 164 - RGens/data/sample-grammars/mission.gram | 463 --- RGens/data/sample-grammars/names.gram | 431 --- RGens/data/sample-grammars/newspaper.gram | 4 - RGens/data/sample-grammars/numbers.gram | 19 - RGens/data/sample-grammars/ordinal.gram | 20 - RGens/data/sample-grammars/organization.gram | 237 -- RGens/data/sample-grammars/part-creature.gram | 137 - RGens/data/sample-grammars/phone-number.gram | 29 - RGens/data/sample-grammars/pokeattacks.gram | 124 - RGens/data/sample-grammars/president.gram | 64 - RGens/data/sample-grammars/rtwiki/adjective.gram | 34 - RGens/data/sample-grammars/rtwiki/bodyparts.gram | 74 - RGens/data/sample-grammars/rtwiki/class.gram | 11 - RGens/data/sample-grammars/rtwiki/color.gram | 569 ---- RGens/data/sample-grammars/rtwiki/creature.gram | 79 - RGens/data/sample-grammars/rtwiki/death-cause.gram | 108 - .../data/sample-grammars/rtwiki/fantasy-name.gram | 176 - RGens/data/sample-grammars/rtwiki/favorite.gram | 24 - RGens/data/sample-grammars/rtwiki/guns.gram | 234 -- RGens/data/sample-grammars/rtwiki/item.gram | 73 - RGens/data/sample-grammars/rtwiki/traits.gram | 1002 ------ RGens/data/sample-grammars/rune.gram | 116 - RGens/data/sample-grammars/school.gram | 16 - RGens/data/sample-grammars/slashdot.gram | 62 - RGens/data/sample-grammars/states.gram | 156 - RGens/data/sample-grammars/superhero.gram | 304 -- RGens/data/sample-grammars/tarotcard.gram | 58 - RGens/data/sample-grammars/technobabble.gram | 49 - RGens/data/sample-grammars/theory.gram | 25 - RGens/data/sample-grammars/trademark.gram | 186 -- .../vaultsofnagoh/turboghoul-hats.gram | 56 - RGens/data/sample-grammars/web.gram | 227 -- RGens/data/sample-grammars/zadrons-pouch.gram | 233 -- RGens/data/seniordesign/dbdata.gram | 54 - RGens/data/server-config-sample.cfg | 116 - RGens/data/todos.txt | 2 - RGens/dotest.sh | 5 - RGens/pom.xml | 88 - RGens/src/main/java/.DS_Store | Bin 6148 -> 0 bytes RGens/src/main/java/bjc/.DS_Store | Bin 6148 -> 0 bytes RGens/src/main/java/bjc/rgens/ZadronsPouch.java | 220 -- .../java/bjc/rgens/parser/GrammarException.java | 36 - RGens/src/main/java/bjc/rgens/parser/RGrammar.java | 491 --- .../java/bjc/rgens/parser/RGrammarBuilder.java | 246 -- .../java/bjc/rgens/parser/RGrammarFormatter.java | 97 - .../main/java/bjc/rgens/parser/RGrammarParser.java | 394 --- .../main/java/bjc/rgens/parser/RGrammarSet.java | 290 -- .../main/java/bjc/rgens/parser/RGrammarTest.java | 72 - .../src/main/java/bjc/rgens/parser/RGrammars.java | 67 - .../main/java/bjc/rgens/parser/RegexRuleCase.java | 32 - RGens/src/main/java/bjc/rgens/parser/Rule.java | 134 - RGens/src/main/java/bjc/rgens/parser/RuleCase.java | 88 - .../rgens/parser/elements/BlankCaseElement.java | 7 - .../bjc/rgens/parser/elements/CaseElement.java | 147 - .../parser/elements/ExpVariableCaseElement.java | 7 - .../parser/elements/LitVariableCaseElement.java | 7 - .../rgens/parser/elements/LiteralCaseElement.java | 7 - .../rgens/parser/elements/RangeCaseElement.java | 43 - .../bjc/rgens/parser/elements/RuleCaseElement.java | 7 - .../rgens/parser/elements/StringCaseElement.java | 41 - .../rgens/parser/elements/VariableCaseElement.java | 60 - .../src/main/java/bjc/rgens/parser/new-syntax.txt | 13 - .../main/java/bjc/rgens/text/markov/Markov.java | 208 -- .../bjc/rgens/text/markov/StandaloneMarkov.java | 70 - .../rgens/text/markov/StandaloneTextGenerator.java | 76 - .../java/bjc/rgens/text/markov/TextGenerator.java | 73 - RGens/src/main/sql/db_schema.sql | 15 - RGens/todos.txt | 56 - data/misc/700000items.gram | 99 + data/misc/nimble.gram | 30 + data/new-sample-grammars/cbs.gram | 86 + data/new-sample-grammars/drakensang/armor.gram | 142 + data/new-sample-grammars/drakensang/gems.gram | 91 + data/new-sample-grammars/drakensang/runes.gram | 29 + data/new-sample-grammars/repinsult.gram | 196 ++ data/rpg-tools-cd/wands.gram | 119 + data/sample-grammars/24hr-rpg.gram | 215 ++ data/sample-grammars/acronym.gram | 27 + data/sample-grammars/address.gram | 133 + data/sample-grammars/anime.gram | 102 + data/sample-grammars/art-objects.gram | 142 + data/sample-grammars/awe-names.gram | 43 + data/sample-grammars/buzzword.gram | 280 ++ data/sample-grammars/career.gram | 135 + data/sample-grammars/city.gram | 54 + data/sample-grammars/college.gram | 723 +++++ data/sample-grammars/company.gram | 187 ++ data/sample-grammars/computer.gram | 53 + data/sample-grammars/congress.gram | 35 + data/sample-grammars/dates.gram | 20 + data/sample-grammars/diablo-ii/diabloii.gram | 64 + data/sample-grammars/diablo-ii/diabloiiitems.gram | 262 ++ data/sample-grammars/diablo-ii/diabloiiperish.gram | 132 + .../diablo-ii/diabloiiprefixes.gram | 182 ++ .../diablo-ii/diabloiisuffixes.gram | 230 ++ data/sample-grammars/dungeon-enviroment.gram | 140 + .../sample-grammars/dungeondressing/abandoned.gram | 24 + data/sample-grammars/dungeondressing/bedroom.gram | 255 ++ .../dungeondressing/dragonencounter.gram | 24 + data/sample-grammars/dungeondressing/kitchen.gram | 25 + data/sample-grammars/dungeondressing/monster.gram | 51 + .../eastern-sun/easternsunsocketing.gram | 17 + data/sample-grammars/elementals.gram | 237 ++ data/sample-grammars/fantasy-locations.gram | 230 ++ data/sample-grammars/fortune.gram | 123 + data/sample-grammars/gemstones.gram | 143 + data/sample-grammars/genre-fiction.gram | 167 + data/sample-grammars/horror.gram | 33 + data/sample-grammars/insults.gram | 160 + data/sample-grammars/linux.gram | 988 ++++++ data/sample-grammars/long-data/animal.gram | 17 + .../sample-grammars/long-data/canada-province.gram | 16 + data/sample-grammars/long-data/cards.gram | 261 ++ data/sample-grammars/long-data/color.gram | 16 + .../long-data/first-name-female.gram | 534 ++++ .../sample-grammars/long-data/first-name-male.gram | 626 ++++ .../long-data/geographic-thing.gram | 26 + data/sample-grammars/long-data/greek-letters.gram | 26 + .../long-data/japanese-writing.gram | 107 + data/sample-grammars/long-data/last-name.gram | 3379 ++++++++++++++++++++ data/sample-grammars/long-data/letters.gram | 134 + data/sample-grammars/long-data/nation.gram | 220 ++ data/sample-grammars/long-data/numbers.gram | 99 + data/sample-grammars/long-data/planet.gram | 10 + data/sample-grammars/long-data/real-city.gram | 78 + data/sample-grammars/long-data/real-company.gram | 209 ++ data/sample-grammars/long-data/relative.gram | 12 + data/sample-grammars/long-data/roman-numeral.gram | 29 + data/sample-grammars/long-data/syllables.gram | 598 ++++ data/sample-grammars/long-data/town-name.gram | 143 + data/sample-grammars/long-data/tree.gram | 19 + data/sample-grammars/martial-arts.gram | 39 + data/sample-grammars/mary-sue.gram | 495 +++ data/sample-grammars/media.gram | 164 + data/sample-grammars/mission.gram | 463 +++ data/sample-grammars/names.gram | 431 +++ data/sample-grammars/newspaper.gram | 4 + data/sample-grammars/numbers.gram | 19 + data/sample-grammars/ordinal.gram | 20 + data/sample-grammars/organization.gram | 237 ++ data/sample-grammars/part-creature.gram | 137 + data/sample-grammars/phone-number.gram | 29 + data/sample-grammars/pokeattacks.gram | 124 + data/sample-grammars/president.gram | 64 + data/sample-grammars/rtwiki/adjective.gram | 34 + data/sample-grammars/rtwiki/bodyparts.gram | 74 + data/sample-grammars/rtwiki/class.gram | 11 + data/sample-grammars/rtwiki/color.gram | 569 ++++ data/sample-grammars/rtwiki/creature.gram | 79 + data/sample-grammars/rtwiki/death-cause.gram | 108 + data/sample-grammars/rtwiki/fantasy-name.gram | 176 + data/sample-grammars/rtwiki/favorite.gram | 24 + data/sample-grammars/rtwiki/guns.gram | 236 ++ data/sample-grammars/rtwiki/item.gram | 74 + data/sample-grammars/rtwiki/traits.gram | 1002 ++++++ data/sample-grammars/rune.gram | 116 + data/sample-grammars/school.gram | 16 + data/sample-grammars/slashdot.gram | 62 + data/sample-grammars/states.gram | 156 + data/sample-grammars/superhero.gram | 304 ++ data/sample-grammars/tarotcard.gram | 58 + data/sample-grammars/technobabble.gram | 49 + data/sample-grammars/theory.gram | 25 + data/sample-grammars/trademark.gram | 186 ++ .../vaultsofnagoh/turboghoul-hats.gram | 63 + data/sample-grammars/web.gram | 227 ++ data/sample-grammars/zadrons-pouch.gram | 233 ++ data/seniordesign/dbdata.gram | 54 + data/server-config-sample.cfg | 119 + data/todos.txt | 2 + dotest.sh | 5 + pom.xml | 88 + src/main/java/bjc/rgens/ZadronsPouch.java | 220 ++ .../java/bjc/rgens/parser/GrammarException.java | 36 + src/main/java/bjc/rgens/parser/RGrammar.java | 491 +++ .../java/bjc/rgens/parser/RGrammarBuilder.java | 246 ++ .../java/bjc/rgens/parser/RGrammarFormatter.java | 97 + src/main/java/bjc/rgens/parser/RGrammarParser.java | 394 +++ src/main/java/bjc/rgens/parser/RGrammarSet.java | 290 ++ src/main/java/bjc/rgens/parser/RGrammarTest.java | 72 + src/main/java/bjc/rgens/parser/RGrammars.java | 67 + src/main/java/bjc/rgens/parser/RegexRuleCase.java | 32 + src/main/java/bjc/rgens/parser/Rule.java | 134 + src/main/java/bjc/rgens/parser/RuleCase.java | 88 + .../rgens/parser/elements/BlankCaseElement.java | 7 + .../bjc/rgens/parser/elements/CaseElement.java | 147 + .../parser/elements/ExpVariableCaseElement.java | 7 + .../parser/elements/LitVariableCaseElement.java | 7 + .../rgens/parser/elements/LiteralCaseElement.java | 7 + .../rgens/parser/elements/RangeCaseElement.java | 43 + .../bjc/rgens/parser/elements/RuleCaseElement.java | 7 + .../rgens/parser/elements/StringCaseElement.java | 41 + .../rgens/parser/elements/VariableCaseElement.java | 60 + src/main/java/bjc/rgens/parser/new-syntax.txt | 13 + src/main/java/bjc/rgens/text/markov/Markov.java | 208 ++ .../bjc/rgens/text/markov/StandaloneMarkov.java | 70 + .../rgens/text/markov/StandaloneTextGenerator.java | 76 + .../java/bjc/rgens/text/markov/TextGenerator.java | 73 + src/main/sql/db_schema.sql | 15 + todos.txt | 56 + 275 files changed, 22407 insertions(+), 22463 deletions(-) create mode 100644 .gitignore create mode 100644 REPORT.md delete mode 100644 RGens/.classpath delete mode 100644 RGens/.gitignore delete mode 100644 RGens/.project delete mode 100644 RGens/.settings/org.eclipse.core.resources.prefs delete mode 100644 RGens/.settings/org.eclipse.jdt.core.prefs delete mode 100644 RGens/.settings/org.eclipse.m2e.core.prefs delete mode 100644 RGens/REPORT.md delete mode 100644 RGens/data/misc/700000items.gram delete mode 100644 RGens/data/misc/nimble.gram delete mode 100644 RGens/data/new-sample-grammars/cbs.gram delete mode 100644 RGens/data/new-sample-grammars/drakensang/armor.gram delete mode 100644 RGens/data/new-sample-grammars/drakensang/gems.gram delete mode 100644 RGens/data/new-sample-grammars/drakensang/runes.gram delete mode 100644 RGens/data/new-sample-grammars/repinsult.gram delete mode 100644 RGens/data/rpg-tools-cd/wands.gram delete mode 100755 RGens/data/sample-grammars/24hr-rpg.gram delete mode 100644 RGens/data/sample-grammars/acronym.gram delete mode 100644 RGens/data/sample-grammars/address.gram delete mode 100755 RGens/data/sample-grammars/anime.gram delete mode 100755 RGens/data/sample-grammars/art-objects.gram delete mode 100755 RGens/data/sample-grammars/awe-names.gram delete mode 100644 RGens/data/sample-grammars/buzzword.gram delete mode 100644 RGens/data/sample-grammars/career.gram delete mode 100644 RGens/data/sample-grammars/city.gram delete mode 100644 RGens/data/sample-grammars/college.gram delete mode 100644 RGens/data/sample-grammars/company.gram delete mode 100644 RGens/data/sample-grammars/computer.gram delete mode 100644 RGens/data/sample-grammars/congress.gram delete mode 100644 RGens/data/sample-grammars/dates.gram delete mode 100755 RGens/data/sample-grammars/diablo-ii/diabloii.gram delete mode 100755 RGens/data/sample-grammars/diablo-ii/diabloiiitems.gram delete mode 100755 RGens/data/sample-grammars/diablo-ii/diabloiiperish.gram delete mode 100755 RGens/data/sample-grammars/diablo-ii/diabloiiprefixes.gram delete mode 100755 RGens/data/sample-grammars/diablo-ii/diabloiisuffixes.gram delete mode 100755 RGens/data/sample-grammars/dungeon-enviroment.gram delete mode 100644 RGens/data/sample-grammars/dungeondressing/abandoned.gram delete mode 100644 RGens/data/sample-grammars/dungeondressing/bedroom.gram delete mode 100644 RGens/data/sample-grammars/dungeondressing/dragonencounter.gram delete mode 100644 RGens/data/sample-grammars/dungeondressing/kitchen.gram delete mode 100644 RGens/data/sample-grammars/dungeondressing/monster.gram delete mode 100644 RGens/data/sample-grammars/eastern-sun/easternsunsocketing.gram delete mode 100644 RGens/data/sample-grammars/elementals.gram delete mode 100755 RGens/data/sample-grammars/fantasy-locations.gram delete mode 100644 RGens/data/sample-grammars/fortune.gram delete mode 100644 RGens/data/sample-grammars/gemstones.gram delete mode 100755 RGens/data/sample-grammars/genre-fiction.gram delete mode 100644 RGens/data/sample-grammars/horror.gram delete mode 100644 RGens/data/sample-grammars/insults.gram delete mode 100644 RGens/data/sample-grammars/linux.gram delete mode 100644 RGens/data/sample-grammars/long-data/animal.gram delete mode 100644 RGens/data/sample-grammars/long-data/canada-province.gram delete mode 100644 RGens/data/sample-grammars/long-data/cards.gram delete mode 100644 RGens/data/sample-grammars/long-data/color.gram delete mode 100644 RGens/data/sample-grammars/long-data/first-name-female.gram delete mode 100644 RGens/data/sample-grammars/long-data/first-name-male.gram delete mode 100644 RGens/data/sample-grammars/long-data/geographic-thing.gram delete mode 100644 RGens/data/sample-grammars/long-data/greek-letters.gram delete mode 100644 RGens/data/sample-grammars/long-data/japanese-writing.gram delete mode 100644 RGens/data/sample-grammars/long-data/last-name.gram delete mode 100644 RGens/data/sample-grammars/long-data/letters.gram delete mode 100644 RGens/data/sample-grammars/long-data/nation.gram delete mode 100644 RGens/data/sample-grammars/long-data/numbers.gram delete mode 100644 RGens/data/sample-grammars/long-data/planet.gram delete mode 100644 RGens/data/sample-grammars/long-data/real-city.gram delete mode 100644 RGens/data/sample-grammars/long-data/real-company.gram delete mode 100644 RGens/data/sample-grammars/long-data/relative.gram delete mode 100644 RGens/data/sample-grammars/long-data/roman-numeral.gram delete mode 100644 RGens/data/sample-grammars/long-data/syllables.gram delete mode 100644 RGens/data/sample-grammars/long-data/town-name.gram delete mode 100644 RGens/data/sample-grammars/long-data/tree.gram delete mode 100755 RGens/data/sample-grammars/martial-arts.gram delete mode 100755 RGens/data/sample-grammars/mary-sue.gram delete mode 100644 RGens/data/sample-grammars/media.gram delete mode 100644 RGens/data/sample-grammars/mission.gram delete mode 100644 RGens/data/sample-grammars/names.gram delete mode 100644 RGens/data/sample-grammars/newspaper.gram delete mode 100644 RGens/data/sample-grammars/numbers.gram delete mode 100644 RGens/data/sample-grammars/ordinal.gram delete mode 100644 RGens/data/sample-grammars/organization.gram delete mode 100755 RGens/data/sample-grammars/part-creature.gram delete mode 100644 RGens/data/sample-grammars/phone-number.gram delete mode 100755 RGens/data/sample-grammars/pokeattacks.gram delete mode 100644 RGens/data/sample-grammars/president.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/adjective.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/bodyparts.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/class.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/color.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/creature.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/death-cause.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/fantasy-name.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/favorite.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/guns.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/item.gram delete mode 100644 RGens/data/sample-grammars/rtwiki/traits.gram delete mode 100755 RGens/data/sample-grammars/rune.gram delete mode 100644 RGens/data/sample-grammars/school.gram delete mode 100644 RGens/data/sample-grammars/slashdot.gram delete mode 100644 RGens/data/sample-grammars/states.gram delete mode 100755 RGens/data/sample-grammars/superhero.gram delete mode 100755 RGens/data/sample-grammars/tarotcard.gram delete mode 100755 RGens/data/sample-grammars/technobabble.gram delete mode 100644 RGens/data/sample-grammars/theory.gram delete mode 100644 RGens/data/sample-grammars/trademark.gram delete mode 100644 RGens/data/sample-grammars/vaultsofnagoh/turboghoul-hats.gram delete mode 100644 RGens/data/sample-grammars/web.gram delete mode 100755 RGens/data/sample-grammars/zadrons-pouch.gram delete mode 100644 RGens/data/seniordesign/dbdata.gram delete mode 100644 RGens/data/server-config-sample.cfg delete mode 100644 RGens/data/todos.txt delete mode 100755 RGens/dotest.sh delete mode 100644 RGens/pom.xml delete mode 100644 RGens/src/main/java/.DS_Store delete mode 100644 RGens/src/main/java/bjc/.DS_Store delete mode 100644 RGens/src/main/java/bjc/rgens/ZadronsPouch.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/GrammarException.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/RGrammar.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/RGrammarBuilder.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/RGrammarFormatter.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/RGrammarParser.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/RGrammarSet.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/RGrammarTest.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/RGrammars.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/RegexRuleCase.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/Rule.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/RuleCase.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/elements/CaseElement.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/elements/LitVariableCaseElement.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/elements/LiteralCaseElement.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/elements/RangeCaseElement.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/elements/StringCaseElement.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java delete mode 100644 RGens/src/main/java/bjc/rgens/parser/new-syntax.txt delete mode 100644 RGens/src/main/java/bjc/rgens/text/markov/Markov.java delete mode 100644 RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java delete mode 100644 RGens/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java delete mode 100644 RGens/src/main/java/bjc/rgens/text/markov/TextGenerator.java delete mode 100644 RGens/src/main/sql/db_schema.sql delete mode 100644 RGens/todos.txt create mode 100644 data/misc/700000items.gram create mode 100644 data/misc/nimble.gram create mode 100644 data/new-sample-grammars/cbs.gram create mode 100644 data/new-sample-grammars/drakensang/armor.gram create mode 100644 data/new-sample-grammars/drakensang/gems.gram create mode 100644 data/new-sample-grammars/drakensang/runes.gram create mode 100644 data/new-sample-grammars/repinsult.gram create mode 100644 data/rpg-tools-cd/wands.gram create mode 100755 data/sample-grammars/24hr-rpg.gram create mode 100644 data/sample-grammars/acronym.gram create mode 100644 data/sample-grammars/address.gram create mode 100755 data/sample-grammars/anime.gram create mode 100755 data/sample-grammars/art-objects.gram create mode 100755 data/sample-grammars/awe-names.gram create mode 100644 data/sample-grammars/buzzword.gram create mode 100644 data/sample-grammars/career.gram create mode 100644 data/sample-grammars/city.gram create mode 100644 data/sample-grammars/college.gram create mode 100644 data/sample-grammars/company.gram create mode 100644 data/sample-grammars/computer.gram create mode 100644 data/sample-grammars/congress.gram create mode 100644 data/sample-grammars/dates.gram create mode 100755 data/sample-grammars/diablo-ii/diabloii.gram create mode 100755 data/sample-grammars/diablo-ii/diabloiiitems.gram create mode 100755 data/sample-grammars/diablo-ii/diabloiiperish.gram create mode 100755 data/sample-grammars/diablo-ii/diabloiiprefixes.gram create mode 100755 data/sample-grammars/diablo-ii/diabloiisuffixes.gram create mode 100755 data/sample-grammars/dungeon-enviroment.gram create mode 100644 data/sample-grammars/dungeondressing/abandoned.gram create mode 100644 data/sample-grammars/dungeondressing/bedroom.gram create mode 100644 data/sample-grammars/dungeondressing/dragonencounter.gram create mode 100644 data/sample-grammars/dungeondressing/kitchen.gram create mode 100644 data/sample-grammars/dungeondressing/monster.gram create mode 100644 data/sample-grammars/eastern-sun/easternsunsocketing.gram create mode 100644 data/sample-grammars/elementals.gram create mode 100755 data/sample-grammars/fantasy-locations.gram create mode 100644 data/sample-grammars/fortune.gram create mode 100644 data/sample-grammars/gemstones.gram create mode 100755 data/sample-grammars/genre-fiction.gram create mode 100644 data/sample-grammars/horror.gram create mode 100644 data/sample-grammars/insults.gram create mode 100644 data/sample-grammars/linux.gram create mode 100644 data/sample-grammars/long-data/animal.gram create mode 100644 data/sample-grammars/long-data/canada-province.gram create mode 100644 data/sample-grammars/long-data/cards.gram create mode 100644 data/sample-grammars/long-data/color.gram create mode 100644 data/sample-grammars/long-data/first-name-female.gram create mode 100644 data/sample-grammars/long-data/first-name-male.gram create mode 100644 data/sample-grammars/long-data/geographic-thing.gram create mode 100644 data/sample-grammars/long-data/greek-letters.gram create mode 100644 data/sample-grammars/long-data/japanese-writing.gram create mode 100644 data/sample-grammars/long-data/last-name.gram create mode 100644 data/sample-grammars/long-data/letters.gram create mode 100644 data/sample-grammars/long-data/nation.gram create mode 100644 data/sample-grammars/long-data/numbers.gram create mode 100644 data/sample-grammars/long-data/planet.gram create mode 100644 data/sample-grammars/long-data/real-city.gram create mode 100644 data/sample-grammars/long-data/real-company.gram create mode 100644 data/sample-grammars/long-data/relative.gram create mode 100644 data/sample-grammars/long-data/roman-numeral.gram create mode 100644 data/sample-grammars/long-data/syllables.gram create mode 100644 data/sample-grammars/long-data/town-name.gram create mode 100644 data/sample-grammars/long-data/tree.gram create mode 100755 data/sample-grammars/martial-arts.gram create mode 100755 data/sample-grammars/mary-sue.gram create mode 100644 data/sample-grammars/media.gram create mode 100644 data/sample-grammars/mission.gram create mode 100644 data/sample-grammars/names.gram create mode 100644 data/sample-grammars/newspaper.gram create mode 100644 data/sample-grammars/numbers.gram create mode 100644 data/sample-grammars/ordinal.gram create mode 100644 data/sample-grammars/organization.gram create mode 100755 data/sample-grammars/part-creature.gram create mode 100644 data/sample-grammars/phone-number.gram create mode 100755 data/sample-grammars/pokeattacks.gram create mode 100644 data/sample-grammars/president.gram create mode 100644 data/sample-grammars/rtwiki/adjective.gram create mode 100644 data/sample-grammars/rtwiki/bodyparts.gram create mode 100644 data/sample-grammars/rtwiki/class.gram create mode 100644 data/sample-grammars/rtwiki/color.gram create mode 100644 data/sample-grammars/rtwiki/creature.gram create mode 100644 data/sample-grammars/rtwiki/death-cause.gram create mode 100644 data/sample-grammars/rtwiki/fantasy-name.gram create mode 100644 data/sample-grammars/rtwiki/favorite.gram create mode 100644 data/sample-grammars/rtwiki/guns.gram create mode 100644 data/sample-grammars/rtwiki/item.gram create mode 100644 data/sample-grammars/rtwiki/traits.gram create mode 100755 data/sample-grammars/rune.gram create mode 100644 data/sample-grammars/school.gram create mode 100644 data/sample-grammars/slashdot.gram create mode 100644 data/sample-grammars/states.gram create mode 100755 data/sample-grammars/superhero.gram create mode 100755 data/sample-grammars/tarotcard.gram create mode 100755 data/sample-grammars/technobabble.gram create mode 100644 data/sample-grammars/theory.gram create mode 100644 data/sample-grammars/trademark.gram create mode 100644 data/sample-grammars/vaultsofnagoh/turboghoul-hats.gram create mode 100644 data/sample-grammars/web.gram create mode 100755 data/sample-grammars/zadrons-pouch.gram create mode 100644 data/seniordesign/dbdata.gram create mode 100644 data/server-config-sample.cfg create mode 100644 data/todos.txt create mode 100755 dotest.sh create mode 100644 pom.xml create mode 100644 src/main/java/bjc/rgens/ZadronsPouch.java create mode 100644 src/main/java/bjc/rgens/parser/GrammarException.java create mode 100644 src/main/java/bjc/rgens/parser/RGrammar.java create mode 100644 src/main/java/bjc/rgens/parser/RGrammarBuilder.java create mode 100644 src/main/java/bjc/rgens/parser/RGrammarFormatter.java create mode 100644 src/main/java/bjc/rgens/parser/RGrammarParser.java create mode 100644 src/main/java/bjc/rgens/parser/RGrammarSet.java create mode 100644 src/main/java/bjc/rgens/parser/RGrammarTest.java create mode 100644 src/main/java/bjc/rgens/parser/RGrammars.java create mode 100644 src/main/java/bjc/rgens/parser/RegexRuleCase.java create mode 100644 src/main/java/bjc/rgens/parser/Rule.java create mode 100644 src/main/java/bjc/rgens/parser/RuleCase.java create mode 100644 src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java create mode 100644 src/main/java/bjc/rgens/parser/elements/CaseElement.java create mode 100644 src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java create mode 100644 src/main/java/bjc/rgens/parser/elements/LitVariableCaseElement.java create mode 100644 src/main/java/bjc/rgens/parser/elements/LiteralCaseElement.java create mode 100644 src/main/java/bjc/rgens/parser/elements/RangeCaseElement.java create mode 100644 src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java create mode 100644 src/main/java/bjc/rgens/parser/elements/StringCaseElement.java create mode 100644 src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java create mode 100644 src/main/java/bjc/rgens/parser/new-syntax.txt create mode 100644 src/main/java/bjc/rgens/text/markov/Markov.java create mode 100644 src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java create mode 100644 src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java create mode 100644 src/main/java/bjc/rgens/text/markov/TextGenerator.java create mode 100644 src/main/sql/db_schema.sql create mode 100644 todos.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..262500a --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +target/ +.DS_Store +outp.txt +error.txt +stress.gout +HTML/ diff --git a/REPORT.md b/REPORT.md new file mode 100644 index 0000000..d1c1a7e --- /dev/null +++ b/REPORT.md @@ -0,0 +1,34 @@ +# Benjamin Culkin +2015-12-08 +---------------- + +Assignment #11 Report +------------------------ +The program here is a slightly adapted version of a random string generator, +which is itself based off of an example in the book "Multi-paradigm Programming with Leda". +The easiest way to run it is launch the attached jar-file through the command file, +then choose the attached .gram file as input, pick the initial rule as from the drop-down +list and enter any number. It will first print out the rules three times, once before it adds some +dummy rules to delete, once after the dummy rules have been added, and a third after the dummy +rules has been deleted. It will then generate text based off of the input. + +Collection Details +------------------- +The project involves the use of multiple collections, but the main one is the Hashtable inside of +WeightedGrammar that holds the rules and the cases that belong to them. This is very similiar +to the HashMap except for some concurrency things that aren't particularly relevant in this +situation. The basic functionality is simply to look up objects by a key. + +This collection has the potential to be useful for a phonebook of some kind, +where you want to look up people by their phone numbers, or phone numbers by the name. + +Resources +----------- +The application itself was based heavily off of an example in the above mentioned book, while +the data for the input file came from a copy of "Diablo II: The Awakening" and its random item +generation tables. + +Source Files +------------- +The source file of the main runnable application is the GrammarReaderApp class in bjc.RGens.text, +while the main class that uses the collection is WeightedGrammar in bjc.utils.gen \ No newline at end of file diff --git a/RGens/.classpath b/RGens/.classpath deleted file mode 100644 index 7d5ca02..0000000 --- a/RGens/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RGens/.gitignore b/RGens/.gitignore deleted file mode 100644 index 262500a..0000000 --- a/RGens/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -target/ -.DS_Store -outp.txt -error.txt -stress.gout -HTML/ diff --git a/RGens/.project b/RGens/.project deleted file mode 100644 index 28c0e93..0000000 --- a/RGens/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - RGens - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/RGens/.settings/org.eclipse.core.resources.prefs b/RGens/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 382b70b..0000000 --- a/RGens/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,4 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding/=UTF-8 -encoding/data=UTF-8 diff --git a/RGens/.settings/org.eclipse.jdt.core.prefs b/RGens/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 672496e..0000000 --- a/RGens/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/RGens/.settings/org.eclipse.m2e.core.prefs b/RGens/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/RGens/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/RGens/REPORT.md b/RGens/REPORT.md deleted file mode 100644 index d1c1a7e..0000000 --- a/RGens/REPORT.md +++ /dev/null @@ -1,34 +0,0 @@ -# Benjamin Culkin -2015-12-08 ----------------- - -Assignment #11 Report ------------------------- -The program here is a slightly adapted version of a random string generator, -which is itself based off of an example in the book "Multi-paradigm Programming with Leda". -The easiest way to run it is launch the attached jar-file through the command file, -then choose the attached .gram file as input, pick the initial rule as from the drop-down -list and enter any number. It will first print out the rules three times, once before it adds some -dummy rules to delete, once after the dummy rules have been added, and a third after the dummy -rules has been deleted. It will then generate text based off of the input. - -Collection Details -------------------- -The project involves the use of multiple collections, but the main one is the Hashtable inside of -WeightedGrammar that holds the rules and the cases that belong to them. This is very similiar -to the HashMap except for some concurrency things that aren't particularly relevant in this -situation. The basic functionality is simply to look up objects by a key. - -This collection has the potential to be useful for a phonebook of some kind, -where you want to look up people by their phone numbers, or phone numbers by the name. - -Resources ------------ -The application itself was based heavily off of an example in the above mentioned book, while -the data for the input file came from a copy of "Diablo II: The Awakening" and its random item -generation tables. - -Source Files -------------- -The source file of the main runnable application is the GrammarReaderApp class in bjc.RGens.text, -while the main class that uses the collection is WeightedGrammar in bjc.utils.gen \ No newline at end of file diff --git a/RGens/data/misc/700000items.gram b/RGens/data/misc/700000items.gram deleted file mode 100644 index 4158dcb..0000000 --- a/RGens/data/misc/700000items.gram +++ /dev/null @@ -1,99 +0,0 @@ -[item-name] [noun] - -pragma prefix-with [item-name] [post] -pragma prefix-with [item-name] [adj] -pragma prefix-with [item-name] [adj] -pragma prefix-with [item-name] [pre] - -pragma suffix-with [item-name] [end] - -pragma initial-rule [item-name] - -[noun] Boy - Kid - Tears - Head - Bag - Brain - Box - Eye - Sack - Meat - Paw - Ring - Poop - Acid - Liquid - Shield - Money - Friend - Aura - Battery - Milk - -[end] of Secrets - of Flies - da Whoop - of Shadows - of Meat - Baby - of Pills - of Cards - Fetus - Worm - 2.0 - is Power - in a jar - -[adj] Gross - Smelly - Holy - Dead - Small - Rotten - Tiny - Magic - Mysterious - Lost - Little - Sacred - Cursed - Evil - Demonic - Sad - Turdy - Sticky - Ultra - Super - Satanic - Sulfuric - Epic - Explosive - Powerful - Charged - Electric - Bloody - Charmed - Burning - Charred - Poison - Rainbow - Soy - -[post] Bomb - Coin - Spider - Fly - Cube of - Book of - Halo of - Trinity - Bum - Revenge - -[pre] Bob's - Guppy's - Mr. - My - Mom's - Mama diff --git a/RGens/data/misc/nimble.gram b/RGens/data/misc/nimble.gram deleted file mode 100644 index 3567777..0000000 --- a/RGens/data/misc/nimble.gram +++ /dev/null @@ -1,30 +0,0 @@ -[nimble-bimble] [bimble] - -pragma prefix-with [nimble-bimble] [nimble-plural] -pragma suffix-with [nimble-bimble] [nimble-plural] - -pragma initial-rule [nimble-bimble] - -[nimble-plural] [nimble-art] [nimble] - -[bimble] bimble - nimble - bimble - nimble - bimble - nimble - dindle - symbol - frindle - kindle - titties - -[nimble-art] the - my - her - all over - this - while they - a - -[nimble] [bimble] diff --git a/RGens/data/new-sample-grammars/cbs.gram b/RGens/data/new-sample-grammars/cbs.gram deleted file mode 100644 index 8d05dd1..0000000 --- a/RGens/data/new-sample-grammars/cbs.gram +++ /dev/null @@ -1,86 +0,0 @@ -where - [boss+codirector] → [boss-co] Director - . - [boss+cochief] → [boss-co] Chief - . - [boss+cohead] → [boss-co] Head - . - [boss+copresident] → [boss-co] President - . - [boss+comanager] → [boss-co] Manager - . - [boss-managing] → Managing - Acting - General - . - [boss-vice] → Vice - Vice - Vice - Corporate Vice - {empty} - . - [boss-co] → Co- - {empty} - . -in - [boss-title] → [boss-vice] [boss+codirector] - [boss+cochief] - [boss+cohead] - [boss-vice] [boss+copresident] - Supervisor - [boss+comanager] -end - -[boss-age] → Senior - {empty} - -[boss-exec] → Executive - Principal - {empty} - {empty} - -[boss-groupal] → Group - Global - {empty} - {empty} - -[boss-department] → Human Resources - Controlling - Internal Audit - Legal - Operations - Management Office - Customer Relations - Client Leadership - Client Relationship - Business Planning - Business Operations - IT Strategy - IT Operations - Marketing - Strategic Planning - Facilities Management - Innovation - Identity - Branding - Diversity and Exclusion - -[boss-departmentrole] → [boss-department] - [boss-department] - [boss-department] - [boss-department] - [boss-department] - Visionary - Digital - Technical - Manifesto - -[boss-catalyst] → Catalyst - Futurist - Officer - Officer - -[boss] → [boss-managing] [boss-age] [boss-exec] [boss-title] of -[boss-department] - [boss-groupal] Chief [boss-departmentrole] [boss-catalyst] - diff --git a/RGens/data/new-sample-grammars/drakensang/armor.gram b/RGens/data/new-sample-grammars/drakensang/armor.gram deleted file mode 100644 index d559761..0000000 --- a/RGens/data/new-sample-grammars/drakensang/armor.gram +++ /dev/null @@ -1,142 +0,0 @@ -[ds-armor] [spellweaver-armor] - [ranger-armor] - [dragonknight-armor] - -pragma initial-rule [ds-armor] - -[dragonknight-armor] [dragonknight-armortype] - [dragonknight-armorprefix] [dragonknight-armortype] - [dragonknight-armorprefix] [dragonknight-armortype] - [dragonknight-armorprefix] [dragonknight-armortype] - -[dragonknight-armortype] jackboots - cloak - gloves - pauldrons - bandana - coat - gauntlets - cap - armor - shirt - cowl - helmet - fists - -[dragonknight-armorprefix] cloth - fur - leather - hard-leather - studded - scaled - chain - chainmail - iron - steel - soldier - duria - plated - winged - black steel - obsidian steel - -[ranger-armor] [ranger-armortype] - [ranger-armorprefix] [ranger-armortype] - [ranger-armorprefix] [ranger-armortype] - [ranger-armorprefix] [ranger-armortype] - -[ranger-armortype] shoes - shirt - hand wraps - shoulder guards - mask - jerkin - fingerless gloves - cap - vest - head - skull - armor - bracers - pauldrons - gloves - claws - mail - mitts - jerkin - -[ranger-armorprefix] [ranger-armorprefix-1] - [ranger-armormaterial] - [ranger-armorprefix-combo] - -[ranger-armorprefix-prefix] grim - fearsome - spirit - cave - -pragma prefix-with [ranger-armorprefix] [ranger-armorprefix-prefix] - -[ranger-armorprefix-combo] [ranger-armormaterial] [ranger-armorprefix-1] - [ranger-armorprefix-1] [ranger-armormaterial] - -[ranger-armorprefix-1] stalkers - hunters - wolf - ramhorn - stag - bear - dragon-brood - -[ranger-armormaterial] linen - leather - wolfskin - grimwolf-skin - rams hide - ram skin - buckskin - bearskin - bearclaw - drakescale - dragonscale - fireleather - sunleather - -[spellweaver-armor] [spellweaver-armortype] - [spellweaver-armorprefix] [spellweaver-armortype] - [spellweaver-armorprefix] [spellweaver-armortype] - [spellweaver-armorprefix] [spellweaver-armortype] - -[spellweaver-armortype] cloak - gloves - collar - shoes - coronet - cap - robes - helmet - fist - mask - -[spellweaver-armorprefix] [spellweaver-armorprefix-1] - [spellweaver-armormaterial] - -[spellweaver-armorprefix-combo] [spellweaver-armormaterial] [spellweaver-armorprefix-1] - [spellweaver-armorprefix-1] [spellweaver-armormaterial] - -[spellweaver-armorprefix-1] apprentice - acolyte - travel - journeyman - spellweaver - arkan - elemental - duria - myrdosch magus - myrdosch mystic - mystic - -[spellweaver-armormaterial] linen - leather - silver - silk - brocade diff --git a/RGens/data/new-sample-grammars/drakensang/gems.gram b/RGens/data/new-sample-grammars/drakensang/gems.gram deleted file mode 100644 index 655bdcb..0000000 --- a/RGens/data/new-sample-grammars/drakensang/gems.gram +++ /dev/null @@ -1,91 +0,0 @@ -[ds-gem] [gem-type] - [gem-type] - [gem-type] of qaizah - [unique-gem] - -pragma initial-rule [ds-gem] - -[gem-quality] [gem-quality-normal] - [gem-quality-normal] - [gem-quality-alt] - -[gem-quality-normal] flawed - splintered - simple - polished - radiant - flawless - sacred - royal - -[gem-quality-alt] [gem-quality-alt-1] - -[gem-quality-alt-1] lesser - cut - cruciate - astral - -[gem-quality-alt-2] lesser - small - large - huge - -[gem-adjective] crystal - festive - solstice - -pragma prefix-with [ds-gem] [gem-adjective] -pragma prefix-with [ds-gem] [gem-quality] - -[gem-type] ruby - onyx - sapphire - cyanite - diamond - amethyst - peridot - -[gem-category] gem - jewel - star - moon - stone - snowflake - crystal - skull - -[gem-descr] timeless - concentrated - fortified - powerful - -pragma prefix-with [gem-type] [gem-descr] -pragma suffix-with [gem-type] [gem-category] - -[unique-gem] [gem-category] of [unique-trail] - [unique-lead] [gem-category] - [unique-type] - [gem-category] of [unique-trail] - [unique-lead] [gem-category] - [unique-type] - [gem-category] - -[unique-trail] insight - immunity - rage - acceleration - shadows - willpower - -[unique-lead] solstice - fluorite - shadow - accelerating - equipment fortifying - -[unique-type] bloodstone - moonstone - -pragma prefix-with [unique-type] [gem-descr] -pragma prefix-with [unique-lead] [gem-descr] -pragma prefix-with [unique-trail] [gem-descr] diff --git a/RGens/data/new-sample-grammars/drakensang/runes.gram b/RGens/data/new-sample-grammars/drakensang/runes.gram deleted file mode 100644 index 28c12f0..0000000 --- a/RGens/data/new-sample-grammars/drakensang/runes.gram +++ /dev/null @@ -1,29 +0,0 @@ -[ds-rune] [rune-type] rune - rune of [rune-type] - -pragma initial-rule [ds-rune] - -[rune-quality] lesser - standard - mighty - supreme - grand - -pragma prefix-with [ds-rune] [rune-quality] - -[rune-type] devestation - celerity - persistence - regeneration - vitality - vigor - relentlessness - acceleration - fortitude - focus - resilience - materi blessing - wisdom seeker - vanquisher - -pragma prefix-with [rune-type] [rune-quality] diff --git a/RGens/data/new-sample-grammars/repinsult.gram b/RGens/data/new-sample-grammars/repinsult.gram deleted file mode 100644 index 30ac89d..0000000 --- a/RGens/data/new-sample-grammars/repinsult.gram +++ /dev/null @@ -1,196 +0,0 @@ -[rep-insult] [rude-scapegoat] - -pragma prefix-with [rep-insult] [rude-phrase] -pragma prefix-with [rep-insult] [brag-verb] - -pragma initial-rule [rep-insult] - -[brag-verb] abolish - ban - bash - beat - blast - bomb - bury - clobber - demolish - drive SUVs over - flatten - glassify - kill - napalm - nuke - outlaw - overwhelm - screw - shoot - silence - steam-roller - wipe - -[rude-phrase] AIDS-infested - America-hating - Arab - ass-pounding - bleeding heart - boy-fucking - camel-fucking - camel-humping - camel-raping - cocksucking - bullshitting - Bush-hating - butt-banging - Chomsky-loving - Christ-hating - clueless - communist - cornholing - crazy - crying - dammed - DemocRAT - Democrat - disgusting - disobedient - disrespectful - fat - fat-assed - feel-goog - flag-hating - flag-burning - flaming - freedom-hating - French - Hitler-loving - holocaust-denying - homo - illegal - impractical - insane - Jesus-hating - koran-owning - left-wing - limp-wristed - lying - mendacious - moonbat - moronic - queer - rebellious - Saddam-loving - sick - skinny-assed - socialist - spamming - stupid - teflon - tin hat - unemployed - whining - wimpoid - -[rude-scapegoat] alien - America-hater - animal - Arab - assclown - asshole - atheist - bastard - black - bullshitter - bum biter - Bush-hater - Canadian - camel jockey - camel humper - camel kisser - Canuck - Canukistani - cheesehead - cheese-eater - child molester - chink - Chomskyite - Clinton-lover - Clintonite - cock sucker - commie - communist - conspiracy theorist - crackpot - creep - cum-drinker - dog-fucker - environmentalist - European - faggot - fart - fruitcake - gay boy - girlie-man - hate monger - homo idiot - Jew - Jew-boy - ketchup-eater - koran reader - leftie - liar - Liberal - LIEberal - loon - loser - luser - maggot - maroon - Mexican - Mooseslime - moron - Muslim - newbie - nigger - nutbar - pedophile - person with AIDS - pervert - piece of trash - pinko - pond sucker - queer - raghead - retard - Saddam-lover - Saddamocrat - sand monkey - sand nigger - scumbag - SOB - socialist - sock puppet - spammer - terrorist - trailer park scum - traitor - tree-hugger - vulture sock puppet - wannabe - welfare bum - wetback - whacko - wing nut - woman - -[rude-scapegoat] → AIDS carriers - Arabs - atheists - Bill Clinton - Bill - Billary - blacks - baby-killer - Bush-haters - Canadians - Canucks - Can diff --git a/RGens/data/rpg-tools-cd/wands.gram b/RGens/data/rpg-tools-cd/wands.gram deleted file mode 100644 index 2bf7cd8..0000000 --- a/RGens/data/rpg-tools-cd/wands.gram +++ /dev/null @@ -1,119 +0,0 @@ -[wand] a wand - a [material] wand - a [wand-tip] wand - a [material] [wand-tip] wand - -pragma suffix-with [wand] [tipped] -pragma suffix-with [wand] [ornament] -pragma suffix-with [wand] [inscription] - -pragma initial-rule [wand] - -[material] - ivory - glass - ash - bone - [material-metal] - [material-wood] - -[tipped] tipped with a [tip] - -[wand-tip] [tip] -tipped - -pragma despace-rule [wand-tip] - -[ornament] decorated with [ornaments] - -[inscription] inscribed with [inscriptions] - with a [inscriptions] inscribed on it - -[material-wood] teak - ironwood - bamboo - willow - bronze - cedar - darkwood - ebony - birch - oak - ash - pine - reed - -[material-metal] bronze - copper - mithril - steel - silver - -[tip] tuning fork - crystal lens - dragon tooth - dessicated eye - pentagram - crescent moon - [tip-jewel] - [tip-metal] - -[tip-jewel] diamond - amethyst - amber - emerald - onyx disc - ruby - uncut quartz - sapphire - -[tip-metal] golden orb - iron spike - copper sun - silver star - tin thimble - -[ornaments] ribbons - chains - feathers - glitter - leather braids - [ornaments-sigils] - [ornaments-creatures] - [ornaments-elements] - -[ornaments-sigils] lucky charms - hieroglyphs - alchemy signs - holy symbols - unholy symbols - arcane sigils - -[ornaments-elements] waves - lightning - flames - whirlwinds - -[ornaments-creatures] serpents - dragons - spiders and insects - -[inscriptions] unreadable - gnomish - aboleth - abyssal - aquan - dwarven - draconic - lost tongue - sphinx - ignan - orcish - elven - dreemspeech - celestial - runes - auran - sylvan - terran - druidic - infernal diff --git a/RGens/data/sample-grammars/24hr-rpg.gram b/RGens/data/sample-grammars/24hr-rpg.gram deleted file mode 100755 index dcfc21d..0000000 --- a/RGens/data/sample-grammars/24hr-rpg.gram +++ /dev/null @@ -1,215 +0,0 @@ -[rpg-name] → [rpg-part] , [rpg-part] and [rpg-part] - [rpg-part] and [rpg-part] - [rpg-part] / [rpg-part] - [rpg-part] the [rpg-part] - [rpg-part] : [rpg-part] the [rpg-part] - [rpg-part] : [rpg-part] [rpg-part] - -[rpg-name-phrase] [quote-rpg-name] was just released - [quote-rpg-name] vs [quote-rpg-name] : which is better? - [quote-rpg-name] : will it live up to the hype? - [quote-rpg-name] released its [ordinal] edition today - -[quote-rpg-name] ( [rpg-name] ) - -pragma initial-rule [rpg-name] -pragma export-rule [rpg-name-phrase] - -[rpg-part] → tits - teeth - claws - fluff - crunch - tools - guns - treachery - post-apocalyptic - underwater - terror - fast food - military - fortress - pirates - metalhead - genies - insects - environmentalism - voodoo - pitchforks - inventors - bomb technicians - zombies - vampires - the 70s - ninjas - cards - rebellion - cannibals - beast men - dancing - monty python - energy crisis - orchestra - summer - trolls - medical - time manipulation - hitchhiking - meteors - the meaning of life - literary figures - wrestlers - tournament - imaginary friends - world leaders - exploration - fish - gods - trading - rap battles - creation - blurring boundaries - animals - bounty hunters - organized crime - high school - cybernetics - aliens - contemporary world - urban fantasy - Nazis - robots - surfers - gentlemen - haberdashery - zeppelins - demons - rapscallions - memory loss - repetition - martial arts - conquistadors - winter - mummies - orcs - reinterpreted myths - machinery - harmony - motorcycles - horses - limited time - ancient - sleepovers - submarines - ambition - colors - marshmallows - the 90s - neckbeards - unicorns - clothing - hunting - world war I - trees - magical girls - game show - dragons - recursion - musicians - construction - plants - cats - drugs - surgery - politics - cartoons - athletics - disease - computers - cowboys - cars - cooking - samurai - spaceships - dinosaurs - candy - krakens - chainsaws - fists - crowbars - lava - elf - emperor - loch ness monster - knights - celebrities - video games - elves - the 2000s - rush hour traffic - spandex - stand-up comedy - nano-machines - mutation - dice - soft drinks - labyrinth - totalitarianism - prostitutes - cell phones - death - the line at the DMV - office - mars - the sun - survival - autumn - portals - world war II - the internet - brewing - alternate universe - tanks - jewelry - marketplace - dungeon building - business - coins - crustaceans - plumbing - parasites - rockets - electricity - speed - reincarnation - theatrics - storm chasers - curiosity - horror - tragedy - big damn heroes - SCIENCE! - transhumanism - spring - scandal - desert - laboratory - hipsters - obscure - dwarves - outer space - trains - religion - espionage - small scale - unicycles - airplanes - werewolves - fashion - JUSTICE! - suburbs - art - skies - madness - economy - the 60s diff --git a/RGens/data/sample-grammars/acronym.gram b/RGens/data/sample-grammars/acronym.gram deleted file mode 100644 index 52d88ad..0000000 --- a/RGens/data/sample-grammars/acronym.gram +++ /dev/null @@ -1,25 +0,0 @@ -[acronym] [acronym-part] - [acronym-part] - [acronym-part] - [acronym-part] - [acronym-phrase] - -pragma initial-rule [acronym] - -pragma despace-rule [acronym] - -[acronym-phrase] [acronym-part] / [acronym-part] - [acronym-part] - [acronym-part] - -[acronym-part] [join-acronym] - [dot-acronym] - -[join-acronym] [consonant] [vowel] [consonant] - [consonant-group] [consonant] [consonant] - [consonant] [consonant] [consonant] [consonant] - [consonant] [vowel] [consonant] [vowel] - [letter] [vowel-group] [letter] [consonant] - -[dot-acronym] [consonant] . [vowel] . [consonant] - [consonant] . [consonant] . [consonant] . [consonant] - [consonant] . [vowel] . [consonant] . [vowel] diff --git a/RGens/data/sample-grammars/address.gram b/RGens/data/sample-grammars/address.gram deleted file mode 100644 index d2d5eef..0000000 --- a/RGens/data/sample-grammars/address.gram +++ /dev/null @@ -1,131 +0,0 @@ -[us-postal-address] [street-address] - -pragma initial-rule [us-postal-address] - -[address-prefix] [address-prefix-body] , - -[address-prefix-suffix] mail at - contact at - visit us at - located at - -pragma suffix-with [address-prefix] [address-prefix-suffix] - -[address-prefix-prefix] [full-name] - [full-name-and-title] - [person] - -[address-prefix-body] [address-prefix-prefix] - [address-prefix-prefix] - [company] - -[city-post-zip] , [city] , [us-postalstate] [zipcode] - -pragma prefix-with [us-postal-address] [address-prefix] -pragma suffix-with [us-postal-address] [city-post-zip] - -[com-company] , [company] - , [work-type] [company] - -[work-type] works for - works at - works with - contractor for - president of - interning at - -pragma suffix-with [address-prefix-prefix] [com-company] - -[street-address] [medium-number] [street] - p.o. box [medium-number] - [medium-number] [street] , apartment [small-number] [letter] - route [digit] box [medium-number] - [small-number] [street] - -[street] [tree] - [color] [tree] - [last-name] - [first-name] - route [small-number] - route [small-number] - county road [small-number] - [ordinal] street - [ordinal] ave. - [ordinal-number] st. - [ordinal-number] ave. - [letter] st. - [city] - [us-state] - [canada-province] - [nation] - [full-name] - [street-generic-standalone] - [street-generic] - [us-president] - [us-president-common] - -pragma prefix-with [street] [street-prefix] -pragma suffix-with [street] [street-suffix] - -[street-prefix] n. - s. - e. - w. - [cardinal] - -[street-suffix] street - st. - road - rd. - way - boulevard - blvd. - avenue - ave. - place - plaza - court - drive - highway - hwy. - parkway - pkwy. - pike - bypass - -[street-generic] main - main - high - independence - division - center - m. l. king - Washington - Lincoln - college - university - stadium - riverside - water - park - shore - airport - grand - sunset - telegraph - railroad - El Paseo - market - church - mill - highland - woodland - Hillcrest - Lakeview - central - [geographic-thing] - -[street-generic-standalone] Broadway - avenue of the Americas - Kingshighway - El Camino real diff --git a/RGens/data/sample-grammars/anime.gram b/RGens/data/sample-grammars/anime.gram deleted file mode 100755 index 85cc7db..0000000 --- a/RGens/data/sample-grammars/anime.gram +++ /dev/null @@ -1,102 +0,0 @@ -[anime-name] [short-anime-name] - [short-anime-name] - [long-anime-name] - -[short-anime-name] [first-name] - [second-name] - [third-name] - -[long-anime-name] [short-anime-name] - -pragma initial-rule [anime-name] - -pragma suffix-with [short-anime-name] [first-name] -pragma suffix-with [short-anime-name] [second-name] -pragma suffix-with [short-anime-name] [third-name] - -pragma prefix-with [long-anime-name] [third-name] -pragma prefix-with [long-anime-name] [second-name] -pragma prefix-with [long-anime-name] [first-name] - -[first-name] Vampire - Cat - Death - Mermaid - Infinite - Quantum - Endless - Bravo - Magical - Neon - Omega - Robo - Gothic - Peach - Ghost - Rhinestone - Mini - Blood - Bubblegum - Tokyo - Lucky - Soul - Cowboy - Awkward - Lucid - Space - -[second-name] Princess - Planet - Blade - Bride - Squad - Soldier - Waitress - Handkerchief - Goddess - Sushi - Star - [planet] - Moon - Zombie - Banana - Dragon - Rocket - Fist - Chef - Robot - Psychic - Boogie - Power - Hamster - Tennis - Ballerina - Blackout - Phantom - -[third-name] Forever - Detectives - Memories - Outlaw - Chaos - Go! - Overture - 9000 - Super! - Zero - Genesis - Eternal - X - Revolution - Cowboy - Academy - Jellyfish - Club - Girl - Hunter - Arcade - Fantasy - Ultimate - Sudoku - Alchemy - Champion diff --git a/RGens/data/sample-grammars/art-objects.gram b/RGens/data/sample-grammars/art-objects.gram deleted file mode 100755 index c824958..0000000 --- a/RGens/data/sample-grammars/art-objects.gram +++ /dev/null @@ -1,142 +0,0 @@ -[art-treasure-group] [art-treasure] - a choice between [art-treasure] and [art-treasure] - a choice between [quote-treasure] , [quote-treasure] and [quote-treasure] - [art-treasure] as well as [art-treasure] - [quote-treasure] ; [quote-treasure] as well as [quote-treasure] - [art-treasure] atop [art-treasure] - [art-treasure] hidden under [art-treasure] - [art-treasure] lying next to [art-treasure] - [art-treasure] hiding in [art-treasure] - [quote-treasure] hidden among [quote-treasure] and [quote-treasure] - -pragma initial-rule [art-treasure-group] - -[quote-treasure] ( [art-treasure] ) - -pragma despace-rule [quote-treasure] - -[art-treasure] [unowned-art-treasure] - [unowned-art-treasure] - [unowned-art-treasure] - [unowned-art-treasure] - [owned-art-treasure] - -pragma export-rule [art-treasure] -pragma prefix-with [art-treasure] a(n) - -[unowned-art-treasure] [gemstones] - [art-objects] - -[owned-art-treasure] [possesive-title] [unowned-art-treasure] - -[possesive-title] [full-name-and-title] 's - -[art-objects] [art-object] - -pragma export-rule [art-objects] -pragma prefix-with [art-objects] [art-object-pref] -pragma prefix-with [art-objects] [size] - -[art-object-pref] counterfeit - ancient - legendary - lost - holy - blessed - cursed - demonic - -[art-object] [common-art] - [uncommon-art] - [rare-art] - [legendary-art] - [epic-art] - [mythic-art] - -pragma export-rule [art-object] - -[size] tiny - miniscule - small - medium - large - huge - titanic - -[common-art] [common-goldring] - [statuette-mat] statuette - gold bracelet - silver necklace - bronze crown - silver-plated sword - silk robe - -[statuette-mat] bone - ivory - -[common-goldring] gold ring - gold ring with a [common-gem] - gold ring with [common-gem] inlay - gold ring with [common-gem] setting - -[uncommon-art] [uncommon-goldring] - [necklace-mat] necklace - gold bracelet studded with [rare-gem] - gold necklace adorned with [common-gem] - silver [tiaracrown] decorated with [common-gem] - ivory comb with embedded [rare-gem] - gold vestments - -[necklace-mat] gold - silver - -[tiaracrown] tiara - crown - -[uncommon-goldring] gold ring with [legendary-gem] inlay - gold ring with a [legendary-gem] - gold ring with [legendary-gem] setting - gold ring with [rare-gem] and [rare-gem] decorations - -[rare-art] [ring-mat] ring with a [legendary-gem] - [rare-statuette] statuette adorned with [rare-gem] - gold necklace adorned with [rare-gem] - gold crown with [rare-gem] - gold chalice dusted with [common-gem] - ceremonial gold chest-plate - enormous [common-gem] - -[ring-mat] gold - platinum - -[rare-statuette] gold - silver - -[legendary-art] platinum ring with [epic-gem] - gold statuette with [legendary-gem] - mithril necklace with [legendary-gem] - adamantine crown with many [legendary-gem] - adamantine box containing [art-element] - black tunic woven of pure [art-element] - enormous [rare-gem] - -[epic-art] mithril ring with an astral diamond - gold statuette with eyes of [epic-gem] - gold necklace adorned with [epic-gem] - mithril tiara studded with [epic-gem] - cup of celestial gold that glows with inner light - silvery cloak of astral thread - enormous [legendary-gem] - -[mythic-art] bracelet formed of cold elemental [art-element] - gown woven of elemental [art-element] - brass ring with bound elemental [art-element] - celestial gold statuette with astral diamonds - royal attire of astral thread loaded with [epic-gem] - enormous [epic-gem] - -[art-element] shadow - lightning - flame - fire - water diff --git a/RGens/data/sample-grammars/awe-names.gram b/RGens/data/sample-grammars/awe-names.gram deleted file mode 100755 index ea27ce1..0000000 --- a/RGens/data/sample-grammars/awe-names.gram +++ /dev/null @@ -1,43 +0,0 @@ -[awesome-name] [part] - -pragma prefix-with [awesome-name] [part] -pragma prefix-with [awesome-name] [part] -pragma suffix-with [awesome-name] [part] -pragma suffix-with [awesome-name] [part] - -pragma initial-rule [awesome-name] - -[part] battle - blade - blast - blood - claw - cold - cyber - dark - death - far - fire - force - hammer - hunt - ice - max - over - pain - shard - shot - siege - spike - star - storm - strike - stroke - sun - sword - ultra - war - wave - whip - wild - wolf diff --git a/RGens/data/sample-grammars/buzzword.gram b/RGens/data/sample-grammars/buzzword.gram deleted file mode 100644 index d25331f..0000000 --- a/RGens/data/sample-grammars/buzzword.gram +++ /dev/null @@ -1,280 +0,0 @@ -[buzzword-phrase] [buzzwords] - [buzzwords] to [buzzwords] - [buzzwords] while [buzzwords] - [buzzwords] in order to [buzzwords] - [buzzwords] in the process of [buzzwords] - -pragma initial-rule [buzzword-phrase] - -[buzzwords] [buzzword] - [buzzword] [buzzword] - [buzzword] and [buzzword] - [buzzword] , [buzzword] and [buzzword] - -pragma export-rule [buzzwords] - -[buzzword] [buzzword-verb] - [buzzword-noun] - [buzzword-adjective] - [buzzword-job] - [buzzword-fused] - -pragma export-rule [buzzword] - -[buzzword-verb] aggregate - benchmark - brand - capitalize - conceptualize - deliver - deploy - drive - embrace - empower - enable - engage - engineer - enhance - envision - evolve - expedite - exploit - extend - facilitate - generate - harness - implement - incentivize - incubate - innovate - integrate - leverage - maximize - mesh - monetize - morph - necessitate - optimize - orchestrate - productize - reformulate - reintermediate - reinvent - repurpose - revolutionize - scale - spearhead - strategize - streamline - syndicate - synergize - synthesize - take ownership - target - touch base - transform - trivialize - unleash - utilize - visualize - -pragma export-rule [buzzword-verb] - -[buzzword-noun] action items - architectures - asset management - bandwidth - channels - communities - content - content management - convergence - core competency - deliverables - dimension crossover - e-business - e-commerce - empowerment - end-users - eyeballs - face time - functionalities - infomediaries - infrastructures - initiatives - interfaces - intermediaries - key players - knowledge transfer - management by objective - markets - metrics - middleware - mindshare - multilevel perspective - networks - non-issues - niches - objectives - paradigms - paradigm shifts - partnerships - platforms - portals - quality-circles - reality checks - relationship corridors - relationships - resources - return on investment - synergies - schemas - skill sets - solutions - strategic alliances - supply-chains - synergical connectivity - tangents - technologies - total quality management - version control - vision - -pragma export-rule [buzzword-noun] - -[buzzword-adjective] asp - b2b - b2c - p2p - back-end - best-of-breed - bilateral - bleeding-edge - bricks-and-clicks - client-centered - cross-platform - cross-media - customer-centric - customized - cutting-edge - distributed - dot-com - dynamic - efficient - effort-intensive - end-to-end - enterprise - evolutionary - extensible - forward-thinking - frictionless - front-end - future-proof - global - granular - innovative - integrated - interactive - intuitive - just-in-time - killer - leading-edge - legacy - magnetic - marketable - massively-parallel - mission-critical - multilevel - next-generation - object-oriented - off-the-shelf - one-to-one - open-source - pragmatic - proactive - productized - real-time - revolutionary - robust - scalable - seamless - strategic - synergistic - transparent - turn-key - two-tier - ubiquitous - universal - user-centric - value-added - vertical - viral - virtual - visionary - wireless - world-class - -pragma export-rule [buzzword-adjective] - -[buzzword-job] customizer - dothead - enabler - engineer - facilitator - forward-thinker - incubator - innovator - intergrator - liason - manager - marketer - strategist - synergizer - visionary - -pragma export-rule [buzzword-job] - -[buzzword-fused] [act+buzzword-fused] - -[act+buzzword-fused] [buzzword-stem] [buzzword-suffix] - -pragma export-rule [buzzword-fused] - -[buzzword-stem] aggregat - benchmark - conceptual - empower - enhanc - exploit - generat - harness - implement - leverag - monet - morph - orchestr - product - reformul - reinvent - revolution - spearhead - synerg - synthes - trivial - util - visual - -pragma export-rule [buzzword-stem] - -[buzzword-suffix] age - ivize - ivize - ivate - ilate - [buzzword+consonant] - acity - ocity - -[buzzword+consonant] i [consonant] ate - -pragma export-rule [buzzword-suffix] diff --git a/RGens/data/sample-grammars/career.gram b/RGens/data/sample-grammars/career.gram deleted file mode 100644 index 63142f5..0000000 --- a/RGens/data/sample-grammars/career.gram +++ /dev/null @@ -1,135 +0,0 @@ -[career-tech-desc] [career-tech] - -pragma initial-rule [career-tech-desc] - -pragma prefix-with [career-tech-desc] [career-tech-desc-pref] - -pragma suffix-with [career-tech-desc] [career-tech-descsuff] -pragma suffix-with [career-tech-desc] [career-tech-descsuff] -pragma suffix-with [career-tech-desc] [career-tech-descsuff] - -[career-tech-desc-pref] [career-prefsuf] of the - -[career-tech-descsuff] (reports to the [career-techname] ) - (boss of [career-techname] ) - (subordinate of [career-techname] ) - (co-worker of [career-techname] ) - (office rival of [career-techname] ) - (secretly [career-techname] ) - -[career-techname] [career-tech] - [career-tech] , [full-name-and-title] - -pragma export-rule [career-techname] - -[career-tech] [career-tech2] - [career-tech2] - [career-tech2] - [career-tech2] - [career-tech2] - [career-tech2] - [quote-career-tech] and [quote-career-tech] - [quote-career-tech] , [quote-career-tech] and [quote-career-tech] - -pragma prefix-with [career-tech] [career-tech-desc-pref] - -pragma export-rule [career-tech] - -[quote-career-tech] [ [career-tech2] ] - -pragma despace-rule [quote-career-tech] - -[career-tech2] [act-career-tech] (reports to the [career-tech] ) - [act-career-tech] (reports to [full-name-and-title] ) - -[act-career-tech] paper pusher - computer [software-career-type] - sheet spreader - data entry [career-suffix] - webpage [software-career-type] - button pusher - bug [bug-term] - problem [bug-term] - help desk - software [software-career-type] - system [software-career-type] - bastard operator from hell - webmaster - dead chicken waver - information technology - four-color glossy publisher - corporate spy - trade show booth bunny - evil human resources - internet [software-career-type] - network [software-career-type] - -pragma prefix-with [act-career-tech] [career-prefix] -pragma suffix-with [act-career-tech] [career-sufsuf] - -pragma export-rule [act-career-tech] - -[bug-term] terminator - exterminator - hunter - killer - eradicator - incinerator - -[software-career-type] reinstaller - engineering - engineer - design - designer - administrator - programmer - programming - publisher - publishing - -[career-prefsuf] [career-suffix] - [career-prefix] [career-suffix] - -[career-sufsuf] , [career-prefsuf] of [career-department] - -[career-department] engineering - design - administration - programming - publishing - operations - HR - networking - accounting - management - -[career-prefix] executive - assistant - junior - senior - associate - sub-adjunct - part-time - interim - substitute - department - head - section - -[career-suffix] manager - supervisor - flunkie - intern - secretary - boss - janitor - foreman - director - chief - section chief - superintendent - chairman - overseer - honcho - administrator - [generic-title] diff --git a/RGens/data/sample-grammars/city.gram b/RGens/data/sample-grammars/city.gram deleted file mode 100644 index b344d3b..0000000 --- a/RGens/data/sample-grammars/city.gram +++ /dev/null @@ -1,54 +0,0 @@ -[city] [real-city] - [town-name] - [other-city] - -pragma initial-rule [city] - -# @TODO 11/01/17 Ben Culkin :SuffixIssues -# Figure out why suffixes aren't properly getting attached to -# things. -# - -[other-city] [act-other-city] - [act-other-city] [town-suffix] - -pragma despace-rule [other-city] -pragma prefix-with [other-city] [town-prefix] - -[act-other-city] [town-name] - [sw-color-phrase] - [sw-color-phrase] [geographic-thing] - [sw-color-phrase] [tree] - [tree] - [geographic-thing] - [gen-name] - [gen-name] - [gen-name] - [gen-name] [geographic-thing] - -pragma despace-rule [act-other-city] - -[gen-name] [last-name] - [first-name] - [random-name] - -[town-prefix] [cardinal] - new - new - old - little - fort - lower - upper - san - la - van - -[town-suffix] burg - ton - ville - opolis - field - boro - dale - -pragma despace-rule [town-suffix] diff --git a/RGens/data/sample-grammars/college.gram b/RGens/data/sample-grammars/college.gram deleted file mode 100644 index 33b45e3..0000000 --- a/RGens/data/sample-grammars/college.gram +++ /dev/null @@ -1,723 +0,0 @@ -[college-announcement] next [course-time] , [university] will offer [quote-course] to [students] - the [university] class [quote-course] has been cancelled due to [lack-reason] - starting next [course-time] , incoming [students] at [university] will [all-req] to take [quote-course] - [students] will [all-req] to take [quote-course] - [quote-course] will no longer be offered at [university] next [course-time] due to [lack-reason] - [quote-course] is the most popular [course-level] class at [university] - due to overwhelming [popularity] , [add-sec] of [quote-course] will be offered at [university] next [course-time] - not one single [student] signed up for [plural-univ] [quote-course] last [course-time] - a [poll] of [students] at [university] revealed [quote-course] is the [popular] popular [class-type] offered - -pragma initial-rule [college-announcement] - -[all-req] be [required] - no longer be [required] - -[students] students - -pragma prefix-with [students] [course-level] -pragma prefix-with [students] [course-adj] - -[student] student - -pragma prefix-with [student] [course-level] -pragma prefix-with [student] [course-adj] - -[popularity] popularity - popularity among [students] - -[plural-univ] [university] 's - -pragma despace-rule [plural-univ] - -[lack-reason] lack of interest - lack of interest among [students] - lack of teachers - lack of space - -[quote-course] ' [college-course] ' - -pragma despace-rule [quote-course] -pragma export-rule [quote-course] - -[required] required - strongly encouraged - mildly encourage - mildly discouraged - strongly discouraged - forbidden - -[add-sec] an additional section - [2..6] additional sections - -[course-time] fall - spring - winter - summer - -pragma suffix-with [course-time] [course-time-type] - -[course-time-type] year - semester - trimester - -[course-level] [course-level1] - [class-year] - -[course-level1] graduate - undergraduate - liberal arts - engineering - stem - -pragma suffix-with [course-level1] [class-year] - -[class-year] freshmen - sophmore - junior - senior - super-senior - -[poll] poll - survey - questionnaire - -[popular] least - second-least - most - second-most - -[class-type] class - course - lecture - lab - practical - -[college-course] [course-adjnoun] - [course-adjnoun-group] - [course-life-phrase] - [course-group] [course-life-phrase] - [course-group2] [course-adjnoun-group] [course-life-phrase] - [course-group2] [course-life-phrase] - contemporary [course-group2] [course-life-phrase] - transforming the [course-group] experience - the [course-group] [course-movement] - [course-adj] [course-life-phrase] - [course-adjnoun-group] in [course-nounprefix] [course-medium] - the [course-adj] dimension of [course-group] [course-medium] - [course-topic] in [course-group2] [course-medium] - [course-topic] and [course-topic] - [course-group2] [course-medium] interpretation - [course-group2] [course-medium] as a [course-adj] genre - [course-group] [course-medium] - [course-popculture] - [course-adjnoun-group] and [theory] - [course-action] - [course-nounprefix] [course-group] [course-medium] - ethnicity - masterpieces of [course-group] [course-medium] - [quote-buzzword] , [quote-buzzword] and [quote-buzzword] - [quote-buzzword] , [quote-buzzword] and [quote-buzzword] in [course-group2] [course-medium] - [course-event] - [course-event] as [course-explored] in [course-group] [course-medium] - [university-subject] as [course-explored] in [course-group] [course-medium] - [course-impactof] - [course-static] - [course-static] - -[quote-buzzword] ( [course-buzzword2] ) - -pragma despace-rule [quote-buzzword] - -pragma prefix-with [college-course] [course-prefix] - -[course-colonending] : [course-ending] - -pragma suffix-with [college-course] [course-colonending] -pragma suffix-with [college-course] [course-suffix] - -pragma export-rule [college-course] - -[course-adjnoun-group] [quote-adjnoun] - [quote-adjnoun] and [quote-adjnoun] - [quote-adjnoun] , [quote-adjnoun] and [quote-adjnoun] - -[course-disjoin-adjnoungroup] [quote-adjnoun] or [quote-adjnoun] - [quote-adjnoun] , [quote-adjnoun] or [quote-adjnoun] - -[quote-adjnoun] ( [course-adjnoun] ) - -[course-adjnoun] [course-prefixednoun] - -pragma prefix-with [course-adjnoun] [course-adj] -pragma prefix-with [course-adjnoun] [course-adj] - -[condition] condition - experience - -[course-static] [course-env1] - [course-env3] - the meaning of life as [course-explored] in [course-group] [course-medium] - the [course-impact] of [course-group2] [thinker-type] on [course-nounprefix] [university-subject] - the [rise] of [course-group2] [thinker-type] in [course-nounprefix] [university-subject] - [course-group] [course-medium] as the [roots] of [course-nounprefix] [university-subject] - [quote-buzzword] , [quote-buzzword] and [quote-buzzword] as [course-explored] in [course-nounprefix] [films] - the history of [course-group2] [course-life-phrase] - the [archetype] of the [quest] in [course-group] [course-medium] - [cross-cultural] [studies] [course-group2] [course-life-phrase] - -[course-event] the African diaspora - the Harlem renaissance - the civil rights movement - the Italian renaissance - westward expansion - manifest destiny - women's suffrage - world war I - world war II - the war of 1812 - the American revolution - the french revolution - the Russian revolution - the American civil war - the Franco-Prussian war - the JFK Assassination - -[thinker-type] researchers - thinkers - scientists - -[rise] rise - emergence - success - empowerment - -[roots] roots - foundations - -[films] film - fiction - television - cinema - theater - -[archetype] archetype - symbolism - -[quest] quest paradigm - journey - awakening - rite of passage - -[cross-cultural] cross-cultural - multi-ethnic - -[studies] studies in - perspectives on - -[course-env1] saving the world - the end of the word - the sky is falling - here come the mass extinctions - -[course-env2] modern environmentalism - environmental biology - environmental activism - -[course-env3] the greenhouse effect - planetwide climatic change - global warning - -[course-action] basketweaving - aquatic ballet - synchronized swimming - professional sports - the [course-adj] pottery experience - home economics - cardplaying - [sportship] - the culinary [experience] - -[sportship] sportspersonship - sportsmanship - -[experience] arts - experience - -[course-prefixednoun] [course-noun] - post- [course-noun] - pre- [course-noun] - -pragma despace-rule [course-prefixednoun] - -[course-noun] diversity - globalism - equality - feminism - sexuality - self-actualization - political correctness - environmentalism - Marxism - socialism - communism - Darwinism - activism - queer theory - romanticism - dadaism - cubism - realism - paganism - homosexuality - sexuality - evolution - poverty - fundamentalism - intellectualism - multiculturalism - -pragma prefix-with [course-noun] [course-nounprefix] - -[course-nounprefix] early - middle - late - classical - historical - modern - [course-contemporary] - [course-adj] - -[course-adj] progressive - liberal - aesthetic - postmodern - feminist - radical - populist - humanist - reformist - liberated - -[course-prefix] ad-hoc investigation of - ad-hoc investigation of - the potential of - foundations of - literature of - the history of - principles of - exploration of - philosophy of - psychology of - meta-physics of - dynamic exploration of - symbolism of - topics in - advanced topics in - selected topics in - special topics in - survey of - the universe of - the meaning of - theories of - perspectives in - topics in - special studies in - introduction to - research capstone in - quantitative methods in - colloquium in - senior seminar in - critical perspectives in - brief survey of - concepts in - the highlights of - -[course-suffix] in the [course-nounprefix] era - in the [course-nounprefix] world - in the [course-nounprefix] age - in [course-nounprefix] society - in [course-nounprefix] America - in today's society - in the American landscape - in the united states - in the 21st century - in recent times - in the real world - -[course-ending] ideas in conflict - ideas in transition - critical issues facing the [course-nounprefix] [course-person] - a process approach - [course-buzzword] , [course-buzzword] and [course-buzzword] - a [course-metaphor] of [course-adjnoun-group] [course-suffix] - a [course-metaphor] of [course-group] [course-suffix] - a [course-metaphor] [course-explored] in American [course-medium] - a [course-metaphor] [course-explored] in [course-nounprefix] [course-medium] - what is to be learned from it? - an interdisciplinary [study] - from [last-name] to [last-name] - [theory] at work - policy [course-suffix] - different points of view - [course-buzzword] and [course-buzzword] - the big picture - a paradigm shift - [course-nounprefix] [theories] - myth and reality - the untold story - [journey] [discovery] - the [course-group] [condition] - [course-prefix] [course-env2] - policy - -[theories] ideas - theories - -[journey] a journey of - a quest for - an odyssey of - -[discovery] discovery - exploration - thought - self-actualization - -[study] study - approach - -[course-group] [quote-groups] - [quote-groups] - [quote-groups] - [quote-groups] - [quote-political] - -[quote-political] " [org-political] " - -pragma despace-rule [quote-political] - -[quote-groups] ( [course-groups] ) - -pragma despace-rule [quote-groups] - -[course-groups] [course-gengroup] - -[course-gengroup] [course-group1] - [course-group2] - [course-ancient] - -pragma prefix-with [course-groups] [course-gengroup] -pragma suffix-with [course-groups] [course-gengroup] - -[course-group1] gay and lesbian - homosexual - bisexual - transgender - inner city - rural - suburban - urban - southern - western - eastern - liberated - upper class - middle class - [course-adj] - -[course-group2] African-American - Hispanic - European - Latino - native American - pacific islander - Australian - Latvian - Elbonian - Italian - African - American - Asian - Chinese - Japanese - french - German - Russian - middle eastern - Scandinavian - Mexican - female - female - female - neo-pagan - atheist - polytheistic - minority - multi-ethnic - -[course-ancient] roman - Etruscan - Greek - byzantine - Mayan - Incan - Aztec - viking - Babylonian - Egyptian - Sumerian - Hittite - renaissance - Chinese - native American - -[course-life-phrase] [quote-lifephrase] - [quote-lifephrase] since [700..2010] - [quote-lifephrase] as influenced by [course-life-influence] - [quote-lifephrase] as viewed through the lens of [course-life-influence] - -[quote-lifephrase] ( [act-course-lifephrase] ) - -pragma despace-rule [quote-lifephrase] - -[influence-type] as influenced by - as viewed through the lens of - -[act-course-lifephrase] [course-lives] - -pragma suffix-with [act-course-lifephrase] [of-group] - -[of-group] of - -pragma suffix-with [of-group] [course-group] -pragma suffix-with [of-group] [course-adjnoun] - -[course-life-influence] [course-event] - [course-adjnoun-group] - -[course-lives] [quote-life] - [quote-life] and [quote-life] - [quote-life] , [quote-life] and [quote-life] - -[quote-life] ( [course-life] ) - -pragma despace-rule [quote-life] - -[course-life] life - literature - music - art - issues - perspectives - lifestyles - thought - ethics - values - landscapes - culture - society - images - ideas - endeavors - expression - affairs - morals - retrospectives - symbols - religion - traditions - civilization - -pragma suffix-with [course-life] [course-group] -pragma suffix-with [course-life] [course-adjnoun] - -[course-metaphor] metaphor - study - presentation - collage - figure - symbol - -[course-explored] explored - expressed - analyzed - interpreted - seen - -[course-person] individual - American - person - citizen - student - well-rounded person - woman - minority - liberal - -[course-buzzword] understanding - understanding - analysis - synthesis - synergy - practice - the human condition - development - cross-cultural awareness - cross-cultural perspectives - evaluation - interpretation - abstraction - decision-making - perspectives - context - paradigms - critical thinking - relationships - discovery - empowerment - -[course-buzzword2] race - class - status - gender - age - sex - work - family - community - culture - politics - struggle - conflict - -[course-movement] movement - revolution - evolution - transformation - metamorphosis - campaign - -[course-medium] art - paintings - literature - folklore - mythology - poetry - sculptures - music - architecture - dance - drama - -[course-topic] sex - death - suicide - trauma - drama - life - mythology - crime - love - hate - anger - passion - infidelity - horror - -[course-popculture] 'star wars' - 'star trek' - cyberpunk literature - harlequin romances - 'the Simpsons' - 'the x-files' - daytime soap operas - radio talk shows - Shakespeare's [comedy] - 'the scarlet letter; - 'Seinfeld' - [course-nounprefix] American literature - [course-nounprefix] [course-group] [literature] - political cartoons - pornography - 'the jerry springer show' - -[comedy] comedies - tragedies - -[literature] literature - art - -[course-contemporary] contemporary - modern - 21st century - 20th century - -[course-impactof] the [course-impact] of [course-group] [course-medium] on [course-group] [course-medium] - the [course-impact] of [course-group] [course-medium] on [course-nounprefix] [university-subject] - the [course-impact] of [course-group] [course-medium] on [course-nounprefix] [course-adjnoun-group] - the [course-impact] of [course-group] [course-medium] on [university-subject] - -[course-impact] impact - effect - consequences - influence - -[university] [university-body] [university-suffix] - -pragma export-rule [university] - -[university-body] [us-state] - [us-president] - [city] - [real-city] - [last-name] - [person] - [full-name-and-title] - -pragma prefix-with [university-body] [cardinal] - -[university-suffix] university - college - community college - state university - state college - ivy league college - -[university-subject] [hard-science] - [soft-science] - [college-major-tech] - -pragma export-rule [university-subject] - -[hard-science] quantum mechanics - planar geometry - vector calculus - theoretical physics - microbiology - abstract mathematics - oceanography - extraterrestrial biology - fractal geometry - quantum string theory - linear algebra - computer science - -[soft-science] abnormal psychology - anthropology - legal theories - [soft-type] sociology - microeconomics - political science - -[soft-type] urban - suburban - rural - -[college-major-tech] computer science - information technology - computer technology - mathematics - advanced mathematics nobody ever uses - applied physics - information systems - software engineering diff --git a/RGens/data/sample-grammars/company.gram b/RGens/data/sample-grammars/company.gram deleted file mode 100644 index 40ea83b..0000000 --- a/RGens/data/sample-grammars/company.gram +++ /dev/null @@ -1,187 +0,0 @@ -[company] [gen-name] - [gen-name] [company-name] - [plural-name] [company-name] - [gen-name] , [gen-name] and [gen-name] [company-name] - [gen-name] - [gen-name] [company-name] - [gen-name] - [gen-name] - [gen-name] & [gen-name] - [gen-name] & [gen-name] [company-name] - [gen-name] [gen-name] - [gen-name] [gen-name] [company-name] - [acronym] [company-name] - [company-root-acronym] - [full-name] [company-name] - [company-root-name] - [letter+group] [company-name] - [city] [company-name] - [company-root-city] - [us-state] [company-name] - [buzzword-adjective] [buzzword-noun] - [media-company] - [newspaper] - [real-company] - -pragma suffix-with [company] [company-suffix] -pragma export-rule [company] - -[plural-name] [gen-name] 's - -pragma despace-rule [plural-name] - -[gen-name] [last-name] - [first-name] - -[company-root-acronym] [acronym] [company-root-suffix] - -pragma despace-rule [company-root-acronym] - -[company-root-city] [city] [company-root-suffix] - -pragma despace-rule [company-root-city] - -[company-root-name] [gen-name] [company-root-suffix] - -pragma despace-rule [company-root-name] - -[letter+group] [letters] - [letters] & [letters] - [letters] & [letters] & [letters] - -[letters] [letter] - [letter] - [letter] - [letter] [letter] - [letter] [letter] - [letter] [letter] [letter] - -pragma despace-rule [letters] - -[company-suffix] [company-suffix1] - [company-suffix2] - -[company-suffix1] Inc. - Incorporated - Ltd. - Corp. - Corporation - Co. - Company - Cooperative - Amalgamated - -[company-suffix2] , Inc. - , Incorporated - , Ltd. - , LLC - -[company-name] associated - united - brothers - associates - gizmos - industries - products - widgets - farms - technology - electronics - communications - media - network - networking - software - computers - general store - stores - restaurants - design - construction - retail - manufacturing - ranch - ambulance chasers - attorneys at law - polluters - real estate - bank - railroad - consultants - publishing - holdings - services - utilities - and company [company-name] - and company - and co. [company-name] - and co. - of [city] - -[company-root-suffix] .com - .net - dot com - ware - soft - way - Co - co - tech - -[dotcom-company] [actual+dotcom-company] - -[actual+dotcom-company] [buzzword-adjective] .com - [acronym] .com - [dotcom-start] [newspaper-pair2] .com - [trademark] .com - -[tech-company] microsoft - america online - yahoo! - ebay - amazon.com - sun microsystems - va linux - red hat - oracle - corel - ibm - lucent technologies - earthlink - verio - lycos - altavista - cnet - citrix systems - intuit - exodus communications - verisign - inktomi - qualcomm - cisco systems - dell computers - gateway - jds uniphase - at&t - mci - apple - be, inc. - caldera - compaq - intel - amd - cyrix - motorola - sgi - transmeta - inprise - hewlett-packard - -pragma export-rule [tech-company] - -[corp-job-title] president - vice president - chief executive officer - chief financial officer - public relations director - chief technology officer - board chairman - director diff --git a/RGens/data/sample-grammars/computer.gram b/RGens/data/sample-grammars/computer.gram deleted file mode 100644 index a3a7814..0000000 --- a/RGens/data/sample-grammars/computer.gram +++ /dev/null @@ -1,53 +0,0 @@ -[computer-language] c - c - c++ - c++ - objective c - perl - python - java - javascript - basic - visual basic - awk/sed - bash - x86 assembly - pascal - cobol - forth - scheme - lisp - tcl/tk - ada - dos batch files - jcl - rexx - scheme - clojure - ruby - python - apl - k - opencomal - [esoteric-language] - [esoteric-language] - -[esoteric-language] magenta - brainfuck - whitespace - befunge - malbolge - -pragma export-rule [computer-language] -pragma export-rule [computer-skill] - -[computer-skill] html - xml - css - cgi scripting - cgi scripting with [computer-language] - photoshop - autocad - sql - asp - php diff --git a/RGens/data/sample-grammars/congress.gram b/RGens/data/sample-grammars/congress.gram deleted file mode 100644 index cffe469..0000000 --- a/RGens/data/sample-grammars/congress.gram +++ /dev/null @@ -1,35 +0,0 @@ -[congress-critter] [critter-type] [critter-name] - -pragma initial-rule [congress-critter] - -[critter-type] senator - representative - -[critter-name] [last-name] - [critter-name2] - -[critter-name2] fattecat - becon - p. ork - g. raft - phil e. buster - phil t. rich - iva gottalot - erna bigcheque - billy o'naire - c. a. pitalist - noah morals - lucy morrals - buford fatbacke - c. r. pette-bagger - k. ickbach - lobb e. ist - p. orkbarrel - phil e. buster - p. urgery - l. ibel - s. lander - i. b. fersaile - pettie k. ash - c. l. inton - dee septive diff --git a/RGens/data/sample-grammars/dates.gram b/RGens/data/sample-grammars/dates.gram deleted file mode 100644 index 1ed0daa..0000000 --- a/RGens/data/sample-grammars/dates.gram +++ /dev/null @@ -1,20 +0,0 @@ -[day-of-week] sunday - monday - tuesday - wednesday - thursday - friday - saturday - -[month] january - february - march - april - may - june - july - august - september - october - november - december diff --git a/RGens/data/sample-grammars/diablo-ii/diabloii.gram b/RGens/data/sample-grammars/diablo-ii/diabloii.gram deleted file mode 100755 index 411e795..0000000 --- a/RGens/data/sample-grammars/diablo-ii/diabloii.gram +++ /dev/null @@ -1,63 +0,0 @@ -[base-treasures] [base-treasure] - [quote-treasure] as well as [quote-treasure] - [quote-treasure] or [quote-treasure] - [quote-treasure] , and [quote-treasure] as well as [quote-treasure] - [quote-treasure] , [quote-treasure] or [quote-treasure] - -pragma initial-rule [base-treasures] - -[quote-treasure] ( [base-treasure] ) - -pragma despace-rule [quote-treasure] - -[base-treasure] a [item] - a [item] - a [item] - [non-item] - -[non-item] [money] - [money] - [money] - [money] - nothing - -[money] [diablo-amount] [money-type] - -[diablo-amount] 1 - 5 - 10 - 20 - 50 - 100 - 200 - 500 - 1000 - -pragma export-rule [diablo-amount] - -[money-type] coins - -pragma prefix-with [money-type] [metal-type] - -[metal-type] copper - silver - gold - platinum - -[item] [item-types] - [item-types] - [item-types] - [item-types] - [item-types] [d2-suffix] - [item-types] [d2-suffix] - [d2-prefix] [item-types] - [d2-prefix] [item-types] - [d2-prefix] [item-types] [d2-suffix] - -[item-types] [d2-item-type] - [d2-item-type] - [ds-items] - -[ds-items] [ds-gem] - [ds-rune] - [ds-armor] diff --git a/RGens/data/sample-grammars/diablo-ii/diabloiiitems.gram b/RGens/data/sample-grammars/diablo-ii/diabloiiitems.gram deleted file mode 100755 index 5fa174b..0000000 --- a/RGens/data/sample-grammars/diablo-ii/diabloiiitems.gram +++ /dev/null @@ -1,262 +0,0 @@ -[d2-item-type] [armor] - [headgear] - [accoutrements] - [shields] - [knives] - [swords] - [clubs] - [spears] - [polearms] - [axes] - [bows] - [crossbows] - [wands] - [staves] - [accessories] - [gems] - [inscriptions] - [perishables] - -pragma export-rule [d2-item-type] - -[armor] [light-armor] - [medium-armor] - [heavy-armor] - -pragma prefix-with [armor] [armor-prefix] - -[light-armor] cape - rags - cloak - robe - -[medium-armor] quilted armor - leather armor - studded leather armor - ringmail - scalemail - chainmail - -[heavy-armor] breastplate - plate - splint mail - platemail - field plate - -[armor-prefix] light - heavy - hard - reinforced - full - Gothic - ancient - -[headgear] cap - [helm] - [mask] - crown - -pragma prefix-with [headgear] [headgear-kind] - -[helm] helm - helmet - -[mask] mask - masque - -[headgear-kind] full - great - bone - -[accoutrements] gloves - sash - boots - bracers - belt - gauntlets - girdle - -pragma prefix-with [accoutrements] [acc-kind] - -[acc-kind] leather - chain - plate - -[shields] buckler - shield - -pragma prefix-with [shields] [shield-type] -pragma prefix-with [shields] [shield-size] - -[shield-size] small - large - huge - -[shield-type] kite - spiked - bone - tower - Gothic - -[knives] dagger - knife - kris - -pragma prefix-with [knives] throwing - -[swords] sword - sabre - blade - scimitar - falchion - claymore - -pragma prefix-with [swords] [sword-kind] - -[sword-kind] long - broad - short - bastard - two-handed - -[clubs] club - mace - morning star - flail - maul - -pragma prefix-with [clubs] [club-prefix] - -[club-prefix] spiked - war - -[spears] javelin - spear - pilum - glaive - trident - pike - brandistock - -[polearms] bardiche - scythe - poleaxe - halberd - -[axes] axe - hatchet - -pragma prefix-with [axes] [axe-type] -pragma prefix-with [axes] [axe-size] - -[axe-size] small - large - giant - -[axe-type] throwing - broad - battle - great - hand - -[bows] [act-arrow] [quote-count] - [act-bow] - [act-bow] - [act-bow] - [act-bow] - -[act-arrow] arrow - [gem-type] -tipped arrow - -[act-bow] bow - -pragma prefix-with [act-bow] [bow-type] -pragma prefix-with [act-bow] [bow-size] - -[bow-size] short - long - -[bow-type] hunter’s - composite - battle - war - -[crossbows] [act-bolt] [quote-count] - [act-crossbow] - [act-crossbow] - [act-crossbow] - [act-crossbow] - -[act-bolt] bolt - [gem-type] -tipped bolt - -[act-crossbow] crossbow - -pragma prefix-with [act-crossbow] [crossbow-type] -pragma prefix-with [act-crossbow] [crossbow-weight] - -[crossbow-type] repeating - double - -[crossbow-weight] light - heavy - hand - -[wands] wand - torch - scepter - -pragma prefix-with [wands] [wand-type] - -[wand-type] bone - [tree] - -[staves] staff - -pragma prefix-with [staves] [staff-type] -pragma prefix-with [staves] [tree] -pragma prefix-with [staves] [staff-length] - -[staff-type] gnarled - composite - battle - war - -[staff-length] short - long - -[accessories] charm - ring - flag - orb - amulet - -[gems] [gem-type] - -pragma prefix-with [gems] [gem-size] -pragma prefix-with [gems] [gem-quality] - -[gem-quality] chipped - flawed - flawless - perfect - -[gem-size] tiny - small - large - huge - -[gem-type] amethyst - diamond - emerald - ruby - sapphire - topaz - -[inscriptions] scroll - rune - book - -[quote-count] ( [diablo-amount] count ) - -pragma despace-rule [quote-count] diff --git a/RGens/data/sample-grammars/diablo-ii/diabloiiperish.gram b/RGens/data/sample-grammars/diablo-ii/diabloiiperish.gram deleted file mode 100755 index af6c9ec..0000000 --- a/RGens/data/sample-grammars/diablo-ii/diabloiiperish.gram +++ /dev/null @@ -1,132 +0,0 @@ -[perishables] [perishable-type] of [perishable-effect] - [perishable-effect] [perishable-type] - [bodypart] of [perishable-effect] - -pragma export-rule [perishables] - -[bodypart] heart - brain - jawbone - eye - ear - horn - tail - fang - quill - scalp - spleen - soul - bone - skull - blood - ribcage - viscera - flesh - claw - -[perishable-type] potion - oil - herb - elixir - resin - flask - spice - salve - -pragma prefix-with [perishable-type] [bodypart] - -[perishable-degree] light - medium - full - -[perishable-effect] [perishable-effect-1] - [perishable-effect-1] - [perishable-effect-1] - [perishable-effect-1] - [perishable-degree] [perishable-effect-1] - -[perishable-effect-1] [restore-effect] - detox - restoration - flaming - explosive - fulminating - [gas-type] gas - acidity - energizing - strengthening - empowering - artful - skillful - adroit - sturdiness - hardy - robust - sage - shrewd - vivid - indigo - cerulean - russet - vermilion - crackling - forked - swart - atramentous - vital - enduring - urgent - fleet - brisk - swift - dazzling - fascinating - bright - solar - omniscience - mystical - arcane - strength - dexterity - vitality - intelligence - chi - spectralness - fire - ice - lightning - magic - psionic - poison - energy - accuracy - damage - defense - life - power - accuracy - precision - mastery - sharpness - pain - savagery - death - hardening - imperviousness - immunity - skill - fortitude - blacksmith’s - blacksmithing - permanence - enchantment - enchanting - -[restore-effect] healing - mana - rejuvenation - chi - -[gas-type] rancid - choking - strangling diff --git a/RGens/data/sample-grammars/diablo-ii/diabloiiprefixes.gram b/RGens/data/sample-grammars/diablo-ii/diabloiiprefixes.gram deleted file mode 100755 index 5157115..0000000 --- a/RGens/data/sample-grammars/diablo-ii/diabloiiprefixes.gram +++ /dev/null @@ -1,182 +0,0 @@ -[d2-prefix] [d2-prefix-part] - [d2-prefix-part] - [d2-prefix-chain] - -pragma export-rule [d2-prefix] - -[d2-prefix-chain] [d2-prefix-part] [d2-prefix-part] - [d2-prefix-part] [d2-prefix-part] - [d2-prefix-part] and [d2-prefix-part] - [d2-prefix-part] and [d2-prefix-part] - [d2-prefix-part] [d2-prefix-part] [d2-prefix-part] - -[d2-prefix-part] [armor-class] - [saving-throw] - [foe-reaction] - [skill-improve] - [cursed] - [visibility] - [castability] - [magical-effect] - [personal-stat] - [to-hit] - [extra-damage] - [to-hit-damage] - [item-charges] - -[armor-class] sturdy - fine - strong - grand - valiant - glorious - blessed - awesome - saintly - holy - godly - -[saving-throw] tawny - azure - crimson - ocher - pearl - beryl - coal - jasmine - lapis - burgundy - tangerine - ivory - jade - jet - pyrite - cobalt - garnet - coral - crystal - viridian - ebony - crysolite - sapphire - ruby - amber - diamond - emerald - obsidian - topaz - prismatic - bond - -[foe-reaction] subduing - wearying - phasing - depleting - howling - chaotic - subjugating - fatiguing - exhausting - overwhelming - -[skill-improve] fletcher’s - slayer’s - summoner’s - monk’s - angel’s - archer’s - berserker’s - necromancer’s - priest’s - arch-angel’s - -[cursed] rusted - vulnerable - glass - hyena’s - frog’s - pitch - brass - tin - crystalline - weak - bent - useless - dull - clumsy - -[visibility] glowing - oracular - unseen - hidden - veiled - stalking - -[castability] lizard’s - spider’s - raven’s - snake’s - serpent’s - drake’s - dragon’s - worm’s - hydra’s - devious - fortified - vulpine - -[magical-effect] extending - chrono - augmenting - catalyzing - -[personal-stat] blue - red - orange - white - black - tough - swift - brilliant - mighty - vibrant - forceful - resilient - silver - muscular - healthy - -[to-hit] bronze - iron - silver - steel - gold - platinum - mithril - meteoric - weird - -[extra-damage] jagged - deadly - vicious - heavy - brutal - massive - savage - ruthless - merciless - -[to-hit-damage] sharp - fine - warrior’s - soldier’s - knight’s - master’s - doppelganger’s - lord’s - champion’s - king’s - -[item-charges] plentiful - jester’s - bountiful diff --git a/RGens/data/sample-grammars/diablo-ii/diabloiisuffixes.gram b/RGens/data/sample-grammars/diablo-ii/diabloiisuffixes.gram deleted file mode 100755 index f6deea0..0000000 --- a/RGens/data/sample-grammars/diablo-ii/diabloiisuffixes.gram +++ /dev/null @@ -1,230 +0,0 @@ -[d2-suffix] of [suffix-part] - of [suffix-part] - of [suffix-chain] - -[suffix-chain] [suffix-part] and [suffix-part] - [suffix-part] and [suffix-part] - [suffix-part] and of [suffix-part] - [suffix-part] and of [suffix-part] - [suffix-part] , [suffix-part] and [suffix-part] - -pragma export-rule [d2-suffix] - -[suffix-part] [damage-reduction] - [defense-effect] - [durability] - [hitpoints] - [ability-scores] - [cursed] - [recovery] - [memorization] - [combat-action] - [treasure-finder] - [light-source] - [hazard-reduction] - [damage-increase] - [min-damage] - [attack-speed] - [attack-effect] - [attack-restore] - [item-damage] - [weapon-proficency] - [weapon-use] - [spell-casting] - -pragma prefix-with [suffix-part] the - -[damage-reduction] health - protection - absorption - life - deflection - -[defense-effect] thorns - spikes - blocking - -[durability] sturdiness - structure - ages - bonding - unity - -[hitpoints] [hitpoints-act] - -[hitpoints-act] jackal - fox - jaguar - wolf - eagle - tiger - lion - mammoth - whale - colossus - -[ability-scores] vitality - dexterity - magic - strength - lynx - zest - skill - mind - might - leopard - vim - accuracy - brilliance - power - jaguar - vigor - precision - sorcery - giant - tiger - life - perfection - wizardry - titan - lion - sky - moon - stars - heavens - zodiac - -[cursed] tears - pain - brittleness - decay - fragility - vulture - disease - atrophy - dyslexia - weakness - cat - pit - illness - paralysis - draining - frailty - rat - trouble - pox - corruption - infection - ruin - exposed - discord - night - dark - void - passivity - snail - fool - -[recovery] regeneration - regrowth - -[memorization] warding - sentinel - guarding - negation - osmosis - -[combat-action] apprentice - magus - balance - stability - harmony - -[treasure-finder] greed - chance - wealth - fortune - -[light-source] light - radiance - sun - -[hazard-reduction] thief - warmth - remedy - amelioration - defiance - purging - -[damage-increase] craftsmanship - quality - maiming - slaying - gore - devastation - jester - carnage - slaughter - -[min-damage] measure - worth - excellence - performance - -[attack-speed] readiness - alacrity - swiftness - quickness - speed - haste - -[attack-effect] frost - flame - shock - blight - ice - fire - lightning - venom - glacier - burning - thunder - pestilence - vileness - crusaders - destruction - peril - bear - grizzly - -[attack-restore] leech - claw - bat - blood - talon - vampire - lamprey - -[item-damage] piercing - breaking - puncturing - smashing - bashing - -[weapon-proficency] ease - simplicity - -[weapon-use] many - plenty - -[spell-casting] [spell-number] level magic - -[spell-number] 1st - 2nd - 3rd - 4th - 5th - 6th - 7th - 8th - 9th diff --git a/RGens/data/sample-grammars/dungeon-enviroment.gram b/RGens/data/sample-grammars/dungeon-enviroment.gram deleted file mode 100755 index 0080b9a..0000000 --- a/RGens/data/sample-grammars/dungeon-enviroment.gram +++ /dev/null @@ -1,140 +0,0 @@ -[dungeon-enviroment] [man-made] - [cave] - [natural] - [aquatic] - [aerial] - [supernatural] - -pragma initial-rule [dungeon-enviroment] - -[man-made] a stone room - a spiral staircase surrounding a giant pit - an old dusty library - an aging unadorned altar - a power plant full of gears and pistons - a giant stone staircase - a room made of large timbers - a factory with neglected machines - an ancient battlefield littered with skeletons and rusted weapons - a stone bathroom - a kitchen with a tall ceiling - a room whose walls are covered with drawings - an abandoned theatre - a garbage dump filled with trash - a colossal statue that was abandoned before it was completed - a great hall decorated with murals and tapestries - a metro khan railway - a gallery displaying paintings and busts - a tomb lined with stone sarcophagi - a gate whose door is covered in rust - an abandoned prison - -[cave] a cave with nothing but bare rock - a cave filled with bats and flying bugs - an abandoned mineshaft - somebody's campsite - a cave filled with so many boulders they obscure vision - a cave that belches smoke - a limestone grotto echoing with the sound of running water - a cavern filled with faint, eerie starlight - a cave full of quicksand - smooth tunnels dug out by some kind of animal - a cave filled with cold water - a crack between giant boulders - a cave whose walls are covered with paintings of animals and hunters - a natural bridge spanning a vast chasm - a cave that has been filled in almost to the ceiling - a precipice overlooking a bottomless pit - a cavern whose walls are obscured by swarms of crawling bugs - a cave with numerous fossils buried in it - a cave filled with hot, flowing lava - a cavern made of crystal - the lair of some creature, scattered with skeletons - -[natural] a room covered in moss - a secret forest reverberating with the calls of animals - a corridor made of vines - a field of flowers filled with hollows - a room with tree branches growing through the walls - farmland stretching across an entire cave - a forest overgrown with weeds - a tall cavern with a giant tree whose trunk twists and turns - a cave with a seal breeding ground spread through it - a room whose walls are covered in mold - a room dotted in cacti - a patch of giant mushrooms - a cave with a giant tree growing in the middle of it - corridors filled with roaming herds of horse lizards - a room with piles of fallen leaves - a hedge maze - an overgrown bamboo grove - a room with suddenly falling pine trees - a room filled with tall, overgrown grass - a withered forest - rooms and corridors that feel like the inside of a giant tree - -[aquatic] a bridge crossing a roaring river - the inside of a rainbow colored coral reef - a room filled with waist high water - a water fountain and watering hole - a boiling lake - a room whose floor has turned into a tidal flat - a cistern thats filling with water - a room obscured by hot steam - a swamp that spreads throughout a cave - a ship whose rigging and hull have been neglected - an aquarium filled with tanks - a foul smelling sewer - a submerged cavern with ruins at the bottom - a pier and harbor - a lake with rafts and barges - a giant pit and waterfall - an incomplete aqueduct - a frozen lake swarming with penguins - a steamy hot spring - an old well covered with strange engravings - a room whose walls are covered with shellfish and barnacles - -[aerial] a room where its raining - a cave made of cheese - gardens piled up towards the sky - clotheslines covered in pristine white clothing that stretch forever - a giant beanstalk stretching towards the ceiling - a giant pit with dangling rope ladders and chains - a room where a fierce wind blows - on top of a cloud - a cave obscured by thick mist - a room with zero gravity - a room where snowfall is quickly accumulating - a skyway where space-time is warped - a corridor where you can hear the sounds of a windmill for keeping monsters away - a cave with ruins on its ceiling - a massive, roaring ventilation shaft - a room with occasional lightning flashes - a room where bird feathers flutter to the ground - a cave whose walls are painted to look like the sky - a room where one wall is a mirror - a cave with a shimmering aurora - a room with variable gravity - -[supernatural] an old six tatami mat room - a cramped karaoke box - a town where time has stopped - a gymnasium with a single ball rolling around - a room covered in hair - some sort of waiting room - the inside of a living creature - a small park with swings and a slide - a cheap-looking prefabricated bathroom - a room with a noisy upstairs neighbor - a room made of human bones - a room that breathes - a room built on an angle - a room in a love hotel - a room where someone is spying on you - a room where you can hear voices talking loudly - a room growing tentacles - an interrogation room with a table and chair - an empty classroom - a room whose ceiling is a giant human - a room that is constantly swaying diff --git a/RGens/data/sample-grammars/dungeondressing/abandoned.gram b/RGens/data/sample-grammars/dungeondressing/abandoned.gram deleted file mode 100644 index c9ed653..0000000 --- a/RGens/data/sample-grammars/dungeondressing/abandoned.gram +++ /dev/null @@ -1,24 +0,0 @@ -[abandoned] while exploring the abandoned [abandon-place] , a [abandon-person] sneaks up on you [abandon-motion] . - -pragma initial-rule [abandoned] - -[abandon-place] shopping mall - amusement park - military complex - junkyard - hospital - insane asylum - -[abandon-person] pedophile - investment banker - cyborg prostitute - vampire - trio of dogs in a trench coat - undead wizard - -[abandon-motion] on a jetpack - in a spooky van - on roller skates - on horseback - in a rickshaw - in a palanquin diff --git a/RGens/data/sample-grammars/dungeondressing/bedroom.gram b/RGens/data/sample-grammars/dungeondressing/bedroom.gram deleted file mode 100644 index 8bb9449..0000000 --- a/RGens/data/sample-grammars/dungeondressing/bedroom.gram +++ /dev/null @@ -1,255 +0,0 @@ -[bedroom] you enter the [bedroom-type] and see a(n) [bedroom-bed] with a(n) [bedroom-person] [bedroom-lying] - -pragma initial-rule [bedroom] - -[bedroom-type] cheap hotel room - penthouse suite - secret passage - bear's den - captain's cabin - hospital ward - damp cave - mountain glen - deserted clearing - desert island - abandoned crypt - [fantasy-location-name] - [fantasy-location-name] - [fantasy-location-name] - -[bedroom-bed] king bed with luxury sheets - messy pile of wet hay - flea-infested sleeping bag - luxurious sleeping bag - pentagram with candles - freshly unearthed coffin - tropical rope hammock - altar - -pragma prefix-with [bedroom-bed] [bed-prefix] -pragma prefix-with [bedroom-bed] [sacred-type] - -[bed-prefix] ruined - ancient - legendary - pristine - -[sacred-type] unholy - holy - blessed - dammed - cursed - demonic - hallowed - unhallowed - sacred - infernal - angelic - -[bedroom-person] [bed-bones] - [bed-bones] - jug of moonshine - [bed-aliveperson] - [bed-aliveperson] - [bed-aliveperson] - [bed-aliveperson] - [bed-aliveperson] - [bed-aliveperson] - [bed-aliveperson] - [bed-aliveperson] - [bed-aliveperson] - [bed-aliveperson] - -[bedroom-lying] lying [onin] it - draped atop it - prostrated before it - [tied] to it - [tied] to it - trapped in it - -[bed-aliveperson] [bed-arist] - [bed-doll] - [bed-prost] - [bed-slave] - [humanoid] - [bed-inhuman] - -[bed-inhuman] [creature] - [monster] - [creature-epic] - -pragma prefix-with [bed-aliveperson] [bed-status] -pragma prefix-with [bed-aliveperson] [bed-name] - -[bed-name] [full-name] , a(n) - [fantasy-name] , a(n) - -[bed-status] [bed-status1] - [bed-status2] - [bed-status1] [bed-status2] - [bed-status2] [bed-status1] - -[bed-status1] dead - decapitated - [status-alive] - [status-alive] - [status-alive] - [status-alive] - -[status-alive] unconcious - sleeping - normal - fainted - -[bed-status2] bleeding - badly wounded - uninjured - pale - burnt - trembling - scared - aroused - -[tied] chained - tied - bound - secured - fastened - handcuffed - roped - shackled - -[onin] on - in - -[bed-bones] [pile] of [bone-status] [bones] - [pile] of [bone-status] [bones] - [pile] of [bone-status] [part-human] [bones] - [pile] of [bone-status] [part-human] [bones] - [blood-puddle] - -[pile] pair - couple - group - pile - hoard - collection - set - -[blood-puddle] puddle of blood - puddle of [part-human] blood - -[bones] bones - flesh - viscera - skulls - claws - hearts - brains - jawbones - eyes - ears - horns - tails - fangs - quills - scalps - spleens - souls - -[bone-status] clean - old - fresh - moldy - dusty - bloody - ancient - -[bed-arist] [aristocrat] - [part-human] [aristocrat] - [part-human] - -pragma prefix-with [bed-arist] kidnapped - -[aristocrat] aristocrat - prince - princess - king - queen - mercenary - merchant - [generic-title] - -[bed-doll] [doll] - [doll] of a [part-human] - -[doll] doll - mannequin - puppet - -pragma prefix-with [bed-doll] [sex] -pragma prefix-with [bed-doll] [realism] - -[sex] sex - sexy - -[realism] realistic - unrealistic - [realism-beauty] - -[realism-beauty] [beauty] - unrealistic [beauty] - realistic [beauty] - -[beauty] beautiful - pretty - cute - attractive - normal - ugly - unattractive - -pragma prefix-with [realism] creepily - -[bed-prost] prostitute - wench - -pragma prefix-with [bed-prost] [part-human] - -[bed-slave] slave - escaped slave - -pragma prefix-with [bed-slave] [part-human] - -[bed-gender] male - female - -[part-human] [humanoids] - [part-human2] - -pragma prefix-with [part-human] [bed-gender] - -[part-human2] [half-humans] - [quarter-humans] - -[half-humans] [half-human] - [half-human] , [half-human] - -[quarter-humans] [quarter-human] - [quarter-human] , [half-human] - [quarter-human] , [quarter-human] - [quarter-human] , [quarter-human] , [quarter-human] - [quarter-human] , [quarter-human] , [quarter-human] , [quarter-human] - -[half-human] half- [humanoids] - -[quarter-human] quarter- [humanoids] - -[humanoids] [humanoid] - [humanoid] - [humanoid] - [humanoid] - [bed-inhuman] - -pragma despace-rule [half-human] -pragma despace-rule [quarter-human] diff --git a/RGens/data/sample-grammars/dungeondressing/dragonencounter.gram b/RGens/data/sample-grammars/dungeondressing/dragonencounter.gram deleted file mode 100644 index 5c299c3..0000000 --- a/RGens/data/sample-grammars/dungeondressing/dragonencounter.gram +++ /dev/null @@ -1,24 +0,0 @@ -[dragon-encounter] The [dragon-desc] dragon has a lair in [dragon-lair] where it guards a massive hoard of [dragon-hoard] - -pragma initial-rule [dragon-encounter] - -[dragon-desc] obese - syphilitic - convict - terrorist - college-educated - moronic - -[dragon-lair] an inner-city slum - a lunar base - a penthouse apartment - a floating ghost ship - an open-air sewer - an abandoned church - -[dragon-hoard] drugs and alcohol - 11 herbs and spices - erotic sculpture - stock market advice - graffiti stencils - canned food diff --git a/RGens/data/sample-grammars/dungeondressing/kitchen.gram b/RGens/data/sample-grammars/dungeondressing/kitchen.gram deleted file mode 100644 index 23abda4..0000000 --- a/RGens/data/sample-grammars/dungeondressing/kitchen.gram +++ /dev/null @@ -1,25 +0,0 @@ -[kitchen] You enter the [kitchen-desc] kitchen. There is a [kitchen-book] cookbook nearby. Over the hearth, a [kitchen-food] gently simmers in a saucepan. - -pragma initial-rule [kitchen] - -[kitchen-desc] poorly lit - dirty and insect infested - blood-soaked - built for a studio audience - well-stocked - papier-mache - -[kitchen-book] troll - orcish - demonic - braille - animated, speaking - floating - [creature] - -[kitchen-food] chicken with herb butter - charred human heart - glittering pixie carcass - pound of thick-cut bacon - dragon-egg omelette - dozen tiny hands diff --git a/RGens/data/sample-grammars/dungeondressing/monster.gram b/RGens/data/sample-grammars/dungeondressing/monster.gram deleted file mode 100644 index 47e1417..0000000 --- a/RGens/data/sample-grammars/dungeondressing/monster.gram +++ /dev/null @@ -1,51 +0,0 @@ -[monster] [monster-kind] - [monster-prefix] [monster-kind] - -pragma initial-rule [monster] - -[monster-prefix] were- - half- - quarter- - vampire - giant - diseased - magic - clockwork - cybernetic - rabid - ancient - eldritch - ghostly - alien - -[monster-kind] orc - goblin - dragon - zombie - wizard - ogre - pegasus - witch - spider - harpy - minotaur - chupacabra - chimera - mermaid - kraken - sasquatch - jackalope - hydra - wyvern - gorgon - cyclops - medusa - genie - dwarf - elf - banshee - gremlin - angel - demon - troll - centaur diff --git a/RGens/data/sample-grammars/eastern-sun/easternsunsocketing.gram b/RGens/data/sample-grammars/eastern-sun/easternsunsocketing.gram deleted file mode 100644 index 3585220..0000000 --- a/RGens/data/sample-grammars/eastern-sun/easternsunsocketing.gram +++ /dev/null @@ -1,17 +0,0 @@ -[es-socketable] [es-gem] - [es-gem] - [es-rune] - -[gem-quality] chipped - flawed - blemished - flawless - extraordinary - perfect - -[es-gem] [gem-1 - [gem-1] - [gem-2] - [gem-2] - [gem-quality] [gem-1] - [gem-quality] [gem-1] diff --git a/RGens/data/sample-grammars/elementals.gram b/RGens/data/sample-grammars/elementals.gram deleted file mode 100644 index 30d256f..0000000 --- a/RGens/data/sample-grammars/elementals.gram +++ /dev/null @@ -1,237 +0,0 @@ -[elemental] elemental - elemental - elemental - [other-elementalcreatures] - [rs-elementype] - -pragma prefix-with [elemental] [elemental-types] -pragma prefix-with [elemental] [elemental-age] -pragma prefix-with [elemental] [great-less] -pragma suffix-with [elemental] [sgreat-less] - -pragma initial-rule [elemental] - -[other-elementalcreatures] archonmental - grue - weird - elementite swarm - genasi - half-elemental - elemental [creature] - [creature] - unraveler - necromental - archon - phantom - facet - wyrm - fiend - spirit - crystalle - spawn - minion - horror - horde - reactionals - elemental dragon - elemental knight - -[great-less] lesser - greater - advanced - -[sgreat-less] , [great-less] - -[rs-elementype] essling - esshound - esswraith - -[elemental-age] small - medium - large - huge - titanic - elder - monolithic - great - primal - eldritch - -[elemental-types] [nhelemental-types] - [nhelemental-types] - [nhelemental-types] - [nhelemental-types] - [nhelemental-types] - [nhelemental-types] - [hybrid-type] - -[nhelemental-types] [quote-type] - [quote-type] - [quote-type] / [quote-type] - [quote-type] / [quote-type] / [nhelemental-types] - -pragma export-rule [elemental-types] - -[hybrid-type] hybrid [hybrid-open] and [hybrid-close] - hybrid [hybrid-open] , [nhelemental-types] and [hybrid-close] - -[hybrid-open] ( [nhelemental-types] - -pragma despace-rule [hybrid-open] - -[hybrid-close] [nhelemental-types] ) - -pragma despace-rule [hybrid-close] - -[quote-type] ( [elemental-type] ) - -pragma despace-rule [quote-type] - -[elemental-type] [bare-elemental-type] - [bare-elemental-type] - [bare-elemental-type] - [bare-elemental-type] - [elemental-adv] [bare-elemental-type] - [elemental-adv] [bare-elemental-type] - [elemental-adv] [elemental-adv] [bare-elemental-type] - -[bare-elemental-type] [common-element] - [common-element] - [runescape-elemental] - [runescape-elemental] - [paraquasi-elemental] - [paraquasi-elemental] - [other-elemental] - -pragma export-rule [elemental-type] -pragma export-rule [bare-elemental-type] - -[common-element] fire - earth - water - air - -[elemental-adv] shadowy - clockwork - spacious - ethereal - blessed - cursed - ruined - stormy - tainted - chaotic - natural - deathly - astral - cosmic - bloody - soul- - icy - oozing - smoking - ashy - dusty - salty - steaming - forceful - radiant - empty - crystallized - frosted - silty - volcanic - sparking - fuming - blazing - grave - primal - rainy - sunny - angelic - demonic - devilish - sandy - dreaming - demonically-fused - wooden - sonic - decaying - growing - diseased - metallic - null - divine - oily - eldritch - -pragma export-rule [elemental-adv] - -[other-elemental] shadow - time - space - ether - light - storm - taint - ruin - darkness - grave - mist - pyre - rain - sun - sand - dream - wood - sonic - titanium - decay - growth - disease - crystal - metal - null - oil - -[runescape-elemental] mind - body - cosmic - chaos - nature - law - death - astral - blood - soul - -[paraquasi-elemental] [para-elemental] - [para-elemental] - [quasi-elemental] - [quasi-elemental] - [quasi-elemental] - [quasi-elemental] - [paraquasi-elemental] - -[para-elemental] ice - magma - ooze - smoke - -[quasi-elemental] ash - dust - salt - vacuum - mineral - radiance - steam - force - -[paraquasi-elemental] crystal - frost - clay - silt - obsidian - pumice - spark - fumes diff --git a/RGens/data/sample-grammars/fantasy-locations.gram b/RGens/data/sample-grammars/fantasy-locations.gram deleted file mode 100755 index 1190d68..0000000 --- a/RGens/data/sample-grammars/fantasy-locations.gram +++ /dev/null @@ -1,230 +0,0 @@ -[fantasy-location-name] [name2] - -pragma prefix-with [fantasy-location-name] [name1] -pragma prefix-with [fantasy-location-name] [name1] - -pragma initial-rule [fantasy-location-name] - -[name1] amber - angry - ardent - azure - bittersweet - black - blasted - brass - brilliant - broken - bronze - burnt - cornsilk - crimson - cold - dagger - dark - diamond - dreaming - drowsy - dry - dusty - [black-color] - emerald - fleet - fire - [gold-color] - good - grace - grand - gray - great - green - hammer - hasty - hazy - helm - high - holy - honey - hot - [ice-type] - iron - ivory - lilac - little - kings - maple - mighty - night - [oak-type] - onyx - peaceful - pearl - prancing - quartz - queens - [rain-type] - red - [rose-type] - royal - ruby - sable - sacred - sage - sand - sapphire - screaming - shale - shining - short - [silk-type] - silver - sleeping - small - snow - solid - steel - sterling - storm - strong - summer - swift - sword - tawny - thunder - topaz - tranquil - vast - verdant - vile - violet - virgin - whisper - white - wicked - wild - wind - winter - xanthous - [complete-color] - -[name2] beach - bear - boar - bluff - brook - butte - castle - cave - circle - cliff - crag - creek - crescent - crevasse - crow - crown - coast - dale - dark - dragon - dunes - eagle - elk - field - fist - ford - forest - fountain - fox - gale - gauntlet - glade - goose - griffin - grove - gulf - hall - hedge - hill - hold - hole - isle - keep - lake - light - lion - lord - maiden - march - marsh - mare - maze - meet - mark - mine - mirror - oasis - orchard - owl - path - peak - plain - point - pony - pool - prison - quest - reach - reef - ridge - ring - river - road - rock - rush - sea - serpent - shell - shield - shore - sky - square - stag - star - steed - stone - stream - sun - tear - tiger - tower - unicorn - vale - valley - wall - wash - water - way - wolf - wood - -[silk-type] silk - silken - -[rose-type] rose - rosy - -[rain-type] rain - rainy - -[oak-type] oak - oaken - -[ice-type] ice - icy - -[black-color] ebon - ebony - -[gold-color] gold - golden diff --git a/RGens/data/sample-grammars/fortune.gram b/RGens/data/sample-grammars/fortune.gram deleted file mode 100644 index 8bfce32..0000000 --- a/RGens/data/sample-grammars/fortune.gram +++ /dev/null @@ -1,123 +0,0 @@ -[fortune-cookie] you will buy a new set of clothes - you will be hit over the head with a piano falling from a [ordinal] floor window - you will be audited by the irs - you will be audited by the irs because of your activity in the [org-political] - you will be held hostage by the radical [org-political] - you will be run over by a [bus] - you will find yourself as the victim of a bizarre practical joke - you will contract a rare form of [plural+last-name] disease - you will grow fat and bald - you will lose your present job and have to become a [job] - you will run for public office and only receive [half-digit+percent] of the vote - your spouse will eventually find out about you-know what - you will accidentally run over your neighbor's pet [animal] and be sued for [1..5] million dollars. - you will arrive late at work only to realize that it's a federal holiday - you will write a perl script to spit out random text - your family will grow suspicious of your newly acquired tattoo - you will receive a promotion, only to be terminated a month later by failing a random drug test - you will spend the next [2..7] days fighting a flaw in a microsoft product - you will become the leader of the [org-political] - you will lose your job because of your involvement in the [org-political] - you will find the perfect joke to play on your [relative] on april fool's day, only to discover that it's actually april 2nd - your television will explode while the [big-game] is on - you will receive a [large+bill] [bill-type] dollar bill by mistake - you will find a counterfeit [counter-bill] dollar bill on the ground - you will discover that everybody really is out to get you - you will become successful in business -- unfortunately, that business will violate the laws of [30..49] states - you will inherit [40..80] acres of worthless swampland from your relative - along with [5..9] billion cockroaches, you will be the only survivor of world war II - you will save the world -- Bob's Auto World that is - you will move into a mobile home park and then a tornado will strike the very next day - you will set a record high golf score - a black cat will run across your path today, but thankfully you aren't superstitious (at least not until you get run over by a bus this evening - the engine in your [vehicle] will explode precisely [10..35] seconds after your warranty expires - while on a business trip to [real-city] you will get lost and wind up in [real-city] - you will shoot your eye out with a BB gun, just as your mother said you would - you will run out of gas on Interstate [4..99] in the vicinity of nowhere, [us-state] , population [1..25] - your website will be hit with the dreaded slashdot effect, causing your webserver to die a painful death - you will be abducted by aliens and taken to the secret planet [random-name] [roman-numeral] for extensive probing - you will become the editor for a tabloid newspaper - you will soon realize that your life is completely indistinguishable from "Dilbert" cartoons - you will hurt your hand while thumping a Bible - you will discover the meaning of life at the bottom of a beer bottle, but you won't remember what it is after you sober up in the morning - you will receive a blank fortune cookie at a chinese restaurant, an event regarded by most superstition experts as a "bad omen" - you will be falsely accused of jaywalking - you will suffer a nosebleed during a speech in front of [speech+num] people - you will receive [50..100] credit card offers in the mail during the next week - you will receive [speech+num] pieces of spam email during the next year - your favorite tv show will be cancelled and replaced with an infomercial - you will lose your life savings in las vegas - you will sign a contract requiring you to hand over your first born son to a large multinational corporation - your [progeny] will lose a spelling bee after misspelling [quote+name] - you will be declared a "town drunk" by your local city council - you will be responsible for an international incident - medical studies will reveal that your favorite [food] causes [bad-thing] - you will be deported to [nation] - you will realize that your life really is completely meaningless - you will appear on "who wants to be a millionaire?" and fail to answer the first $100 question - you will be sued by major league baseball for taping the world series on your vcr without prior written consent - you will be at the losing end of a [300..500] dollar lawsuit - you will receive a [100..500] dollar parking ticket from [real-city] even though you have never been there - every single time you visit the doctor's office, the doctor will be out playing golf - until the day you die, you will never understand what the saying "Life is like a bowl of cherries" actually means - your hometown baseball team will never win the world series - your brand-new [comp+amount] dollar computer will be struck by lightning [3..6] hours after you first plug it in - you will send the author of this fortune [hundred+amount] in plain, unmarked bills with the next week - you will be excommunicated from your church after you accidentally fall asleep and start snoring during services - your personal information will be in the hands of [100..500] large, evil multinational corporations by the time you finish reading this fortune - -pragma initial-rule [fortune-cookie] - -[vehicle] car - truck - suv - minivan - -[bus] cross-town bus - beer truck - police car - -[big-game] super bowl - world series - big game - -[bill-type] hospital - car repair - credit card - -[counter-bill] 3 - 5 - 10 - 13 - 20 - 50 - 100 - -[plural+last-name] [last-name] 's - -[half-digit+percent] [1..5] % - -[large+bill] [digit-nonzero] [digit] [digit] , [digit] [digit] [digit] - -[digit+digit] [digit] . [digit] - -[speech+num] [5..10] , [digit] [digit] [digit] - -[progeny] son - daughter - -[quote+name] " [random-name] " - -[food] food - beverage - snack - -[bad-thing] cancer - heart disease - insanity - -[comp+amount] [2..4] , [digit] [digit] [digit] - -[hundred+amount] $ [digit-nonzero] 00 - -[job] 'WRITE ME' diff --git a/RGens/data/sample-grammars/gemstones.gram b/RGens/data/sample-grammars/gemstones.gram deleted file mode 100644 index 8f8a579..0000000 --- a/RGens/data/sample-grammars/gemstones.gram +++ /dev/null @@ -1,143 +0,0 @@ -[gemstones] [gemstone] - [gemstone] - [gemstone] - [gemstone-group] - -[gemstone-group] pair of [gemstone] - [gemstone-sizedesc] pile of [gemstone] - [gemstone-sizedesc] hoard of [gemstone] - -pragma initial-rule [gemstones] -pragma suffix-with [gemstones] jewels - -[gemstone] [gemstone-1] - [gemstone-1] - [gemstone-1] - [gemstone-1] - [ds-gem] - -[gemstone-1] [common-gem] - [rare-gem] - [legendary-gem] - [epic-gem] - -pragma export-rule [gemstone] - -[gemstone-sizedesc] [size] - [gemstone-desc] - [size] [gemstone-desc] - [gemstone-desc] [size] - -pragma prefix-with [gemstone] [gemstone-sizedesc] - -[size] tiny - miniscule - small - medium - large - huge - titanic - -[gemstone-desc] flawless - flawed - cracked - faceted - cut - uncut - fake - -[common-gem] amber - amethyst - garnet - moonstone - jade - pearl - peridot - turquoise - [quote-raregem] of poor [extra-deficit] - -pragma export-rule [common-gem] - -[rare-gem] alexandrite - aquamarine - black pearl - topaz - [rare-gem-misc] - -[rare-gem-misc] [quote-commongem] of extraordinary [extra-quality] - [quote-commongem] and [quote-commongem] - [quote-commongem] mixed with [quote-commongem] - [quote-commongem] and [quote-commongem] fused together - [quote-legendarygem] of poor [extra-deficit] - -[extra-deficit] [extra-qualities] - [extra-qualities] - [extra-qualities] - [extra-qualities] - [extra-qualities] but excellent [extra-qualities] - -[extra-quality] [extra-qualities] - [extra-qualities] - [extra-qualities] - [extra-qualities] - [extra-qualities] but poor [extra-qualities] - -[extra-qualities] [extra-quality-part] - [extra-quality-part] - [extra-quality-part] - [extra-quality-phrase] - -[extra-quality-phrase] [extra-quality-part] and [extra-quality-part] - [extra-quality-part] and [extra-quality-part] - [extra-quality-part] , [extra-quality-part] and [extra-quality-part] - -[extra-quality-part] size - color - cut - quality - clarity - brilliance - -[quote-commongem] ( [common-gem] ) - -pragma despace-rule [quote-commongem] -pragma export-rule [rare-gem] - -[legendary-gem] emerald - fire opal - sapphire - [legendary-gem-misc] - -[legendary-gem-misc] [quote-raregem] of extraordinary [extra-quality] - [quote-raregem] and [quote-raregem] - [quote-raregem] mixed with [quote-raregem] - [quote-raregem] and [quote-raregem] fused together - [quote-epicgem] of poor [extra-deficit] - -[quote-raregem] ( [rare-gem] ) - -pragma despace-rule [quote-raregem] -pragma export-rule [legendary-gem] - -[epic-gem] [epic-gem-1] - [epic-gem-1] - [epic-gem-1] - [epic-gem-1] - [ds-gem] - -[epic-gem-1] diamond - jacinth - ruby - [epic-gem-misc] - -[epic-gem-misc] [quote-legendarygem] of extraordinary [extra-quality] - [quote-legendarygem] and [quote-legendarygem] - [quote-legendarygem] mixed with [quote-legendarygem] - [quote-legendarygem] and [quote-legendarygem] fused together - -[quote-legendarygem] ( [legendary-gem] ) - -[quote-epicgem] ( [epic-gem] ) - -pragma despace-rule [quote-legendarygem] -pragma export-rule [epic-gem] diff --git a/RGens/data/sample-grammars/genre-fiction.gram b/RGens/data/sample-grammars/genre-fiction.gram deleted file mode 100755 index 92437d7..0000000 --- a/RGens/data/sample-grammars/genre-fiction.gram +++ /dev/null @@ -1,167 +0,0 @@ -[genre-fict] in a [setting] a young [person] stumbles across a(n) [place] [genre-fict2] - -# Uncomment me when we're done testing, because this rule takes a while to -# generate -pragma initial-rule [genre-fict] -pragma export-rule [genre-fict] - -[genre-fict2] which spurs him into conflict with [antagonist] [genre-fict3] - -[genre-fict3] with the help of a [female] and her [gear] culminating in [genre-fict4] - -[genre-fict4] culminating in [climax] . This is [title] - -[setting] [setting-adj] [setting-dest] - -[setting-adj] néo-noir - alternate-history - ancient - dystopian - metaphorical - anachronistic - leather-clad - coal-powered - dragon-filled - shrill - -[setting-dest] America - japan - soviet Russia - Victorian Britain - medieval Europe - Aztec empire - Atlantis - Terraformed mars - Antarctica - one-way spaceflight - outer rim world - set from road warrior - -[person] flying message courier - student of metaphysics - milquetoast office drone - schlub with mild OCD - farm boy with dreams - techno-obsessed geek - brooding loner - wisecracking mercenary - idealistic revolutionary - journeyman inventor - collector of oddities - author self-insert - -[place] [place-pref] [place-suff] - -[place-pref] magic - arcane - dusty - crazy - alien - enchanted - otherworldly - dream-inducing - encrypted - time-traveling - exiled - talking - -[place-suff] diadem - prophecy - tome - old man - artifact - sword - portal - drug - data feed - soldier - angel - fish - -[antagonist] a megalomaniacal dictator - a government conspiracy - a profit-obsessed corporation - a sneering wizard - supernatural monsters - computer viruses made real - murderous robots - an army led by a sadist - forces that encourage conformity - a charismatic politician on the rise - humanity’s selfish nature - his own insecurity vis-a-vis girls - -[female] [female] - [female] [fem-suffix] - [fem-prefix] [female] - [fem-prefix] [female] [fem-suffix] - -[fem-prefix] sarcastic - tomboyish - shape-shifting - leather-clad - bookish - cherubic - -[female] female - girl - -[fem-suffix] techno-geek - mechanic - assassin - in shades - who’s always loved him - scholar with mousy brown hair - with pigtails and spunk - who inexplicably becomes attracted to the damaged protagonist for unstated reasons - -[gear] wacky pet - welding gear - closet full of assault rifles - reference book - cleavage - facility with magic - condescending tone - discomfort in formal wear - propensity for being captured - -[climax] a fistfight atop a tower - a daring rescue preceding a giant explosion - a heroic sacrifice that no one will ever remember - a philosophical argument punctuated by violence - a false victory with the promise of future danger - the invocation of a spell at the last possible moment - eternal love professed without irony - the land restored to health - authorial preaching through the mouths of the characters - convoluted nonsense that squanders the reader’s goodwill - wish-fulfillment solutions to real-world problems - a cliffhanger for the sake of prompting a series - -[title] [tit-1] [tit-2] - -[tit-1] chrono - neuro - aero - cosmo - reve - necro - cyber - astro - psycho - steam - meta - black - -[tit-2] punk - mech - noiac - (o)poli - naut - phage - droid - bot - blade - tron - cancer - War diff --git a/RGens/data/sample-grammars/horror.gram b/RGens/data/sample-grammars/horror.gram deleted file mode 100644 index 07d84de..0000000 --- a/RGens/data/sample-grammars/horror.gram +++ /dev/null @@ -1,33 +0,0 @@ -[horror-movie] [first] [second] [third] - -pragma initial-rule [horror-movie] - -[first] attack of the - invasion of the - day of the - beware! The - terror of the - death by - curse of the - earth vs. the - return of the - -[second] disco - massive - worrying - flying - flesh eating - windy - mutant - hairy - overly keen - -[third] vampires - swamp beasts - boy bands - muffins - werewolves - zombies - sock puppets - death bots - snuggle badgers diff --git a/RGens/data/sample-grammars/insults.gram b/RGens/data/sample-grammars/insults.gram deleted file mode 100644 index 98a7a8e..0000000 --- a/RGens/data/sample-grammars/insults.gram +++ /dev/null @@ -1,160 +0,0 @@ -[shakesphere-insult] Thou [insult-1] [insult-2] [bang-insult] - -pragma initial-rule [shakesphere-insult] - -[bang-insult] [insult-3] ! - -pragma despace-rule [bang-insult] - -[insult-1] artless - bawdy - beslubbering - bootless - churlish - cockered - clouted - craven - currish - dankish - dissembling - droning - errant - fawning - fobbing - froward - frothy - gleeking - goatish - gorbellied - impertinent - infectious - jarring - loggerheaded - lumpish - mammering - mangled - mewling - paunchy - pribbling - puking - puny - qualling - rank - reeky - roguish - ruttish - saucy - spleeny - spongy - surly - tottering - unmuzzled - vain - venomed - villainous - warped - wayward - weedy - yeasty - -[insult-2] base-court - bat-fowling - beef-witted - beetle-headed - boil-brained - clapper-clawed - clay-brained - common-kissing - crook-pated - dismal-dreaming - dizzy-eyed - doghearted - dread-bolted - earth-vexing - elf-skinned - fat-kidneyed - fen-sucked - flap-mouthed - fly-bitten - folly-fallen - fool-born - full-gorged - guts-griping - half-faced - hasty-witted - hedge-born - hell-hated - idle-headed - ill-breeding - ill-nurtured - knotty-pated - milk-livered - motley-minded - onion-eyed - plume-plucked - pottle-deep - pox-marked - reeling-ripe - rough-hewn - rude-growing - rump-fed - shard-borne - sheep-biting - spur-galled - swag-bellied - tardy-gaited - tickle-brained - toad-spotted - unchin-snouted - weather-bitten - -[insult-3] apple-john - baggage - barnacle - bladder - boar-pig - bugbear - bum-bailey - canker-blossom - clack-dish - clotpole - coxcomb - codpiece - death-token - dewberry - flap-dragon - flax-wench - flirt-gill - foot-licker - fustilarian - giglet - gudgeon - haggard - harpy - hedge-pig - horn-beast - hugger-mugger - joithead - lewdster - lout - maggot-pie - malt-worm - mammet - measle - minnow - miscreant - moldwarp - mumble-news - nut-hook - pigeon-egg - pignut - puttock - pumpion - ratsbane - scut - skainsmate - strumpet - varlet - vassal - whey-face - wagtail diff --git a/RGens/data/sample-grammars/linux.gram b/RGens/data/sample-grammars/linux.gram deleted file mode 100644 index ad18d65..0000000 --- a/RGens/data/sample-grammars/linux.gram +++ /dev/null @@ -1,988 +0,0 @@ -[linux-domain] [actual+linux-domain] - -pragma initial-rule [linux-domain] - -[actual+linux-domain] [linux-domainname] . [big-tld] - -[linux-domainname] [linux-domain1] [linux-domain2] - [linux-domain1] [linux-domain2] - [linux-domain1] [linux-domain2] - [linux-domain1] [linux-domain1] - [linux-domain1] [linux-domain1] - [linux-domain1] [linux-domain1] [linux-domain2] - [linux-domain1] [linux-domain1] - [linux-domain2] - [linux-domain1] - [linux-domain2] - [linux-domain0] [linux-domain1] - [linux-domain0] [linux-domain1] [linux-domain2] - [linux-domain0] [linux-domain2] - [linux-domain1] . [domain-name] - -[linux-domain0] cmdr - captain - super - major - taco - cool - phat - burrito - coffee - mega - meta - slash - dot - colon - grok - about - 1st - just - everything - project - os - techno - source - the - open - free - new - colonel - go - wow - hot - uber - [first-name] - -[linux-domain1] linux - geek - nerd - hack - unix - bsd - freebsd - solaris - apache - gnu - opensource - penguin - tux - daemon - linus - hacker - root - kernel - perl - python - programming - bitbucket - null - -[linux-domain2] news - week - today - tommorrow - day - newbie - ware - cheesymerchandise - headlines - stuff - portal - power - shell - hack - fest - web - site - forum - community - dotcom - dotorg - fun - help - advice - world - network - net - humor - rules - warez - rulez - kiddie - geek - nerd - hacker - moneymakingportal - here - planet - city - place - chat - grok - one - central - plaza - 2000 - search - find - finder - links - directory - apps - business - biz - archives - island - software - bandwagon - life - howto - mag - month - minute - chix - meat - women - docs - games - focus - [newspaper-pair2] - start - now - future - universe - galaxy - key - party - jobs - tech - -[linux-distro] red hat linux - debian gnu/linux - suse linux - turbolinux - stampede linux - caldera openlinux - slackware linux - linux mandrake - corel linux - -[linux-company] red hat - suse - caldera - corel - linuxcare - va linux - internet.com - cobalt networks - applix - -[linux-personality] linux torvalds - eric s. raymond - richard m. stallman - alan cox - bernharn rosenkraenzer - rik van riel - larry wall - bruce perens - miguel de icaza - -[microsoft-personality] bill gates - steve ballmer - ed muth - nathan myrrhvold - raymond chen - -[pundit-personality] jesse berst - fred moody - bob metcalfe - -[tech-columnist] [pundit-personality] - robert x. cringely - jon katz - nicholas petreley - john dvorak - -[linux-publication] linuxtoday - lwn - linuxworld - linux.com - -[linux-expo] [expo-body] [expo-suffix] - -pragma export-rule [linux-expo] - -[expo-body] [real-city] linux - [us-state] linux - linux - linuxworld - linuxexpo - linuxcon - -[expo-suffix] showcase - expo - conference - convention - show - money-making expo - phb get-together - -[tech-lawsuit-target] decss - napster - mp3.com - 2600 - -[techgeek-target] dmca - microsoft - echelon - carnivore - "know your customer" - geek profiling - software patents - -[techgeek-enemy] microsoft - riaa - mpaa - dvd cca - network solutions - -[geek-people] hackers - geeks - nerds - kids - teenagers - [teen-type] teens - anonymous cowards - lurkers - flamers - -[teen-type] angst-ridden - troubled - -[geek-enemy] bible-thumpers - congresscritters - [parent-type] parents - recording industry executives - media tycoons - bureaucrats - soccer moms - prohibitionists - lawyers - attorneys - lobbyists - pointy haired bosses - school administrators - thought police - -[parent-type] paranoid - clueless - hysterical - -[geek-badguys] script kiddies - hackers - crackers - spammers - -[geek-political-problem] censorship - software patents - carnivore - echelon - geek profiling - "know your customer" - domain snatching - -[tech-problem] script kiddies - spammers - crackers - backhoes - network outages - system crashes - -[linux-error] lp1 on fire - kernel panic - signal 11 - security hole found between chair and monitor - user needs a cluestick - this ain't windows - bus error - black hole imminent - segmentation fault - -[tech-topic] bogus patents - artificial intelligence - embedded systems - dotcom meltdown - hackers/crackers - spam - windows [windows-version] security exploits - -[geek-entertainment] star wars - star wars - the matrix - star trek: [trek-type] - star tek - the simpsons - x-files - babylon 5 - mst3k - -[trek-type] tos - tng - ds9 - voyager - -[geek-scifi-book] the [geek-scifi-people] of the [geek-scifi-alien] [geek-scifi-place] - the [geek-scifi-people] of [geek-scifi-alien] - [geek-scifi-event] of the [geek-scifi-alien] [geek-scifi-place] - [geek-scifi-event] of the [geek-scifi-place] of the [geek-scifi-people] - the [geek-scifi-thing] of the [geek-scifi-alien] [geek-scifi-place] - [geek-scifi-people] of the [geek-scifi-thing] - [geek-scifi-place] [geek-scifi-thing] - the [geek-scifi-enemy] [awaits] - [geek-scifi-thing] of the [geek-scifi-enemy] - [geek-scifi-event] of the [geek-scifi-enemy] - [geek-scifi-thing] [balance] - [geek-scifi-event] of the [geek-scifi-thing] of [geek-scifi-alien] - [geek-scifi-adj] [geek-scifi-place] - [geek-scifi-adj] [geek-scifi-place] of [geek-scifi-alien] - [geek-scifi-adj] [geek-scifi-alien] [geek-scifi-thing] - [last-name] [effect] - -pragma export-rule [geek-scifi-book] - -[awaits] awaits - comes - awakens - returns - -[balance] in the balance - on hold - in limbo - vanishes - -[effect] effect - equation - -[geek-scifi-place] planet - star - sun - universe - galaxy - solar system - world - realm - asteroid - comet - outpost - matrix - constellation - continuum - cluster - quasar - nebula - -[geek-scifi-thing] [techno+clysm] - federation - future - community - civilization - spaceship - union - alliance - foundation - conspiracy - amulet - black hole - anomaly - underground - empire - -[geek-scifi-enemy] menace - monster - machine - beast - devil - -[geek-scifi-people] explorer - pioneer - guardian - time traveler - astrophysicist - stonecutter - mystic - fortuneteller - philosopher - king - god - goddess - [dictator] - aristocrat - mathematician - scientist - wizard - -[geek-scifi-event] revenge - return - rise - fall - destruction - implosion - annihilation - victory - defeat - end - -[dictator] dictator - tyrant - despot - monarch - -[techno+clysm] [techno] clysm - -[techno] techno - cyber - lawyer - chrono - -[geek-scifi-adj] expanding - collapsing - imploding - derelict - abandoned - lost - triumphant - victorious - doomed - forbidden - unknown - null - infinite - -[geek-scifi-element] time travel - artificial intelligence - a sentient [animal] - galactic civilizations - faster-than-light travel - parallel universes - anti-gravity cars - mind-reading aliens - scientific techno-babble - teleportation - -[geek-scifi-alien] [random-name] - [geek-scifi-alien2] - -[geek-scifi-alien2] [planet] - orion - andromeda - gaia - alpha centauri - betelguese - alpha - beta - gamma - epsilon - -[geek-scifi-author] robert heinlein - neal stephenson - arthur c. clarke - isaac asimov - orson scott card - -[bogus-patent] server side includes - weblog-style sites - random poetry generators - [beige] computer cases - rectangular computer cases - dancing software assistants - command-line interfaces - floppy diskettes - hypertext documents - interpreted scripting languages - [num+click] shopping - rot13 encoding - xor encoding - the quadratic formula - cgi scripting - spell checking - pull-down menus - [dir] scroll bars - -[dir] horizontal - vertical - -[beige] beige - rectangular - translucent - -[num+click] [click-num] -click - -[click-num] double - zero - triple - -[pundit-flame] linux is communistic - linux will fail - linux is the worst operating system ever - could you get fired for choosing linux - unix is 1960s technology - the gpl is even more restrictive than a microsoft eula - the gnu project is holding back the open source movement - open source projects are uncreative and unoriginal - linux doesn't contain any innovations - microsoft is the most innovative company in the history of mankind - windows [windows-version] is much better than linux - iunix sucks - windows is the only gui with a consistent interface - why do end-users need source code anyways - linux users all behave like immature [7..16] year olds - linux = linsux - linux is only free if your time is worthless - security through obscurity is the only way to go - attack of the snot-nosed linux zealots - linux advocacy: a dangerous brainwashing religious cult - microsoft will win - -[peripheral] digital camera - [peripheral-interface] infrared video camera - [peripheral-interface] scanner - software modem - cable modem - video card - [monitor-type] capture card - [peripheral-interface] [wireless+type] wireless adapter - 3d accelerator card - [peripheral-interface] time travel card - [peripheral-interface] coffee machine - [15..99] inch [monitor] - [15..99] inch widescreen [monitor] - uninterruptible power supply - [peripheral-interface] cd-recorder - beowulf-cluster-in-a-box - [cable-type] extender - [cable-type] to [cable-type] converter - [cable-type] hub - [cable-type] splitter - -[wireless+type] 802.11 [wireless-postfix] - -[wireless-postfix] a - b - g - n - ac - ad - af - ah - ai - aj - aq - ax - ay - -[cable-type] [monitor-type] - [peripheral-interface] - -[monitor] monitor - -pragma prefix-with [monitor] [monitor-resolution] -pragma prefix-with [monitor] [monitor-type] - -[monitor-resolution] 4k - 1080p - 720p - 480p - 360p - 240p - 144p - -[monitor-type] vga - dvi-d - hdmi - display-port - mini display-port - micro display-port - -[peripheral-interface] scsi - ide - parallel - [usb] - firewire 400 - firewire 800 - serial - thunderbolt - -[usb] usb - usb type A - usb type B - usb 3.0 - usb 2.0 - micro-usb - mini-usb - usb (type C) - -pragma export-rule [peripheral] - -[tech-hardware-company] ibm - dell - compaq - maxtor - seagate - western digital - transmeta - hewlett packard - -[opensource-project] linux - freebsd - netbsd - openbsd - apache - sendmail - gnome - kde - x11 - mozilla - -[unix-tool] awk - sed - bison - gcc - vi - emacs - -[linux-event] linuxworld expo - atlanta linux showcase - linuxfest - linuxexpo - -[linux-usergroup] [linux+usergroup] - -[linux+usergroup] [letter] [letter] lug - [us-postal-state] lug - [letter] lug - -[freshmeat-url] [freshmeat+url] - -pragma export-rule [freshmeat-url] - -[freshmeat+url] http://freshmeat.net/news/ [digit] / [digit] / [freshmeat-group1] / [freshmeat-group2] .html - -[freshmeat-group1] [digit] [digit] [digit] [digit] - -[freshmeat-group2] [digit] [digit] [digit] [digit] [digit] [digit] [digit] [digit] [digit] - -[freshmeat-desc] [app-type] [app-suffix] - [app-type] [app-suffix] for [freshmeat-for] - [app-type] [app-suffix] written in [computer-language] - [buzzword-adjective] [buzzword-noun] written in [computer-language] - [buzzword-adjective] [buzzword-noun] for the [career-tech] - [buzzword-adjective] [buzzword-noun] [buzzword-job] - [freshmeat-prefix] [app-type] [app-suffix] - [computer-language] [app-suffix] - [freshmeat-prefix] [buzzword-noun] - clone of [app-name-simple] - [freshmeat-prefix] implementation of microsoft [ms-product] - -pragma export-rule [freshmeat-desc] - -[freshmeat-prefix] open source - free - libre - updated - revamped - upgraded - shareware - freeware - public domain - -[freshmeat-for] linux - [linux-distro] - unix - freebsd - beos - bsd unix - perl/tk - tcl/tk - kde - gnome - qt - gtk - x11 - -[freshmeat-app] [app-name] [app-version] - -[app-name] [app-name-simple] - [app-name-simple] - [app-name-simple] - [app-name-complex] - -pragma export-rule [app-name] - -[app-name-simple] [app-name+simple] - -[app-name+simple] [acronym] - [acronym] - [acronym] - [app-prefix] [acronym] - [app-prefix] [syllable] [letter] - [app-prefix] [syllable] 2 [syllable] - [acronym] - [letter] [acronym] - [random-name] - [last-name] - [syllable] [syllable] - [letter] [syllable] - [letter] [letter] [letter] - [letter] [letter] [letter] [letter] - [letter] [letter] [letter] [letter] - [letter] [letter] [letter] [letter] - [letter] [letter] [letter] [number-word] - [app-prefix] [acronym] - [app-prefix] [random-name] - [app-prefix] [letter] [letter] [letter] [letter] - [app-common] - -[app-name-complex] [plural+first] [app-type] [app-suffix] - [plural+first] [app-suffix] - [acronym] [app-type] - [acronym] [app-type] [app-suffix] - [app-type] [app-suffix] - [2+syllable] [app-type] [app-suffix] - [random-name] [app-suffix] - [app-prefix+letter] [app-suffix] - [app-prefix+syllable] [app-type] [app-suffix] - [app-common] [app-type] [app-suffix] - [tech-company] [peripheral] [device-type] - [buzzword-adjective] [app-suffix] - [plural+first] [buzzword-adjective] [buzzword-noun] [buzzword-job] - [acronym] [buzzword-noun] - [app-prefix+name] [buzzword-adjective] [buzzword-job] [app-suffix] - [random-name] [buzzword-job] - [buzzword-adjective] [buzzword-noun] [app-suffix] - [linux-distro] - -[device-type] 'WRITE ME' - -[app-prefix+name] [app-prefix] [random-name] - -[app-prefix+letter] [app-prefix] [letter] [letter] [letter] [letter] - -[app-prefix+syllable] [app-prefix] [syllable] [syllable] - -[2+syllable] [syllable] [syllable] - -[plural+first] [first-name] 's - -[app-prefix] gnu/ - gnu - gnu - gtk- - gtk - kde - x - k - x11 - perl - java - php_ - php - py - gpl - linux - linux - my - qt - qt_ - lib - lib - mod - mod_ - wx - cgi - web - net - html - phat - cool - wm - free - news - bsd - -[app-suffix] viewer - browser - client - server - proxy - agent - editor - database - object - programming language - shell - hack - window manager - user interface - front-end - back-end - interface - module - library - parser - generator - compiler - linker - plug-in - applet - project - office - enviroment - processor - parser - tools - toolkit - electron waster - simulator - clone - filesystem - device manager - thingamajig - -[app-type] web - internet - object-oriented - buzzword-enhanced - tcp/ip - html - http - xml - graphics - ascii - unicode - threaded - cool - cgi - scripting - online - c - perl - java - python - modern - postmodern - new and improved - -[app-common] [app+common] - -[app+common] [letter] spell - [letter] mail - [letter] edit - [last-name] fs - [random-name] lib - [letter] find - [random-name] x - [letter] grep - [letter] tools - -[app-version] [app+version] - -[app+version] 0.0. [1..20] [version-suffix] - 0. [digit-nonzero] . [0..30] - 1.0. [0..30] - 1. [digit-nonzero] . [0..30] [version-suffix] - 2. [digit] . [0..30] - 2. [digit] . [0..30] [version-suffix] - [3..9] . [digit] . [0..30] - 0.0 [digit] [version-suffix] - 0. [digit] - 0. [1..99] - 1.0 [version-suffix] - 1.00 - 1. [1..99] - 1. [1..99] [version-suffix] - [2..20] . [1..99] [version-suffix] - -[version-suffix] pl [digit] - alpha - beta - - [1..30] - [letter] - -ac [digit] - -pre [digit] - -[linux-kernel-version] [linux-kernel+version] - -[linux-kernel+version] 2.2. [30..40] - 2.3. [50..99] - 2.4.0-pre [1..30] - 2.4.0-ac [1..30] - 2.4. [digit] - 2.5. [0..99] - [2..4] . [6..9] . [0..99] - -[windows-version] 3.1 - 95 - 98 - 98 second edition - millenium edition - nt 4.0 - 2000 - ce - xp - xp service pack 2 - vista - 7 - 8 - 10 - 10 anniversary edition - 10 creators update - -[ms-product] office - word - excel - access - powerpoint - bob - visual basic - visual c++ - iis - frontpage - -[software-product] coreldraw - wordperfect - microsoft office - microsoft word - borland delphi - oracle - interbase - autocad - -[microsoft-slogan] making it all make cents - over [5..20] years of innovation - wintel inside - your windows and gates to the world - fighting the department of injustice since day one - because anti-trust laws are obsolete - real people use our software, not nerds and geeks - crashes are normal - embracing and extending for over [20..30] years - this motto is not anti-competitive - got windows? you have to! - one microsoft way. it's much more than an address - -[opensource-license] gnu general public license - gnu lesser general public license - bsd licences - artistic license - mozilla public license - x11 license - apache license - -[rfc-document] [over+ip] - ip datagrams carried by [carrier] - PORN over real-time networks - -[over+ip] [ip-stuff] -over-ip - -[ip-stuff] electricity - water - pizza - beer diff --git a/RGens/data/sample-grammars/long-data/animal.gram b/RGens/data/sample-grammars/long-data/animal.gram deleted file mode 100644 index 8ce3b9d..0000000 --- a/RGens/data/sample-grammars/long-data/animal.gram +++ /dev/null @@ -1,17 +0,0 @@ -[animal] dog - cat - horse - cow - chicken - penguin - turkey - eagle - llama - camel - deer - bear - elk - giraffe - elephant - -pragma initial-rule [animal] diff --git a/RGens/data/sample-grammars/long-data/canada-province.gram b/RGens/data/sample-grammars/long-data/canada-province.gram deleted file mode 100644 index 8210d42..0000000 --- a/RGens/data/sample-grammars/long-data/canada-province.gram +++ /dev/null @@ -1,16 +0,0 @@ -[canada-province] Alberta - British Columbia - Manitoba - New Brunswick - Newfoundland - Labrador - Northwest Territories - Nova Scotia - Nunavut - Ontario - Prince Edward island - Quebec - Saskatchewan - Yukon - -pragma initial-rule [canada-province] diff --git a/RGens/data/sample-grammars/long-data/cards.gram b/RGens/data/sample-grammars/long-data/cards.gram deleted file mode 100644 index 51a86d4..0000000 --- a/RGens/data/sample-grammars/long-data/cards.gram +++ /dev/null @@ -1,261 +0,0 @@ -[card] [playing-card] - [tarot-card] - [complete-many-things] - [harrowed-many-things] - -pragma initial-rule [card] - -[playing-card] [playing-rank] of [playing-suit] - -pragma export-rule [playing-card] - -[playing-suit] hearts - clubs - spades - diamonds - -[playing-rank] [rank-two] - [rank-three] - [rank-four] - [rank-five] - [rank-six] - [rank-seven] - [rank-eight] - [rank-nine] - [rank-ten] - jack - king - queen - ace - -[rank-two] 2 - deuce - two - -[rank-three] 3 - three - -[rank-four] 4 - four - -[rank-five] 5 - five - -[rank-six] 6 - six - -[rank-seven] 7 - seven - -[rank-eight] 8 - eight - -[rank-nine] 9 - nine - -[rank-ten] 10 - ten - -[tarot-card] [minor-arcana] - [major-arcana] - -pragma prefix-with [tarot-card] inverse - -pragma export-rule [tarot-card] - -[minor-arcana] [minor-rank] of [arcana-suit] - -[arcana-suit] [playing-suit] - [arcana-suit] - [alt-arcana-suit] - -[major-arcana] [major-arcana1] - [major-arcana2] - -pragma export-rule [major-arcana] - -[minor-rank] ace - [rank-two] - [rank-three] - [rank-four] - [rank-five] - [rank-six] - [rank-seven] - [rank-eight] - [rank-nine] - [rank-ten] - knave - page - jack - knight - king - queen - -[arcana-suit] swords - staves - cups - coins - pentacles - -[alt-arcana-suit] stones - books - bells - candles - -[major-arcana1] the magician - the high priestess - the empress - the emperor - the hierophant - the lovers - the chariot - justice - the hermit - the wheel of fortune - the strength - the hanged man - death - temperance - the devil - the tower - the star - the moon - the sun - judgment - the world - the fool - the excuse - -pragma export-rule [major-arcana1] - -[major-arcana2] the witch - the sorceror - the temple - balance - the dragon - the die - diligence - life - courage - the angel - day - dusk - night - the rainbow - void - the demon - -pragma export-rule [major-arcana2] - -[complete-many-things] fates - donjon - balance - patient zero - metamorphosis - frog - dwarf - crone - tongue - coin - rogue - euryale - ruin - talons - idiot - burdned man - bleeding man - cripple - nymph - leper - acid - blind man - hermaphrodite - skull - flames - void - god-king - wizard - titan - chicken soup - ballerina - sage - demagogue - armor - guide - heart - knight - moon - throne - vizier - gem - envy - sea - shoes - nose - giant - maiden - gift - comet - star - key - sun - jester - fool - -pragma export-rule [complete-many-things] - -[harrowed-many-things] the avalanche - the bear - the beating - the betrayal - the big sky - the brass dwarf - the carnival - the courtesan - the cricket - the crows - the cyclone - the dance - the demon's lantern - the desert - the fiend - the foreign trader - the forge - the eclipse - the empty throne - the hidden truth - the idiot - the inquisitor - the joke - the juggler - the keep - the liar - the locksmith - the lost - the marriage - the mountain man - the mute hag - the owl - the paladin - the peacock - the publican - the queen mother - the rabbit prince - the rakshasa - the sickness - the snakebite - the survivor - the tangled briar - the teamster - the theater - the trumpet - the twin joker - the tyrant - the unicorn - the uprsing - the vision - the wanderer - the waxworks - the winged serpent - -pragma export-rule [harrowed-many-things] diff --git a/RGens/data/sample-grammars/long-data/color.gram b/RGens/data/sample-grammars/long-data/color.gram deleted file mode 100644 index c71d04d..0000000 --- a/RGens/data/sample-grammars/long-data/color.gram +++ /dev/null @@ -1,16 +0,0 @@ -[color] orange - purple - brown - grey - [natural-color] - -pragma export-rule [color] - -[natural-color] red - black - blue - green - white - yellow - -pragma export-rule [natural-color] diff --git a/RGens/data/sample-grammars/long-data/first-name-female.gram b/RGens/data/sample-grammars/long-data/first-name-female.gram deleted file mode 100644 index 0bdfc8b..0000000 --- a/RGens/data/sample-grammars/long-data/first-name-female.gram +++ /dev/null @@ -1,534 +0,0 @@ -[first-name-female] Abigail - Ada - Adrienne - Agnes - Alberta - Alexandra - Alexis - Alice - Alicia - Alison - Allison - Alma - Alyssa - Amanda - amber - Amelia - Amy - Ana - Andre - Andrea - angel - Angela - angelica - Angelina - Angie - Anita - Ann - Anna - Anne - Annette - Annie - Antoinette - Antonia - April - Ariane - Ariel - Arlene - Ashley - Audrey - Barbara - Beatrice - Becky - Belinda - Bernadette - Bernice - Bertha - Bessie - Beth - Bethany - Betsy - Betty - Beulah - Beverly - Billie - Blanca - Blanche - Bobbie - Bonnie - Brandi - Brandy - Brenda - Brianna - Bridget - Brittany - Brooke - Caitlin - Camille - Candace - Candice - Carla - Carmen - Carol - Carole - Caroline - Carolyn - Carrie - Casey - Cassandra - Catherine - Cathy - Cecelia - Cecilia - Celia - Charlene - Charlotte - Chelsea - Cheryl - Chloe - Christian - Christie - Christina - Christine - Christy - Cindy - Claire - Clara - Claudia - Colleen - Connie - Constance - Cora - Courtney - Cristina - Crystal - Cynthia - Daisy - Dana - Danielle - Darla - Darlene - Dawn - Deanna - Debbie - Deborah - Debra - Delia - Della - Delores - Denise - Desiree - Diana - Diane - Dianna - Dianne - Dion - Dixie - Dolores - Dominique - Donna - Dora - Doreen - Doris - Dorothy - Ebony - Edith - Edna - Eileen - Elaine - Eleanor - Elena - Elisa - Elizabeth - Ella - Ellen - Eloise - Elsa - Elsie - Elvira - Emily - Emma - Erica - Erika - Erin - Erma - Ernestine - Essie - Estelle - Esther - Ethel - Eula - Eunice - Eva - Evelyn - Faith - Fannie - Faye - Felicia - Felicity - Flora - Florence - Frances - Francis - Freda - Gabriel - Gabrielle - Gail - Gayle - Geneva - Genevieve - Georgia - Geraldine - Gertrude - Gina - Ginger - Gladys - Glenda - Gloria - Grace - Gretchen - Guadalupe - Gwen - Gwendolyn - Haley - Hannah - Harriet - Hattie - Hazel - Heather - Heidi - Helen - Henrietta - Hilda - Hillary - Holly - Hope - Ida - Inez - Irene - Iris - Irma - Isabel - Isabella - Jackie - Jacqueline - Jacquelyn - Jade - Jaime - Jamie - Jan - Jana - Jane - Janet - Janice - Janie - Janis - Jasmine - Jean - Jeanette - Jeanne - Jeannette - Jeannie - Jenna - Jennie - Jennifer - Jenny - Jessica - Jessie - Jill - Jo - Joan - Joann - Joanna - Joanne - Jodi - Jody - Johanna - Johnnie - Josefina - Josephine - Joy - Joyce - Juana - Juanita - Judith - Judy - Julia - Julie - June - Kaitlyn - Kara - Karen - Kari - Karla - Kate - Katelyn - Katherine - Kathleen - Kathryn - Kathy - Katie - Katrina - Kay - Kayla - Kelley - Kelli - Kellie - Kelly - Kelsey - Kendra - Kerry - Kim - Kimberly - Krista - Kristen - Kristi - Kristie - Kristin - Kristina - Kristine - Kristy - Krystal - Lana - Latoya - Laura - Lauren - Laurie - Laverne - Leah - Lee - Leigh - Lela - Lena - Leona - Leslie - Leticia - Lila - Lillian - Lillie - Linda - Lindsay - Lindsey - Lisa - Lois - Lola - Lora - Lorena - Lorene - Loretta - Lori - Lorraine - Louise - Lucia - Lucille - Lucy - Lula - Luz - Lydia - Lynda - Lynette - Lynn - Lynne - Mabel - Mable - Mackenzie - Madeline - Madison - Mae - Magdalena - Maggie - Mamie - Mandy - Marcella - Marcia - Margaret - Margarita - Marge - Margie - Marguerite - Maria - Mariah - Marian - Marianne - Marie - Marilyn - Marion - Marjorie - Marlene - Marsha - Marta - Martha - Mary - Maryann - Mattie - Maureen - Maxine - May - Megan - Meghan - Melanie - Melba - Melinda - Melissa - Melody - Mercedes - Meredith - Michele - Michelle - Mildred - Mindy - Minnie - Miranda - Miriam - Misty - Molly - Mona - Monica - Monique - Morgan - Muriel - Myra - Myrtle - Nadine - Nancy - Naomi - Natalie - Natasha - Nellie - Nettie - Nichole - Nicole - Nina - Nora - Norma - Olga - Olive - Olivia - Ollie - Opal - Ora - Paige - Pam - Pamela - Pat - Patricia - Patsy - Patti - Patty - Paula - Paulette - Pauline - Pearl - Peggy - Penny - Phyllis - Priscilla - Rachael - Rachel - Ramona - Raquel - Raven - Rebecca - Regina - Renee - Rhonda - Rita - Roberta - Robin - Robyn - Rochelle - Rosa - Rosalie - Rose - Rosemarie - Rosemary - Rosie - Roxanne - Ruby - Ruth - Sabrina - Sadie - Sally - Samantha - Sandra - Sandy - Sara - Sarah - Shannon - Shari - Sharon - Shawna - Sheila - Shelia - Shelley - Shelly - Sheri - Sherri - Sherry - Sheryl - Shirley - Silvia - Sonia - Sonja - Sonya - Sophia - Sophie - Stacey - Stacy - Stella - Stephanie - Sue - Susan - Susie - Suzanne - Sydney - Sylvia - Tabitha - Tamara - Tami - Tammy - Tanya - Tara - Tasha - Taylor - Teresa - Teri - Terri - Terry - Thelma - Theresa - Tiffany - Tina - Toni - Tonya - Tracey - Traci - Tracy - Tricia - Valerie - Vanessa - Velma - Vera - Verna - Veronica - Vicki - Vickie - Vicky - Victoria - Viola - Violet - Virginia - Vivian - Wanda - Wendy - Whitney - Willie - Wilma - Winifred - Yasmine - Yolanda - Yvette - Yvonne - Zoe - -pragma initial-rule [first-name-female] diff --git a/RGens/data/sample-grammars/long-data/first-name-male.gram b/RGens/data/sample-grammars/long-data/first-name-male.gram deleted file mode 100644 index 5642f9a..0000000 --- a/RGens/data/sample-grammars/long-data/first-name-male.gram +++ /dev/null @@ -1,626 +0,0 @@ -[first-name-male] Aaron - Abel - Abraham - Adam - Adolph - Adrian - Al - Alan - Albert - Alberto - Alejandro - Alex - Alexander - Alfonso - Alfred - Alfredo - Allan - Allen - Alonzo - Alton - Alvin - Amos - Andre - Andreas - Andres - Andrew - Andy - Angel - Angelo - Angus - Anthony - Antoine - Anton - Antonio - Archie - Armando - Arnold - Art - Arthur - Arturo - Aubrey - Aubrie - Austin - Barry - Bart - Bayard - Ben - Benjamin - Bennie - Benny - Benoit - Bernard - Bernhard - Bert - Bill - Billy - Blake - Bob - Bobby - Boris - Boyd - Brad - Bradford - Bradley - Brandon - Brendan - Brent - Brett - Brian - Bruce - Bruno - Bryan - Bryant - Bryce - Byron - Caleb - Calvin - Cameron - Carl - Carlos - Carlton - Carroll - Cary - Casey - Cecil - Cecilie - Cedric - Cesar - Chad - Charles - Charlie - Chester - Chris - Christian - Christopher - Clarence - Clark - Claude - Clay - Clayton - Cliff - Clifford - Clifton - Clint - Clinton - Clyde - Cody - Cole - Colin - Connor - Conrad - Corey - Cornelius - Cory - Courtney - Craig - Crispin - Curtis - Dale - Dallas - Damon - Dan - Dana - Daniel - Danny - Darin - Darnell - Darrel - Darrell - Darren - Darrin - Darryl - Daryl - Dave - David - Dean - Delbert - Dennis - Derek - Derrick - Deven - Devin - Dewey - Dexter - Dick - Diego - Dieter - Dimitri - Dimitrius - Domingo - Dominic - Dominick - Dominique - Don - Donald - Donnie - Doug - Douglas - Doyle - Drazen - Drew - Duane - Dustin - Dwayne - Dwight - Dylan - Earl - Earnest - Ed - Eddie - Edgar - Edmond - Edmund - Eduardo - Edward - Edwin - Elbert - Elias - Elijah - Ellis - Elmer - Emanuel - Emilio - Emmett - Enrico - Enrique - Eric - Erick - Erik - Ernest - Ernesto - Ervin - Ethan - Eugene - Evan - Everett - Felipe - Felix - Fernando - Floyd - Forrest - Fox - Francis - Francisco - Frank - Frankie - Franklin - Franky - Fred - Freddie - Freddy - Frederic - Frederick - Fredrick - Fredrik - Gabe - Gabriel - Garrett - Garry - Garth - Gary - Gavin - Gene - Geoff - Geoffrey - George - Gerald - Gerard - Gerardo - Gilbert - Gilberto - Glen - Glenn - Gordon - Grady - Graham - Grant - Greg - Gregg - Gregor - Gregory - Guadalupe - Guillermo - Gunnar - Gustavo - Guy - Hans - Harold - Harry - Harvey - Hector - Henrik - Henry - Herald - Herb - Herbert - Herman - Homer - Horace - Howard - Hubert - Hugh - Hugo - Hunter - Iain - Ian - Ignacio - Igor - Ira - Irvin - Irving - Isaac - Ismael - Israel - Ivan - Jack - Jackie - Jacob - Jacques - Jaime - Jake - James - Jamie - Jan - Jared - Jarret - Jason - Javier - Jay - Jean - Jeff - Jeffery - Jeffrey - Jerald - Jeremiah - Jeremy - Jermaine - Jeroen - Jerome - Jerry - Jesse - Jessie - Jesus - Jim - Jimmie - Jimmy - Jody - Joe - Joel - Joey - Johan - John - Johnathan - Johnnie - Johnny - Jon - Jonathan - Jonathon - Jordan - Jorge - Jose - Joseph - Josh - Joshua - Juan - Julian - Julio - Julius - Justin - Karl - Karlo - Kasper - Keith - Kelly - Kelvin - Ken - Kenneth - Kenny - Kent - Kerry - Kevin - Kim - Kirk - Klaus - Kris - Kristian - Kristopher - Kurt - Kyle - Lamar - Lance - Larry - Lars - Lauren - Laurence - Laurie - Lawrence - Lee - Leland - Lenny - Leo - Leon - Leonard - Leonardo - Leroy - Leslie - Lester - Levi - Lewis - Lex - Liam - Lindsay - Linus - Lionel - Lloyd - Logan - Lonnie - Loren - Lorenzo - Louis - Lowell - Lucas - Luigi - Luis - Luke - Luther - Lyle - Lynn - Mack - Magnus - Malcolm - Manuel - Marc - Marcelo - Marco - Marcos - Marcus - Marek - Mario - Marion - Mark - Marlon - Marshall - Martin - Marty - Marvin - Mathew - Matt - Matthew - Matthias - Maurice - Max - May - Mel - Melvin - Merle - Michael - Micheal - Miguel - Mike - Miles - Milton - Mitch - Mitchell - Morris - Morten - Moses - Muhammed - Myron - Nathan - Nathaniel - Neal - Ned - Neil - Nelson - Neville - Nic - Nicholas - Nick - Nicola - Nicolas - Niels - Nigel - Nils - Noah - Noel - Norbert - Norm - Norman - Oliver - Omar - Orion - Orlando - Orville - Oscar - Otis - Owen - Pablo - Pat - Patrick - Paul - Paulo - Pedro - Percy - Perry - Pete - Peter - Phil - Philip - Philippe - Phillip - Pierre - Preston - Rafael - Ralph - Ramiro - Ramon - Randal - Randall - Randolph - Randy - Rasmus - Raul - Ray - Raymond - Reginald - Reinhard - Rene - Rex - Rhys - Ricardo - Richard - Rick - Rickey - Ricky - Rob - Robbie - Robert - Roberto - Robin - Rod - Roderick - Rodney - Rodolfo - Rodrigo - Roel - Roelof - Rogelio - Roger - Roland - Rolando - Rolf - Roman - Ron - Ronald - Ronnie - Roosevelt - Rory - Ross - Roy - Ruben - Rudolph - Rudy - Rufus - Russ - Russell - Ryan - Salvador - Salvatore - Sam - Sammy - Samuel - Sander - Santiago - Santos - Saul - Scott - Sean - Sergei - Sergio - Seth - Shane - Shannon - Shaun - Shawn - Sheldon - Sherman - Sid - Sidney - Simon - Skip - Slobodan - Sonny - Spencer - Stan - Stanley - Stefan - Stein - Stephan - Stephano - Stephen - Steve - Steven - Stewart - Stuart - Sulaiman - Sunny - Susie - Sven - Sylvester - Taylor - Ted - Terence - Terrance - Terrell - Terrence - Terry - Thad - Theodore - Thomas - Tim - Timmy - Timothy - Toby - Todd - Tom - Tomas - Tommie - Tommy - Tony - Tracy - Travis - Trevor - Trey - Tristan - Troy - Tyler - Tyrone - Vernon - Victor - Vince - Vincent - Virgil - Wade - Wallace - Walter - Warren - Wayne - Wendell - Wesley - Wilbert - Wilbur - Wilfred - Will - Willard - William - Willie - Willis - Wilson - Winston - Woodrow - Xavier - Yuri - Zachary - -pragma initial-rule [first-name-male] diff --git a/RGens/data/sample-grammars/long-data/geographic-thing.gram b/RGens/data/sample-grammars/long-data/geographic-thing.gram deleted file mode 100644 index 178bd7f..0000000 --- a/RGens/data/sample-grammars/long-data/geographic-thing.gram +++ /dev/null @@ -1,26 +0,0 @@ -[geographic-thing] mountain - hill - lake - plains - river - valley - hollow - beach - bay - harbor - grove - bridge - station - glade - forest - gulch - swamp - bend - springs - creek - falls - ridge - pass - meadow - -pragma initial-rule [geographic-thing] diff --git a/RGens/data/sample-grammars/long-data/greek-letters.gram b/RGens/data/sample-grammars/long-data/greek-letters.gram deleted file mode 100644 index 5976bd1..0000000 --- a/RGens/data/sample-grammars/long-data/greek-letters.gram +++ /dev/null @@ -1,26 +0,0 @@ -[greek-letter] alpha - beta - gamma - delta - epsilon - zeta - eta - theta - iota - kappa - lambda - mu - nu - xi - omicron - pi - rho - sigma - tau - upsilon - phi - chi - psi - omega - -pragma initial-rule [greek-letter] diff --git a/RGens/data/sample-grammars/long-data/japanese-writing.gram b/RGens/data/sample-grammars/long-data/japanese-writing.gram deleted file mode 100644 index f18c6bc..0000000 --- a/RGens/data/sample-grammars/long-data/japanese-writing.gram +++ /dev/null @@ -1,107 +0,0 @@ -[japanese-syll] a - i - u - e - o - ka - ki - ku - ke - ko - sa - shi - su - se - so - ta - chi - tsu - te - to - na - ni - nu - ne - no - ha - hi - fu - he - ho - ma - mi - mu - me - mo - ya - yu - yo - ra - ri - ru - re - ro - wa - wi - we - wo - ga - gi - gu - ge - go - za - ji - zu - ze - zo - da - zu - de - do - ba - bi - bu - be - bo - pa - pi - pu - pe - po - -[japanese-yoon] kya - kyu - kyo - sha - shu - sho - cha - chu - cho - nya - nyu - nyo - hya - hyu - hyo - mya - myu - myo - rya - ryu - ryo - gya - gyu - gyo - ja - ju - jo - bya - byu - byo - pya - pyu - pyo - -pragma initial-rule [japanese-syll] diff --git a/RGens/data/sample-grammars/long-data/last-name.gram b/RGens/data/sample-grammars/long-data/last-name.gram deleted file mode 100644 index b99a40c..0000000 --- a/RGens/data/sample-grammars/long-data/last-name.gram +++ /dev/null @@ -1,3379 +0,0 @@ -[last-name] Abbey - Abbott - Abel - Abrams - Acar - Acosta - Acs - Adair - Adams - Adamson - Adkins - Adler - Adrian - Agius - Agnew - Aguilar - Akers - Albers - Alberts - Albrecht - Albright - Aldredge - Aldrich - Alexander - Allan - Allen - Alley - Allison - Althouse - Alvarado - Alvarez - Anderson - Andreasson - Andrews - Angelos - Anglin - Anstead - Anstrom - Anthony - Arak - Aral - Arbuckle - Archer - Armstrong - Arnett - Arnold - Arruda - Arthur - Ashbridge - Ashcroft - Asher - Ashley - Ashton - Assler - Atchley - Atkins - Atkinson - Atwood - Auger - Austin - Avila - Ayala - Ayers - Babcock - Bach - Backer - Bacon - Bailey - Baird - Baker - Baldwin - Ball - Ballard - Bane - Bang - Banke - Banks - Barber - Barbosa - Barger - Barker - Barnes - Barnett - Barr - Barrenechea - Barrett - Barrick - Barringer - Barron - Barrow - Barry - Barta - Barter - Barth - Bartle - Bartlett - Barton - Baruch - Bashford - Bass - Bassett - Bates - Bauer - Baughn - Bauman - Baumunk - Baur - Baxter - Bayley - Bazin - Bea - Beach - Beadles - Beam - Beaman - Bean - Beard - Beasley - Beasly - Beason - Beavers - Beck - Becker - Bee - Beeckmans - Beesley - Beggs - Behrens - Belcher - Bell - Beloof - Benanti - Benedict - Benge - Benham - Benner - Bennett - Bennitt - Benson - Bentley - Benton - Benware - Beresford - Bereznai - Berezniker - Berg - Bergen - Bergren - Berkbilger - Berkowitz - Bernard - Bernardez - Bernet - Berry - Berryman - Bertaina - Bertram - Berube - Besemer - Bessire - Best - Betta - Betts - Beumer - Beunder - Bever - Beverlin - Bewly - Beyer - Bialeschki - Bibles - Biehle - Biele - Bigelow - Bighi - Bigliardi - Bijlsma - Bikki - Billings - Binegar - Bingham - Bini - Binnenmarsch - Birch - Birdmore - Birtley - Bishop - Bisson - Black - Blackburn - Blackwell - Blair - Blake - Blanchard - Bland - Blankemeier - Blankenship - Blase - Blattner - Bledsoe - Blevins - Blewett - Blitch - Blocher - Block - Bloom - Blouard - Blyth - Bockius - Bodrov - Bogard - Bogenrieder - Boggs - Bolin - Bollinger - Bolmer - Bolyard - Boman - Bond - Bonds - Bone - Booker - Boon - Boone - Booth - Bopp - Border - Boren - Borstadt - Boshoff - Bosik - Bosler - Bossert - Bostic - Bostick - Boswell - Bosworth - Bottom - Botts - Boucher - Boulay - Bouldin - Boulet - Boulware - Bourgeois - Bowen - Bowers - Bowman - Boyd - Boyer - Boykin - Boylan - Boyle - Boyt - Bozzi - Braams - Bradbury - Bradford - Bradley - Bradshaw - Brady - Brainerd - Brajkine - Braley - Brammer - Branch - Brand - Brandau - Brandt - Brannenburg - Brannock - Brannon - Branson - Brants - Braswell - Braughton - Braun - Braungart - Bray - Brazie - Breaum - Breeuwer - Brehler - Breningstall - Brennan - Bressi - Bretanus - Brewer - Brewster - Bridges - Briggs - Brinkman - Brinson - Britt - Brittain - Brock - Brockman - Brockschmidt - Bronson - Brooks - Broome - Brosius - Brouillette - Brown - Browning - Brubacker - Brubaker - Bruce - Brueckner - Brueggemann - Bruehl - Bruggeman - Brumley - Brundage - Brundick - Brunn - Bruntz - Brust - Bryan - Bryant - Bryce - Bryers - Bryse - Buch - Buchanan - Buckley - Buckner - Bucsis - Budbill - Budd - Buechting - Buehler - Buehner - Buetner - Buettner - Buffington - Buford - Buhler - Buhs - Bulkeley - Bullis - Bullock - Bumstead - Bunch - Bunn - Bunner - Bunse - Burdon - Burger - Burgers - Burgess - Burke - Burlew - Burn - Burnell - Burnett - Burney - Burnham - Burns - Burress - Burris - Burroughs - Burrow - Burt - Burton - Busch - Buschmann - Busekrug - Bush - Bushyhead - Busker - Buso - Bustillogadea - Butcher - Butler - Bybee - Byfield - Byington - Byram - Byrd - Byrne - Caceres - Cadieux - Cadrin - Cain - Cakall - Calabrese - Caldwell - Cale - Calhoun - Callaham - Callahan - Calvert - Calvin - Camacho - Cameron - Camp - Campbell - Campos - Canada - Candido - Candy - Canfield - Cann - Cannan - Cannings - Cannon - Cantrell - Capet - Caplinger - Capps - Carey - Carleton - Carls - Carlson - Carlsson - Carlton - Carmichael - Carnahan - Carnel - Carney - Carpenter - Carr - Carrillo - Carrington - Carroll - Carrère - Carse - Carson - Carter - Carver - Carwile - Casey - Caskinette - Casper - Cassady - Cassell - Castillo - Castillon - Castles - Castro - Catanese - Catton - Caulley - Cavanaugh - Cernelli - Cernos - Cervera - Chamberlin - Chambers - Champion - Chan - Chancellor - Chandler - Chaney - Chang - Channel - Chapey - Chapin - Chaplauke - Chapman - Chappel - Charles - Charlton - Chas - Chase - Chastain - Chasteen - Chatham - Chauvin - Chavez - Checksfield - Chen - Cheney - Chenoweth - Cherrie - Cherry - Chesshyre - Childers - Childs - Chinglee - Chipman - Chisholm - Chislett - Chism - Chitwood - Chizhov - Chmelyk - Christensen - Christian - Christie - Christou - Chuchalin - Chupek - Church - Ciaffa - Ciani - Cipolla - Clapp - Clark - Clarke - Clarkson - Clay - Clayton - Cleijne - Clemens - Clement - Clements - Clentine - Clermont - Cleveland - Clift - Cline - Cloutier - Cnossen - Coale - Coates - Cobb - Cochon - Cochran - Cocke - Cockrell - Coddington - Cody - Coe - Cofer - Coffman - Cohen - Coker - Cole - Colegrove - Coleman - Collier - Collins - Colon - Colvin - Combs - Compton - Comstock - Conay - Conda - Conely - Conger - Conklin - Conlee - Conley - Connally - Conner - Connor - Conrad - Conrades - Constant - Conti - Contreras - Converse - Conway - Coody - Cook - Cooke - Cooley - Coon - Coonley - Coons - Coontz - Cooper - Copeland - Corbet - Corbin - Cordery - Cordes - Cordon - Cordry - Cormier - Cornish - Cornwell - Correll - Corson - Cortez - Corwin - Cosgrave - Costello - Couch - Couillard - Coulombe - Coulter - Counsell - Courteau - Couture - Covington - Cowan - Cowell - Cowgill - Cowper - Cowser - Cox - Coy - Crabtree - Crafton - Craig - Cramer - Crane - Cranston - Crawford - Creecy - Crenshaw - Crichton - Cripps - Critcher - Croan - Croft - Croitor - Cronin - Crosher - Cross - Crossley - Crouch - Crow - Crowder - Crowell - Croy - Crump - Cruse - Crutchfield - Cruz - Cuba - Cue - Culberson - Culp - Cummings - Cummins - Cunningham - Curby - Curdts - Curran - Curren - Current - Currie - Curry - Curtis - Cutting - Cvahte - Cyr - Daab - Daber - Dafler - Dagan - Daggett - Dalbey - Dale - Dalton - Daly - Damani - Damron - Daniel - Daniels - Danneman - Danner - Dar - Darlington - Darr - Daughtery - Davenport - Davey - David - Davidson - Davies - Davis - Dawson - Day - Dean - Dearing - Dearman - Debenthal - Decker - Dedrick - Degg - Degonia - Deibert - Delaney - Delen - Deleon - Delgado - Dell - Dellenbach - Dement - Demont - Denbo - Denell - Dennis - Denson - Denton - Deringer - Derksen - Derrick - Deschenes - Desportes - Desquiens - Desroches - Detwiler - Deuschle - Deutschmann - Diamond - Diaz - Dick - Dickerson - Dickinson - Dickson - Diefendorf - Diehl - Diehn - Dierig - Dierker - Dierkes - Dierks - Dietrich - Dillingham - Dimmerling - Dippel - Dirksen - Dittmar - Dixon - Dmitriy - Dobing - Dobson - Dockery - Dodd - Dodson - Doering - Doherty - Doidge - Dollar - Domansky - Domark - Domingo - Domingos - Dominguez - Donnelly - Donoghue - Doren - Dorschel - Dorsey - Dossett - Dostal - Doud - Dougherty - Doughty - Douglas - Doutille - Doutrich - Dowdy - Down - Downey - Downing - Doyle - Drake - Drane - Drath - Dray - Dreher - Dressel - Drexel - Driscoll - Droberg - Drosbach - Drouin - Drum - Drummonds - Dryer - Drysdale - Duplessis - Duane - Duarte - Dubbs - Dube - Dubois - Dubowski - Dubuque - Duckworth - Dudley - Due - Dueno - Dueuer - Duke - Dulany - Dumond - Duncan - Dunlap - Dunn - Dunnam - Dunning - Dupont - Duquet - Duran - Durham - Durkin - Dustin - Duval - Dwyer - Dyer - Dyett - Dykes - Dyson - Eaby - Ealem - East - Eaton - Ebert - Ecker - Eckert - Eckles - Eckman - Eddy - Eden - Edgar - Edge - Edgerton - Edinger - Edmunds - Edsall - Edwards - Eerdmans - Egan - Egberinl - Eglajs - Ehlers - Ehnert - Eiple - Eiten - Eke - Eklund - Elders - Eldridge - Elgood - Ellard - Elliot - Elliott - Ellis - Ellison - Ellmaker - Ellzey - Elm - Elmore - Elsner - Elson - Emberton - Emerson - Emory - Emrich - Endicott - Engel - England - Englert - English - Ennor - Enterich - Entwisle - Epshtein - Erasmus - Erickson - Eriksen - Eriksson - Erker - Erkstam - Ernsberger - Eshelman - Eshleman - Espey - Espinosa - Espinoza - Estes - Estrada - Etchberger - Etienne - Etting - Eubanks - Eudy - Eure - Evans - Evatt - Everett - Ewing - Factor - Faes - Fair - Fairbanks - Fairley - Fairman - Fantus - Farmen - Farmer - Farrales - Farrell - Farris - Farrow - Farrugia - Farwell - Fassnacht - Faulkner - Faust - Fears - Feldman - Fell - Fender - Fenn - Fennessy - Fenstermacher - Fenton - Fenwick - Ferguson - Fernandez - Ferreccio - Fetterly - Fewell - Feyl - Fiat - Fidler - Field - Fields - Figueroa - Filippoff - Fillman - Finken - Finley - Firth - Fischer - Fisher - Fister - Fitzgerald - Fitzmaurice - Fitzwater - Flack - Flamm - Flanders - Fleming - Fletcher - Flickinger - Flores - Flowers - Floyd - Flugge - Fluharty - Fly - Flying - Flynn - Focke - Foh - Foley - Follett - Fontaine - Foote - Forbes - Ford - Fordyce - Foreman - Forget - Fornwalt - Forticq - Fortin - Foster - Fothergill - Fouda - Fournier - Foushee - Foutain - Fowler - Fox - Fradet - Frady - France - Franchi - Francis - Frank - Franklin - Franky - Frantz - Frazier - Frederic - Frederitzi - Freedman - Freeman - Fremsdorf - French - Frese - Frew - Frey - Freytes - Frias - Frick - Friddle - Friedlander - Friesen - Fritz - Frost - Fry - Frye - Fugitt - Fuhrman - Full - Fuller - Fullhart - Funda - Fung - Funk - Furnace - Gacusana - Gadd - Gagnon - Gainer - Gaines - Galasso - Galbraith - Gallagher - Gallaher - Gallegos - Galloway - Galluser - Gamache - Gambon - Gammon - Gan - Gangloff - Gann - Gant - Garber - Garcia - Gardiner - Gardner - Garg - Garman - Garmin - Garner - Garrett - Garrison - Gartner - Garza - Gates - Gatheridge - Gatlin - Gatling - Gattain - Gattling - Gaudreau - Gaudry - Gausepont - Gautier - Gearhart - Gebel - Gechter - Gedeon - Geders - Gee - Geelan - Geertsma - Geffe - Geigel - Geiman - Gemert - Gemp - Gentry - George - Gerahty - Gerard - Gerke - Gerlt - Giasson - Gibble - Gibbs - Gibler - Gibson - Giddings - Giesinger - Giffen - Gifford - Giguere - Gilbert - Gilbertson - Giles - Gill - Gilleland - Gillespie - Gillette - Gillock - Gilmore - Gilmour - Ginger - Gingras - Giorgio - Girard - Girgenson - Glascock - Glaser - Glass - Glasscock - Gleason - Gleba - Gleeson - Glenn - Glover - Gockley - Godown - Goeller - Goff - Goforth - Goh - Gold - Goldberg - Golden - Goldman - Goldsmith - Gomez - Gonschorek - Gonzales - Gonzalez - Goodline - Goodman - Goodson - Goodwin - Gorden - Gordon - Gorecki - Gorham - Gose - Goshen - Goss - Gossage - Gosselin - Goutarias - Gower - Goza - Graham - Gralicke - Grant - Grappone - Grass - Graves - Gray - Graziani - Greathouse - Green - Greene - Greenhow - Greening - Greenlee - Greeno - Greer - Gregg - Gregory - Grenier - Gretton - Grffiths - Griffin - Griffith - Griffiths - Grimes - Grimley - Grimm - Grimmett - Grindel - Griswold - Groetling - Groh - Gromit - Gross - Grossi - Grosvenor - Ground - Grover - Groves - Grube - Guerra - Guerrero - Guest - Guhse - Guinn - Guisfredi - Gulager - Gullie - Gunia - Gunter - Gunther - Gupta - Gurdian - Gurlin - Gushee - Gustafsson - Gustins - Guthrie - Guthy - Gutierrez - Guyon - Guzman - Gyula - Gürbüz - Haakonvoldum - Haas - Haase - Hacher - Haché - Hackman - Haddix - Haeffner - Haefner - Hafer - Haffner - Hafner - Hagan - Hagerty - Hagström - Haguenauer - Hahn - Hain - Haines - Hair - Hairston - Hale - Haley - Hall - Hallam - Haller - Hallet - Halloway - Hallum - Halm - Halmshaw - Halpert - Halsell - Halverson - Hamby - Hamel - Hamilton - Hamm - Hammett - Hammond - Hampel - Hample - Hampton - Hancock - Haneklau - Hanel - Hankins - Hann - Hannan - Hansch - Hansen - Hanson - Harbert - Hardaway - Harden - Harder - Hardin - Harding - Hardt - Hardy - Harel - Harger - Harlan - Harle - Harmon - Harned - Harnwell - Harper - Harrell - Harrington - Harris - Harrison - Harrity - Harrod - Harry - Hart - Harting - Hartkopp - Hartman - Hartweck - Hartzler - Harvatin - Harvey - Hasenau - Hasse - Hastings - Hatch - Hatcher - Hatchett - Hatfield - Hathaway - Hauck - Haughton - Hauser - Haverstick - Hawes - Hawkins - Hawley - Hayes - Haynes - Haynie - Hays - Hazel - Hazeltine - Healey - Heard - Heath - Heathcock - Heather - Hebert - Hecke - Hedden - Heege - Hegel - Heide - Heikurinen - Heil - Hein - Heinen - Hejna - Held - Helen - Helphrey - Hembruock - Henderson - Hendrick - Hendricks - Hendrix - Hennion - Hennler - Henrico - Henry - Hensgens - Hensler - Hensley - Henson - Heppe - Herbein - Herbert - Herman - Hermann - Hernandez - Herr - Herrell - Herren - Herrera - Herriage - Herrick - Herring - Herweck - Hess - Hesselt - Hester - Hetz - Hetzel - Heuckelbach - Hewitt - Heyer - Heyward - Hezel - Hickey - Hickman - Hicks - Higbee - Higdon - Higginbotham - Higgins - Highley - Hight - Hill - Hillenbrand - Hils - Hilton - Hinch - Hinckly - Hines - Hinkle - Hinsey - Hinsley - Hinton - Hippenmeyer - Hissong - Hixon - Hixson - Hoag - Hobbs - Hoch - Hodge - Hodges - Hoebing - Hoeflinger - Hoehns - Hoell - Hoemann - Hof - Hofer - Hoffman - Hoflack - Hogan - Hohensee - Hohmann - Hoke - Holburt - Holcomb - Holder - Holgate - Holifield - Hollabaugh - Holland - Holleman - Holley - Hollingdale - Holloway - Hollowell - Holmes - Holstein - Holstine - Holt - Holtheuer - Holzum - Homan - Homanberg - Hong - Hood - Hook - Hooper - Hoopes - Hoosang - Hoover - Hopkins - Hopper - Horachek - Horan - Hord - Horesteille - Horn - Horney - Horning - Hornung - Horton - Hosenfeld - Hoskins - Hostetter - Hostler - Hotsinpiller - Houde - Houghton - Houlne - Hounsell - House - Houser - Houston - Hovin - Hovlandsdal - Howard - Howe - Howell - Howes - Howland - Howlett - Hoyt - Hsieh - Huard - Hubbard - Hubert - Huckaby - Huckins - Huddleston - Hudgens - Hudson - Huey - Huff - Huffman - Hughes - Hulet - Hull - Humble - Humphrey - Hundley - Hunecke - Hunt - Hunter - Huntley - Hurrell - Hurshman - Hurst - Hursán - Hurt - Huss - Hustead - Hutchings - Hutchins - Hutchinson - Hyatt - Hyland - Hylton - Håkansson - Ibach - Icaza - Iceberg - Idsinga - Iiskola - Iler - Iliev - Imfield - Imig - Imperiale - Ingalls - Ingle - Ingram - Ireland - Irgens - Irons - Irous - Irwan - Isburg - Ison - Ivanytsch - Ivey - Ivins - Ivy - Ivzenkovic - Izenstein - Izycki - Jackson - Jacobs - Jacobsen - Jacques - Jager - James - Janes - Jansen - Janssen - Janssens - Jaynes - Jefferson - Jeffries - Jehoel - Jelicks - Jenings - Jenkins - Jenkinson - Jennings - Jensen - Jerome - Jesse - Jessett - Jewett - Jezusco - Jiechao - Jiglund - Jimenez - Jockish - Joenwai - John - Johns - Johnson - Johnston - Jolicoeur - Jolly - Jones - Jonke - Jordan - Joseph - Joyce - Juarez - Jubb - Jump - Jung - Junnila - Järvi - Kabler - Kahle - Kaletta - Kalniòo - Kane - Kantola - Kantor - Kapke - Kappelman - Kar - Karchev - Karesh - Karleskint - Karlsson - Kartaslammi - Kaspar - Kattleman - Katz - Kaub - Kauffman - Kay - Kazin - Keating - Keaton - Keck - Keddem - Keefe - Keeler - Keeley - Keen - Keene - Keith - Kell - Keller - Kelley - Kelly - Kemp - Kendall - Kennedy - Kennel - Kennerly - Kent - Kepel - Kerdijk - Kerr - Kesl - Ketter - Kettle - Kettner - Key - Keys - Keyser - Kibbey - Kickert - Kidwai - Kiefer - Kiers - Kight - Kile - Kilgour - Kilheffer - Kilheffner - Killingsworth - Killion - Kim - Kimball - Kimble - Kinder - Kindle - Kines - King - Kinney - Kinser - Kinsey - Kinslow - Kirby - Kirk - Kirkpatrick - Kirwan - Kitchin - Kittrell - Kivimäki - Klass - Klein - Kleine - Klimpl - Klopp - Knapp - Knight - Knippenberg - Knoblauch - Knotts - Knous - Knowles - Knowlton - Knox - Koch - Kochevar - Kodelja - Koebel - Koeller - Koendering - Koerner - Koetsier - Kohne - Kohr - Kokwai - Kolar - Kolb - Koller - Konarski - Koon - Kooyman - Kopff - Kopp - Korber - Korp - Kosloff - Kotter - Kourik - Kraemer - Kramer - Kras - Kratke - Kraus - Krause - Krebs - Krecker - Kreider - Kretzin - Krick - Krishnan - Kromer - Kronk - Krumman - Kruse - Kuchnoel - Kuhn - Kuhnell - Kummer - Kunze - Kuresko - Kurtz - Kushwaha - Kusmin - Kuttner - Labarre - Lapoint - Lataille - Labay - Labreque - Lacey - Lacy - Lafferty - Laidlow - Lail - Lair - Lajoie - Lamar - Lamb - Lambert - Lamerand - Lancaster - Landis - Landrum - Landry - Landy - Lane - Lang - Langer - Langlois - Langston - Laning - Lankford - Lankshear - Lanmaster - Lanner - Lantrip - Lapouchnian - Lara - Larcom - Lard - Larkins - Larouche - Larsen - Larson - Larsén - Last - Lathrop - Latimbre - Lau - Laughlin - Lauzon - Lavoy - Lawhead - Lawler - Lawrence - Lawson - Lazar - Leach - Lear - Leblanc - Ledenmark - Lee - Leekeirl - Leech - Leeper - Lefler - Leger - Lehman - Lehtovaara - Leib - Leitao - Leitch - Lemke - Lemons - Lengyel - Lenhart - Lennox - Lentini - Leon - Leonard - Leong - Lester - Letarte - Letendre - Lett - Levesque - Lewallen - Lewis - Libis - Licata - Lifson - Light - Lightstone - Lilgert - Lima - Limetsch - Linares - Lindquist - Lindsay - Lindsey - Lindwedel - Linek - Lines - Linge - Linker - Linkogel - Linson - Linus - Lipe - Lipps - List - Little - Litzsinger - Liu - Livingood - Livingston - Lizot - Llanos - Lloyd - Lochridge - Lockhart - Loenders - Logan - Lograsso - Lohr - Lombard - Lombardi - London - Long - Longenecker - Longnecker - Loomis - Looney - Loose - Lopez - Lord - Lorenzo - Loring - Lorton - Lough - Loughrie - Louhr - Lound - Love - Lovejoy - Lovell - Lowe - Lowell - Lowery - Lownes - Loye - Lucas - Luce - Lucius - Lucko - Ludwick - Ludwig - Luissalcines - Lulic - Luna - Lund - Lundberg - Lura - Luthe - Luther - Lutz - Lux - Luzadder - Lyle - Lynch - Lynn - Lyon - Lyons - Mabe - Mabson - Maccuuladh - Macdonald - Macgillivray - Mackellar - Mackenzie - Macpherson - Macedo - Macey - Machin - Mack - Mackey - Macomber - Madore - Maender - Magalhaes - Maheu - Maho - Mahoney - Majakari - Major - Malcom - Maldonado - Malicoat - Malin - Mallet - Mallett - Mallory - Malone - Malos - Malzone - Mamone - Manaev - Mandel - Mandula - Mann - Manning - Mansfield - Manson - Mantione - Manuel - Marabotto - Marbach - Marbourgh - March - Marchant - Marie - Markovic - Marks - Marler - Marple - Marquez - Marquis - Marr - Marriott - Marsden - Marsh - Marshall - Martin - Martinez - Marting - Marttila - Mary - Mason - Massey - Mast - Masters - Mastrantuono - Matheson - Mathews - Mathias - Mathis - Matthews - Matthias - Mattingly - Mattli - Mauger - Maulana - Maule - Maus - Mawdsley - Maxey - Maxson - Maxwell - May - Mayandon - Mayberry - Mayes - Mayhew - Maynard - Mayo - Mayow - Mays - Mazza - Mcalexander - Mcalister - Mcallister - Mcaree - Mcarthur - Mcbride - Mccafferty - Mccall - Mccallister - Mccarra - Mccarthy - Mccauley - Mcclain - Mcclellan - Mccleskey - Mccloud - Mcclung - Mcclure - Mccollum - Mcconnell - Mccormick - Mccowan - Mccoy - Mccracken - Mccullough - Mccumiskey - Mccurdy - Mcdaniel - Mcdaniels - Mcdermott - Mcdonal - Mcdonald - Mcdonnell - Mcdonough - Mcdormand - Mcdowell - Mceachern - Mcelroy - Mcelveen - Mcfarland - Mcgee - Mcgraw - Mcgrew - Mcguire - Mcilveen - Mcintosh - Mcintyre - Mckean - Mckee - Mckeever - Mckenstrie - Mckenzie - Mckinney - Mckinstrie - Mclafferty - Mclaggan - Mclain - Mclaughlin - Mclean - Mcleod - Mcmahon - Mcmanus - Mcmclain - Mcmillan - Mcmurtrie - Mcnair - Mcnamara - Mcpherson - Mcquarrie - Mcqueen - Mcrae - Mcspadden - Mcswain - Mcvicker - Mcwilliams - Meaden - Means - Meddemmen - Medina - Medler - Medley - Medlin - Meech - Meek - Meeks - Megginson - Meier - Meiners - Meinhart - Mejia - Melber - Mellinger - Melton - Melvin - Mendenhall - Mendez - Mendoza - Mercado - Mercer - Mercier - Mercille - Meredith - Merkel - Merkle - Mermann - Merriman - Merritt - Mesman - Messier - Metz - Metzger - Meyer - Meyers - Michalowski - Middleton - Miethe - Mikhailovsky - Mikilas - Miklos - Milam - Miles - Miller - Millett - Mills - Milne - Milner - Milton - Minchin - Miner - Minnich - Minshall - Minster - Minville - Miranda - Mironin - Misik - Miskerik - Mistry - Mitchelhill - Mitchell - Mitchelmore - Miville - Moale - Moats - Mock - Moehlenhoff - Moehlenkamp - Moeller - Moenkhoff - Mohler - Mohow - Molina - Moller - Monfort - Monroe - Monsees - Monsona - Montagna - Montague - Montes - Montgomery - Montoya - Moody - Moon - Mooney - Moore - Moose - Morales - Moran - Morehead - Moreno - Morgan - Morin - Morowitz - Morphett - Morrice - Morris - Morrison - Morrow - Morse - Mortensen - Morton - Moschner - Moseley - Moses - Mosley - Moss - Mosser - Mouser - Moushey - Moxley - Moyer - Moyle - Moyles - Moynahan - Mraz - Mros - Mudd - Mueller - Mukhtar - Mulholland - Muller - Mullinix - Mullins - Munday - Mundy - Munoz - Munro - Munson - Muntz - Murdock - Murphy - Murr - Murray - Muse - Musgrove - Musil - Mussbach - Musselman - Muszer - Mutel - Myers - Naes - Nagashima - Nagle - Nahm - Nalazek - Nanney - Narayan - Narciso - Nash - Nason - Naumann - Navarro - Nave - Neal - Neale - Nebdal - Neece - Neel - Neff - Neilson - Nellen - Nelson - Nemmo - Nester - Nestor - Newlon - Newman - Newsham - Newton - Nguyen - Nichols - Nicholson - Nicodei - Nicoll - Niemeyer - Nies - Nixon - Noble - Nolan - Nord - Norman - Norris - Norton - Norwell - Norwood - Noud - Novaes - Novak - Nuchter - Nunes - Nunez - Nuttall - Nuzum - Nyulassy - O'brien - O'connell - O'conner - O'grady - O'hara - O'leary - O'malley - O'meara - O'neil - Ober - Oberbeck - Oberholser - Oberholtzer - Oberholzer - Oberosler - Obrecht - Obrien - Oconnor - Octeau - Oehrke - Ogden - Oge - Oger - Ogier - Ogle - Oh - Ohlinger - Ohlsen - Olesen - Oleynik - Olive - Oliveira - Oliver - Ollive - Olsen - Olson - Omond - Oneal - Opeloyer - Opeloyeru - Ora - Orlando - Orosz - Orr - Ortega - Ortiz - Osage - Osborn - Osborne - Osgood - Ossenfort - Osula - Ott - Otterstad - Ottman - Otto - Ouellet - Ouellette - Overholser - Overstreet - Owen - Owens - Owsley - Pace - Pacheco - Pack - Padilla - Paganto - Page - Painter - Pala - Palmer - Paluzga - Panda - Paolo - Paquette - Paquin - Pardue - Pardy - Park - Parke - Parker - Parkhill - Parks - Parr - Parrinello - Parrish - Parsons - Paschke - Pastori - Pastrick - Patel - Patrick - Patterson - Patton - Paul - Paulet - Pauley - Paulsen - Pauly - Paumelle - Pavlin - Pavlock - Paxson - Payne - Peak - Pearah - Pearce - Pearson - Peck - Peddlesden - Peden - Pedersen - Pedigo - Pelky - Pelles - Pena - Pence - Pendleton - Pengry - Penka - Penley - Penn - Pennell - Pennington - Penrose - Pentelbury - Peoples - Pepper - Perera - Perez - Perkins - Perotti - Perren - Perrin - Perriseau - Perry - Person - Persson - Peterman - Peters - Petersen - Peterson - Petri - Petrig - Petrounakou - Pettigrew - Pettit - Pettus - Peyrot - Peyton - Pfaff - Pfitzenger - Phelps - Phillips - Phipps - Piastra - Pickard - Pickett - Pickle - Pierce - Pilger - Pilkington - Pilkinton - Pinckley - Pinkel - Pinzer - Pirnar - Pirtle - Pit - Pittman - Pitts - Placzkavich - Plante - Player - Pleis - Pletcher - Ploesser - Ploog - Plumb - Plummer - Pocock - Pogrelis - Politte - Pollock - Poole - Poos - Pope - Poppe - Portell - Porter - Porto - Post - Potten - Potter - Potts - Poulet - Pound - Powell - Powers - Prather - Pratt - Prebit - Preisendorf - Prence - Presley - Preston - Prevost - Price - Priester - Prince - Proctor - Proffitt - Prospero - Proudfoot - Pruitt - Przybyl - Puckett - Pugh - Pulliam - Pullins - Pullman - Purdy - Purvis - Putnam - Putney - Putt - Quattlebaum - Queen - Quell - Quella - Quelle - Quick - Quigley - Quince - Quinn - Quintelier - Quinton - Quisenberry - Raburn - Racine - Rader - Radley - Raffo - Ragsdale - Rahm - Rahn - Raine - Raines - Rains - Rainwater - Rakar - Ralston - Ramirez - Ramos - Ramsberg - Ramsey - Randall - Randolph - Raney - Rangan - Rangefelt - Rash - Rasmussen - Rason - Ratcliff - Rate - Rathfon - Rathman - Ratje - Ratner - Raupp - Ravenscraft - Rawls - Ray - Raygor - Raymond - Rea - Reagan - Rebman - Redd - Reece - Reed - Reese - Reeser - Reeves - Regan - Regester - Regot - Reich - Reicter - Reid - Reilly - Reinholz - Reinke - Reiser - Reiter - Reitz - Rekart - Rekutin - Renfro - Renfrow - Reno - Rentchler - Resch - Retherford - Rexdale - Reyes - Reynold - Reynolds - Rhatigan - Rhoades - Rhodelander - Rhodes - Ribeiro - Riccio - Rice - Rich - Richard - Richards - Richardson - Richmond - Richter - Richwine - Ricketts - Riddick - Rider - Ridgeway - Ridout - Riebold - Riese - Rigdon - Riggs - Righi - Riley - Rinback - Rines - Ringen - Ringler - Rinner - Rios - Ritchey - Ritchie - Riton - Rittenhouse - Ritter - Rivas - Rivera - Rivers - Robb - Robbins - Roberson - Roberts - Robertson - Robins - Robinson - Robison - Robles - Robson - Rodgers - Rodriguez - Rodriquez - Roe - Roebrant - Roebuck - Roesch - Roess - Roessler - Rogai - Roger - Rogers - Rojas - Rolen - Rolfe - Rollings - Rollins - Roman - Romand - Romero - Romig - Romkes - Rondel - Root - Roper - Ropp - Roques - Rosa - Rosati - Rose - Rosemann - Rosenthal - Rosier - Ross - Roth - Rothgeb - Rott - Rottler - Roudebush - Roundtree - Rountree - Rowden - Rowe - Rowland - Rowlandson - Roy - Rudolph - Ruess - Ruggles - Ruhl - Ruiz - Rullan - Rumbaugh - Rundle - Runfola - Rupiper - Ruppel - Rush - Russell - Russo - Ruth - Rutherfoord - Rutzel - Ryan - Rynders - Rypstra - Röther - Sackwell - Saffel - Saffle - Saffold - Safuan - Sahlstrom - Sajid - Salazar - Salinas - Salles - Salmon - Salsbury - Samson - Sanchez - Sander - Sanders - Sandoval - Sanford - Sanfrod - Saniter - Santiago - Santoni - Santos - Sapp - Sappington - Sarel - Sargent - Sas - Satterfield - Sauder - Saunders - Savage - Savic - Saville - Savoie - Sawyer - Saye - Sayre - Scales - Schaeffer - Schaffnitt - Schamberger - Schanze - Schasteen - Schaumberger - Schenk - Schilders - Schipper - Schirmer - Schlegel - Schlitzer - Schlobohm - Schmeis - Schmid - Schmidt - Schmitt - Schmitz - Schmuck - Schneider - Schoenberger - Schofield - Scholfield - Schommer - Schooley - Schoonover - Schopp - Schowengerdt - Schrack - Schrader - Schreiber - Schreiner - Schrick - Schrier - Schrimpf - Schrimpshire - Schrimscher - Schrimsher - Schrimshire - Schroeder - Schrupple - Schubert - Schuchman - Schuit - Schulte - Schultz - Schumacher - Schumaker - Schuman - Schumann - Schutte - Schwab - Schwartz - Schwartzkopf - Schweer - Schweikert - Schweiss - Schwenderman - Sciurba - Scofield - Scott - Scrimpshire - Scrimsher - Scrimshire - Scroggins - Seal - Seaman - Sears - Sebren - Sebring - Sedgwick - Seely - Seguinverner - Seipel - Seith - Selby - Self - Selivanov - Sellen - Sellers - Senff - Sensenig - Serrano - Setiadji - Settergren - Sever - Seward - Sexton - Shackles - Shaffer - Shailes - Shands - Shank - Shannon - Shapely - Shapiro - Sharp - Sharples - Shasserre - Shaw - Sheahan - Sheets - Shelton - Shenefelt - Shepard - Shepherd - Sheppard - Shepperd - Sherman - Sherrill - Sherry - Sherwood - Shewmaker - Shieh - Shields - Shilnikov - Shim - Shimek - Shingleton - Shipley - Shipman - Shirk - Shober - Shoemaker - Short - Shorter - Shriver - Shull - Shurley - Sibley - Sickles - Siebers - Siechrist - Siegrist - Siemann - Sigman - Silberman - Silberstein - Silva - Silverman - Silvernagel - Simenic - Simko - Simmons - Simms - Simoes - Simon - Simons - Simpson - Sims - Singletary - Singleton - Sirigos - Sisk - Siu - Sizer - Sjostrom - Skaggard - Skaggs - Skiles - Skillman - Skinner - Slagle - Slark - Slater - Slaughter - Slierendrecht - Sloan - Sloper - Slouber - Small - Smead - Smedley - Smeets - Smith - Smits - Smoak - Smolar - Snow - Snowden - Snyder - Solimano - Solis - Solomon - Sommerkamp - Somphan - Sorenson - Soto - Soucy - Soulman - Sousa - Southerland - Southern - Sowers - Spaeti - Spahn - Spalding - Spangler - Sparks - Speaker - Spears - Specht - Spector - Speidel - Spencer - Spirek - Spires - Spoel - Spoon - Spoth - Srock - Staebler - Stafford - Stahl - Staley - Stam - Stambaugh - Stamm - Standiford - Stanley - Stansberry - Staples - Starensier - Stark - Starnes - Stasulat - Stauffer - Stedman - Steele - Steely - Stefanelli - Stein - Steinemann - Stendahl - Stephens - Stephenson - Sterling - Stevens - Stevenson - Steward - Stewart - Stice - Still - Stine - Stinton - Stirk - Stock - Stockton - Stokes - Stoll - Stoltz - Stone - Stones - Storey - Storm - Stout - Stoyell - Strader - Straher - Strang - Strauss - Streets - Streing - Strickland - Stroetinga - Strohm - Strong - Strozewski - Strum - Stuart - Sturdivant - Sturgess - Sturgis - Stutzman - Suarez - Sublett - Suddath - Suggs - Sullins - Sullivan - Summerfield - Summers - Summey - Summy - Sunderman - Sunderwirth - Sundgren - Supawanich - Sutcliffe - Sutherland - Sutton - Svedin - Svendsen - Svensson - Swaim - Swaine - Swally - Swanson - Swartz - Swasey - Sweeney - Sweet - Swenson - Swift - Swisher - Sypher - Tackes - Taliaferro - Talipsky - Tamietti - Tan - Tang - Tank - Tanner - Tapp - Tappert - Tardif - Tate - Tauschek - Taylor - Teem - Teeter - Teets - Temple - Templeton - Templin - Tenny - Teppen - Terrill - Terry - Tesche - Tesi - Tessier - Tetrick - Tharp - Thatcher - Thibault - Thibaut - Thibodeau - Thierer - Thies - Thill - Thomas - Thomerson - Thompson - Thomson - Thorn - Thornhill - Thornton - Thorup - Thrower - Thursfield - Thys - Tidwell - Tierney - Tilley - Tillman - Timberlake - Timchenko - Timm - Timmons - Tinker - Todd - Tol - Tolbert - Tomlinson - Toomer - Toothaker - Topping - Torrence - Torres - Touchstone - Toupin - Townend - Townsend - Tracy - Tran - Traudt - Traugott - Trautmann - Traxler - Trego - Trent - Trethewey - Trevino - Triggs - Triplett - Trone - Trout - Troutman - Troutt - Trovato - Troxler - Truesdale - Truetzel - Trujillo - Trump - Tschikowsky - Tshudy - Tuck - Tucker - Tukker - Turberville - Turner - Turrentine - Turén - Tuttle - Tweed - Twiford - Tyler - Tyson - Ulich - Uliel - Underwood - Upton - Utt - Valverde - Valdez - Valentine - Vance - Vanik - Vann - Varga - Vargas - Varner - Vartiainen - Varvel - Vasquez - Vaughan - Vaughn - Vaught - Vawter - Vazquez - Veenvliet - Vega - Vehlewald - Velasquez - Velez - Velonis - Vendt - Venters - Ventres - Ventress - Vergason - Vernon - Vigar - Vigle - Villalobos - Villarreal - Vincent - Vinner - Virga - Virkelyst - Vitali - Vitro - Viverett - Vogel - Vogelgesang - Voldi - Von pilkington - Voss - Vuille - Vunovich - Wack - Wade - Wager - Waggoner - Wagner - Wagstaff - Wakefield - Walker - Wall - Wallace - Waller - Wallis - Walls - Walmsley - Walsh - Walter - Walters - Waltman - Walton - Wang - Ward - Warden - Ware - Wark - Warner - Warren - Warwick - Washington - Wass - Waterham - Waterkotte - Waterman - Waters - Watkins - Watson - Watts - Weaver - Webb - Webber - Weber - Weble - Webster - Weekley - Weeks - Wegener - Weikert - Weiler - Weimer - Weiner - Weismuller - Weiss - Weitzel - Welby - Welch - Wellons - Wells - Welsh - Wenger - Wentland - Werhner - Werner - Wesley - Wesolowski - Wessel - Wessels - West - Weston - Westphal - Westwood - Wetzel - Whaples - Wheat - Wheeler - Whelan - Wherley - Whitaker - White - Whitehead - Whitford - Whiting - Whitman - Whitney - Whitsett - Whitsitt - Whitson - Whitwam - Whitworth - Wickenhauser - Wickliffe - Wicks - Wideman - Wiegand - Wiegratz - Wiggins - Wiklund - Wilcox - Wilcoxon - Wilder - Wildermuth - Wiley - Wilkerson - Wilkin - Wilkins - Wilkinson - Will - Willcut - Willey - William - Williams - Williamson - Willis - Willmes - Willoughby - Willowspond - Wills - Wilmoth - Wilson - Winfrey - Wingard - Wingate - Wingenfeld - Wink - Winn - Winslow - Winston - Winter - Wintermute - Winters - Wintle - Winton - Wischmeyer - Wisdom - Wise - Wiseman - Wissman - Withers - Witmer - Witt - Witte - Woelk - Wofford - Wognum - Wolf - Wolfe - Wolkey - Wolters - Wolz - Womack - Wong - Wood - Woodard - Woodbury - Wooding - Woodring - Woods - Woodson - Woodward - Woolery - Woolf - Wooten - Wordsworth - Worman - Worrall - Worrell - Worrilow - Wosnuk - Wrage - Wren - Wright - Wustenhagen - Wyatt - Wyttenbach - Yahn - Yancey - Yap - Yarnall - Yates - Yeager - Yeomans - Yerger - Yoch - Yogho - York - Young - Younglove - Yount - Yoxall - Zaegel - Zaitsev - Zarnits - Zbaren - Zeller - Zeni - Zimmerman - Zinselmeier - Zondler - Zorzano - Zumwalt - Zwicker - -pragma initial-rule [last-name] diff --git a/RGens/data/sample-grammars/long-data/letters.gram b/RGens/data/sample-grammars/long-data/letters.gram deleted file mode 100644 index f561b99..0000000 --- a/RGens/data/sample-grammars/long-data/letters.gram +++ /dev/null @@ -1,134 +0,0 @@ -[character] 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - a - b - c - d - e - f - g - h - i - j - k - l - m - n - o - p - q - r - s - t - u - v - w - x - y - z - . - - - -pragma export-rule [character] - -[consonant] b - c - d - f - g - h - j - k - l - m - n - p - q - r - s - t - v - w - x - y - z - -pragma export-rule [consonant] - -[last-syllable] on - ly - er - son - row - way - s - ton - dale - -pragma export-rule [last-syllable] - -[letter] a - b - c - d - e - f - g - h - i - j - k - l - m - n - o - p - q - r - s - t - u - v - w - x - y - z - -pragma export-rule [letter] - -[middle-initial] a - b - c - d - e - f - g - h - j - k - l - m - n - o - p - r - s - t - -pragma export-rule [middle-initial] - -[vowel] a - e - i - o - u - -pragma export-rule [vowel] diff --git a/RGens/data/sample-grammars/long-data/nation.gram b/RGens/data/sample-grammars/long-data/nation.gram deleted file mode 100644 index d15788d..0000000 --- a/RGens/data/sample-grammars/long-data/nation.gram +++ /dev/null @@ -1,220 +0,0 @@ -[nation] afghanistan - albania - algeria - american samoa - andorra - angola - anguilla - antarctica - antigua - argentina - armenia - aruba - australia - austria - azerbaijan - bahamas - bahrain - bangladesh - barbados - belarus - belgium - belize - benin - bermuda - bhutan - bolivia - bosnia and herzegovina - botswana - brazil - brunei - bulgaria - burkina faso - burma - burundi - cambodia - cameroon - canada - cape verde - central african republic - chad - chile - china - colombia - comoros - congo - cook islands - costa rica - cote d'ivoire - croatia - cuba - cyprus - czech republic - denmark - djibouti - dominica - dominican republic - ecuador - egypt - el salvador - equatorial guinea - eritrea - estonia - ethiopia - falkland islands - fiji - finland - france - french guiana - french polynesia - gabon - the gambia - georgia - germany - ghana - gibraltar - greece - greenland - grenada - guadeloupe - guam - guatemala - guinea - guinea-bissau - guyana - haiti - the holy see - honduras - hong kong - hungary - iceland - india - indonesia - iran - iraq - ireland - israel - italy - jamaica - japan - jordan - kazakhstan - kenya - kiribati - kuwait - kyrgyzstan - laos - latvia - lebanon - lesotho - liberia - libya - liechtenstein - lithuania - luxembourg - macau - macedonia - madagascar - malawi - malaysia - maldives - mali - malta - marshall islands - martinique - mauritania - mauritius - mayotte - mexico - federated states of micronesia - moldova - monaco - mongolia - montserrat - morocco - mozambique - namibia - nauru - nepal - netherlands - netherlands antilles - new caledonia - new zealand - nicaragua - niger - nigeria - north korea - northern mariana islands - norway - oman - pakistan - palau - panama - papua new guinea - paraguay - peru - philippines - pitcairn islands - poland - portugal - puerto rico - qatar - reunion - romania - russia - rwanda - saint kitts and nevis - saint lucia - saint pierre and miquelon - saint vincent and the grenadines - samoa - san marino - sao tome and principe - saudi arabia - senegal - seychelles - sierra leone - singapore - slovakia - slovenia - solomon islands - somalia - south africa - south korea - spain - sri lanka - sudan - suriname - swaziland - sweden - switzerland - syria - taiwan - tajikistan - tanzania - thailand - togo - tonga - trinidad and tobago - tunisia - turkey - turkmenistan - turks and caicos islands - tuvalu - uganda - ukraine - united arab emirates - united kingdom - united states - uruguay - uzbekistan - vanuatu - venezuela - vietnam - western sahara - yemen - zaire - zambia - zimbabwe - -pragma initial-rule [nation] diff --git a/RGens/data/sample-grammars/long-data/numbers.gram b/RGens/data/sample-grammars/long-data/numbers.gram deleted file mode 100644 index 8525102..0000000 --- a/RGens/data/sample-grammars/long-data/numbers.gram +++ /dev/null @@ -1,99 +0,0 @@ -[binary-digit] 0 - 1 - -pragma export-rule [binary-digit] - -[digit-noone] 0 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - -pragma export-rule [digit-noone] - -[digit-nonzero] 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - -pragma export-rule [digit-nonzero] - -[digit-twoup] 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - -pragma export-rule [digit-twoup] - -[digit] 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - -pragma export-rule [digit] - -[hex-digit] 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - a - b - c - d - e - f - -pragma export-rule [hex-digit] - -[number-word] one - two - three - four - five - six - seven - eight - nine - ten - -pragma export-rule [number-word] - -[ordinal] first - second - third - fourth - fifth - sixth - seventh - eighth - ninth - tenth - eleventh - twelfth - -pragma export-rule [ordinal] diff --git a/RGens/data/sample-grammars/long-data/planet.gram b/RGens/data/sample-grammars/long-data/planet.gram deleted file mode 100644 index 1da1678..0000000 --- a/RGens/data/sample-grammars/long-data/planet.gram +++ /dev/null @@ -1,10 +0,0 @@ -[planet] → Mercury - Venus - Mars - Jupiter - Saturn - Uranus - Neptune - Pluto - -pragma initial-rule [planet] diff --git a/RGens/data/sample-grammars/long-data/real-city.gram b/RGens/data/sample-grammars/long-data/real-city.gram deleted file mode 100644 index 7ca57b9..0000000 --- a/RGens/data/sample-grammars/long-data/real-city.gram +++ /dev/null @@ -1,78 +0,0 @@ -[real-city] → birmingham - anchorage - mesa - phoenix - tucson - anaheim - fresno - long beach - los angeles - oakland - riverside - sacramento - san diego - san francisco - san jose - santa ana - stockton - aurora - colorado springs - denver - washington - jacksonville - miami - st. petersburg - tampa - atlanta - honolulu - chicago - indianapolis - wichita - lexington - louisville - baton rouge - new orleans - baltimore - boston - detroit - minneapolis - st. paul - kansas city - st. louis - omaha - las vegas - jersey city - newark - albuquerque - buffalo - new york - rochester - charlotte - raleigh - akron - cincinnati - cleveland - columbus - toledo - oklahoma city - tulsa - portland - philadelphia - pittsburgh - memphis - nashville - arlington - austin - corpus christi - dallas - el paso - fort worth - houston - san antonio - norfolk - richmond - virginia beach - seattle - milwaukee - -pragma initial-rule [real-city] diff --git a/RGens/data/sample-grammars/long-data/real-company.gram b/RGens/data/sample-grammars/long-data/real-company.gram deleted file mode 100644 index f81ec14..0000000 --- a/RGens/data/sample-grammars/long-data/real-company.gram +++ /dev/null @@ -1,209 +0,0 @@ -[real-company] 3com - aflac - at&t - ace hardware - aetna - aid association for lutherans - albertson's - allstate - alltel - amerenue - america online - american express - american general - ames department stores - anheuser-busch - apple computer - archer daniels midland - autozone - avis rent a car - avon products - b.f. goodrich - bank of america corp. - barnes & noble - bell atlantic - bellsouth - berkshire hathaway - best buy - black & decker - boeing - bristol-myers squibb - burlington northern santa fe - cbs - cvs - cablevision systems - campbell soup - caterpillar - cendant - charles schwab - chase manhattan corp. - chevron - cigna - cinergy - circuit city group - cisco systems - citigroup - clorox - coastal - coca-cola - colgate-palmolive - columbia/hca healthcare - comcast - comerica - compusa - compaq computer - computer associates intl. - conagra - conoco - conseco - continental airlines - corning - costco wholesale - dana - dell computer - delta air lines - dillard's - dole food - dollar general - dow chemical - eastman kodak - eli lilly - este lauder - exxon mobil - fannie mae - farmland industries - fedex - firstar corp. - fleetwood enterprises - ford motor - gte - gannett - gap - gateway - general electric - general mills - general motors - gillette - goldman sachs group - goodyear tire & rubber - h.j. heinz - hartford financial services - hasbro - healthsouth - hershey foods - hewlett-packard - home depot - honeywell international - hormel foods - itt industries - ikon office solutions - ingersoll-rand - intel - ibm - j.c. penney - j.p. morgan & co. - john hancock financial services - johnson & johnson - kellogg - kimberly-clark - kmart - knight-ridder - kroger - lexmark international - lockheed martin - lowe's - lucent technologies - mci worldcom - marriott international - mattel - maytag - mcdonald's - mcgraw-hill - merck - merrill lynch - metropolitan life insurance - micron technology - microsoft - monsanto - morgan stanley dean witter - motorola - mutual of omaha insurance - ncr - nabisco group holdings - new york life insurance - new york times - newell rubbermaid - nextel communications - nike - nordstrom - northwest airlines - office depot - officemax - oracle - owens corning - paine webber group - pepsico - pfizer - pharmacia & upjohn - philip morris - procter & gamble - providian financial - prudential ins. co. of america - quaker oats - qualcomm - quantum - qwest communications - r. j. reynolds tobacco - ralston purina - raytheon - rockwell international - sbc communications - safeway - saks - sara lee - seagate technology - sears roebuck - servicemaster - sherwin-williams - shopko stores - sodexho marriott services - southwest airlines - sprint - staples - state farm insurance cos. - sun microsystems - suntrust banks - sunoco - supervalu - tandy - target - tenet healthcare - texaco - texas instruments - time warner - times mirror - toys `r' us - trans world airlines - tyson foods - u.s. bancorp - us airways group - us west - ultramar diamond shamrock - union carbide - union pacific - unisys - united parcel service - unitedhealth group - universal - viacom - wal-mart stores - walgreen - walt disney - warner-lambert - wells fargo - weyerhaeuser - whirlpool - winn-dixie stores - xerox - -pragma initial-rule [real-company] diff --git a/RGens/data/sample-grammars/long-data/relative.gram b/RGens/data/sample-grammars/long-data/relative.gram deleted file mode 100644 index a18e015..0000000 --- a/RGens/data/sample-grammars/long-data/relative.gram +++ /dev/null @@ -1,12 +0,0 @@ -[relative] → father - mother - uncle - aunt - grandmother - grandfather - sister - brother - cousin - mother-in-law - -pragma initial-rule [relative] diff --git a/RGens/data/sample-grammars/long-data/roman-numeral.gram b/RGens/data/sample-grammars/long-data/roman-numeral.gram deleted file mode 100644 index 886d44c..0000000 --- a/RGens/data/sample-grammars/long-data/roman-numeral.gram +++ /dev/null @@ -1,29 +0,0 @@ -[roman-numeral-string] [roman-numeral-string+1] - -[roman-numeral-string+1] [roman-numeral] - [roman-numeral] - [roman-numeral] [roman-numeral-string] - -pragma initial-rule [roman-numeral-string] - -[ordinal-roman] [act+ordroman] - -pragma export-rule [ordinal-roman] - -[act+ordroman] [roman-numeral-string] th - -[roman-numeral] → I - II - III - IV - V - VI - VII - VIII - IX - X - D - C - M - -pragma export-rule [roman-numeral] diff --git a/RGens/data/sample-grammars/long-data/syllables.gram b/RGens/data/sample-grammars/long-data/syllables.gram deleted file mode 100644 index 925c2aa..0000000 --- a/RGens/data/sample-grammars/long-data/syllables.gram +++ /dev/null @@ -1,598 +0,0 @@ -[consonant-group] b - br - c - cl - ch - cr - d - dr - f - fl - fr - g - gl - gr - h - l - m - n - p - pl - ph - pr - s - st - sl - str - sm - sw - sp - sh - sc - sch - sn - t - th - tr - v - w - wr - x - y - z - -pragma export-rule [consonant-group] - -[syllable] ab - ack - ag - ad - al - an - ar - at - ash - as - augh - ay - au - ba - bab - bat - bal - ban - bar - bau - be - bee - bel - ben - ber - bes - bet - bil - bin - big - bir - bis - bla - black - blan - blat - bled - blo - bly - bock - bod - bol - bon - boo - bop - bor - bos - bot - bow - boy - bra - brad - bram - bran - bras - brau - bren - brew - bri - bro - brow - bru - brun - bry - buc - bud - bul - bur - burn - bus - bush - by - ca - cal - can - cant - car - carl - cap - cat - cer - cha - chan - chap - chas - che - chi - chis - chu - cla - clar - clay - cli - cler - coal - coat - cob - cod - col - com - con - coo - cop - cor - cow - cra - craw - cro - cub - cum - cun - cur - dab - dag - dal - dan - dar - day - dear - der - del - dem - den - der - des - dick - dir - dix - dil - dim - din - dis - dock - dod - dol - dom - don - dor - dos - doy - dow - dra - dre - dru - dry - dub - dud - duck - dul - dum - dun - dur - dwel - dye - eat - eck - ed - el - ell - elm - eng - ep - erk - er - esp - esh - fair - fan - far - fal - fam - fen - fel - fer - fid - fir - fin - flack - fla - flet - fly - fol - for - foo - fox - fran - free - fred - fre - fri - fry - fro - ful - fun - gal - gan - gar - gain - gat - gee - geer - gib - gil - gill - glas - gol - gold - good - gor - gos - gra - gree - green - gri - grif - gris - gro - gun - gush - gut - hack - hag - hal - hall - ham - hamp - han - har - hart - hat - haw - hear - heb - hel - hen - her - hes - hig - hick - hil - hip - hod - hol - hoo - hop - hor - how - hub - hud - hun - hur - ice - ick - ight - ill - imp - ir - is - it - jack - jam - jeff - jel - jen - jew - jer - jock - jon - jol - jum - kar - kan - kal - kay - keat - kee - kel - ken - ket - key - kil - kick - kin - kir - knight - kol - kor - kun - lab - lam - lan - lar - law - lee - len - let - lim - lime - lin - line - lip - lit - lock - lor - lom - loo - low - luck - lud - lun - mac - mab - mal - man - mar - mat - may - mea - med - mee - mel - meg - mer - mes - met - mid - mil - mis - mol - mon - mom - moo - mor - mot - mud - mum - mun - mur - mut - myer - nal - nan - nam - nag - nay - new - nel - nes - nick - nor - nov - ob - oct - og - ol - or - os - ot - ought - ow - pack - pal - par - pas - pat - pam - pan - pay - pea - pear - pel - pen - pep - per - pet - phe - phyl - phi - pick - pin - pit - pla - ple - plo - plor - pli - plu - pol - poo - pot - por - pow - pre - pro - pra - pru - put - pul - que - qui - quin - ra - rab - rad - ram - rat - ray - red - ree - ren - rick - rice - rid - ril - rin - rit - rob - roe - rom - ron - roo - ro - rot - ros - rud - rul - rut - sack - sal - san - sam - sap - sat - scha - schi - scho - schu - scri - sea - seb - sen - sel - sha - she - sher - shi - sho - sil - shu - sim - sla - sle - slo - sli - slu - sno - smee - smit - snow - sol - sout - sor - spa - spe - spi - spoo - spo - sta - stan - star - ster - stee - stin - sto - stre - stur - sun - sup - sul - sut - swa - swe - tan - tap - tar - tee - ter - tem - ten - tes - thor - ton - til - tim - too - tre - trip - tro - tut - tur - ul - un - ur - van - val - var - vee - ver - vin - vel - vir - wad - wal - war - wat - web - wel - wes - whit - wil - will - win - wit - woo - wood - wool - yan - yar - zar - zin - -pragma export-rule [syllable] - -[vowel-group] a - ai - au - ar - e - ee - eu - er - i - ir - io - o - or - ou - oa - oo - u - ur - -pragma export-rule [vowel-group] diff --git a/RGens/data/sample-grammars/long-data/town-name.gram b/RGens/data/sample-grammars/long-data/town-name.gram deleted file mode 100644 index e176c7d..0000000 --- a/RGens/data/sample-grammars/long-data/town-name.gram +++ /dev/null @@ -1,143 +0,0 @@ -[town-name] → sullivan - jakin - geneva - coleharbor - cadiz - dawson - turon - salem - pax - dakota - moorefield - zenda - mettawa - orchard - busby - cloudcroft - perla - burlington - morrison - blackburn - jerico - skykomish - dupree - dawson - bowers - star - dorrance - roberts - carbon - hopedale - croghan - elgin - holland - berkley - sherrill - varna - owen - oxford - drake - notus - hobgood - thacker - springfield - fraser - avon - audubon - waterloo - windsor - atoka - cherry - hudson - kechi - pickstown - elizabeth - holt - stapleton - kell - gardena - osceola - moscow - morrison - mustang - maxwell - francis - eureka - darlington - ely - bancroft - hanover - milano - cabery - byars - gully - sherwood - reklaw - watkins - heartwell - dawson - vermont - goldville - paxson - potwin - sherman - glenbeulah - sunset - clearwater - solen - altamont - dyer - murray - rathbun - huntleigh - poulan - burlington - jackson - verndale - cleveland - josephine - leland - carrollton - vance - sumner - tira - mead - gumbranch - glenwood - harrison - hannibal - carthage - callao - bussey - coaldale - chugwater - andale - adell - farber - carlton - prue - tenney - walcott - udall - brighton - minburn - swan - frazer - menlo - bassett - massena - trommald - waynesfield - lynd - mendon - hammond - simsboro - thornton - crary - reynolds - turton - perry - penasco - loami - -pragma initial-rule [town-name] diff --git a/RGens/data/sample-grammars/long-data/tree.gram b/RGens/data/sample-grammars/long-data/tree.gram deleted file mode 100644 index 6fd0f0e..0000000 --- a/RGens/data/sample-grammars/long-data/tree.gram +++ /dev/null @@ -1,19 +0,0 @@ -[tree] → pine - elm - maple - oak - walnut - ash - sycamore - gum - hickory - cedar - willow - cherry - spruce - chestnut - birch - dogwood - poplar - -pragma initial-rule [tree] diff --git a/RGens/data/sample-grammars/martial-arts.gram b/RGens/data/sample-grammars/martial-arts.gram deleted file mode 100755 index 2f9f557..0000000 --- a/RGens/data/sample-grammars/martial-arts.gram +++ /dev/null @@ -1,39 +0,0 @@ -[martial-arts-name] → [art-1] [art-2] - [art-1] [art-3] - [art-2] [art-3] - [art-1] [art-2] [art-3] - -pragma initial-rule [martial-arts-name] - -[art-1] → running - hungry - angry - naked - drunken - fortunate - lazy - swift - powerful - enlightened - -[art-2] → ox - tiger - dragon - crane - monkey - turtle - manticore - serpent - hummingbird - demon - -[art-3] → fist - stance - spinning kick - attack - technique - style - dance - movement - touch - fu diff --git a/RGens/data/sample-grammars/mary-sue.gram b/RGens/data/sample-grammars/mary-sue.gram deleted file mode 100755 index cb39264..0000000 --- a/RGens/data/sample-grammars/mary-sue.gram +++ /dev/null @@ -1,495 +0,0 @@ -[mary-sue] she appears to be a normal [normal-desc] . [mary-sue2] - she appears to be a normal [normal-desc] [opt-dress] [mary-sue2] - -[mary-sue2] She is [desc] and she will fight her enemies with her power to [power-desc] [mary-sue3] - -[mary-sue3] . Her friends and enemies call her [name] [mary-sue4] - -[mary-sue4] . Her constant companion is a [comp] . - -pragma initial-rule [mary-sue] - -[normal-desc] schoolgirl - soldier - pirate - nun - nurse - teacher - teenager - martial artist - scientist - singer - artist - student - model - lawyer - journalist - mechanic - raver - woman - girl - cheerleader - sumo wrestler - cook - marine biologist - single mother - -[opt-dress] [except-dress] - [half-dress] - [except-dress] [half-dress] - -[except-dress] except she dresses like a [exdress-1] [exdress-2] - except she dresses like a [exdress-1] - except she dresses like a [exdress-2] - -[exdress-1] gothic lolita - bloody nurse - vampire - raver - gangsta - ninja - princess - pirate - mad scientist - gestapo officer - elf - sorceress - witch - commando soldier - cat-girl - fox-girl - druidess - schoolgirl - j-pop star - skateboarder - skinhead - punk rock - pole dancing - biker - innuit - -[exdress-2] gangsta - raver - princess - gothic lolita - pirate - sorceress - witch - druidess - vampire - cat-girl - mad scientist - skateboarder - bloody nurse - fox-girl - j-pop star - schoolgirl - commando soldier - ninja - gestapo officer - elf - construction worker - shaman - monk - dominatrix - businesswoman - -[half-dress] but this is just to take away attention from the fact that she is a half [hdress] - -[hdress] Vampire. - Unicorn. - Dragon. - Elf. - Orc. - Xenomorph. - Batgirl. - Japanese. - Werewolf. - Android. - Ghost. - Fox-girl. - Slime-girl. - Pixie. - Angel. - Demon. - Fire-elemental. - Stone-elemental. - Dwarf. - Zergling. - Illithid. - Lizard-woman. - Giant. - Zombie. - Na’vi. - -[desc] [desc-req] - [desc-req] [desc-opt] - -[desc-req] a megalomaniac - a secret super-soldier - an interdimensional traveler - a space traveler - a scientific experiment gone wrong - the last of her kind - chosen by destiny - a rumored demon-goddess - a rumored demi-goddess - a misunderstood genius - created to be the next step in mankind’s evolution - unknowingly the queen of her kind - an amnesiac - a secret agent - the leader of a ninja clan - wanted in another galaxy - a fortune teller - the daughter of the president - a living time-bomb - a holographic projection - a chaos cultist - one of a hundred nearly identical clones - a mysterious orphan - the living key to open up hell - a goddess cast down to earth to become mortal - -[desc-opt] who is the last of her kind - born from a scientific experiment gone wrong - who reincarnates in a new body every 666 years - with a mysterious past - from another dimension - worshipped by a small cult - raised by wild animals - from another planet - working for the church - destined to save the world - falsely accused of murdering her father - created by Nazi scientists by world war II - devoted to the gods of chaos - who is part of a secret organization - megalomaniac - with no memory of her childhood - created to be the next step in mankind’s evolution - foretold in ancient prophesies - who is also rumored to be a demo-goddess - who has lived for over 1000 years - in search of true love - and her blood is the cure for cancer - in search of her kidnapped sister - cursed by god - traveling through time - -[power-desc] [power-1] - [power-1] and [power-1] - -[power-1] [power-p1] [power-p2] - -[power-p1] summon - transform others into - incinerate - talk to - absorb the power of - shape-shift into - destroy - corrupt - seduce - befriend - heal - construct - banish - disintegrate - devour - control - frighten - ride - freeze - shrink - become invisible to - command - follow the scent of - magically imprison - -[power-p2] demons - gods - blood - angels - robots - dinosaurs - ghosts - wild animals - xenomorphs - mechas - vampires - werewolves - unicorns - adamantium - weapons - slime - elementals - retards - pedophiles - clones of herself - computers - centaurs - dragons - regular humans - plants - -[name] [name1] - [name1] [name2] - -[name1] star - angel - demon - sparkle - magic - mecha - power - peace - soul - blood - awesome - raven - unicorn - light - dark - summer - dragon - fire - night - day - shadow - thunder - mystery - love - cancer - -[name2] hair - eyes - face - claw - fur - fang - flower - lover - beast - girl - woman - princess - murderer - bringer - mistress - caller - singer - creator - lips - tits - thighs - hammer - dream - ender - stealer - -[comp] [comp-name] - -pragma suffix-with [comp] [comp-also] -pragma suffix-with [comp] [comp-weapon] - -[comp-also] who is also [compal-desc] - -[comp-weapon] . Her favored weapon is a(n) [comp-weapon1] - -[comp-name] [comp-name1] - [comp-prefix] [comp-name1] - -[comp-prefix] [comp-prefix1] - [comp-prefix2] - [comp-prefix1] [comp-prefix2] - [comp-prefix2] [comp-prefix1] - -[comp-name1] dragon - mecha - vampire - doll - white wolf - fox - zombie - space-marine - werewolf - robot - cat - dog - spaceship - faerie - vietnam veteran - unicorn - demon - angel - xenomorph - super saiyan - miniature elder god - fertility goddess - neck bearded man - wizard - giant - -[comp-prefix1] psychic - mexican - over-analytical - enslaved - mysterious - catatonic - angsty - depressed - spirit - friendly - young - ancient - flying - living - talking - intelligent - hyperactive - befriended - magical - sparkling - brain-washed - special needs - huge - murderous - amorous - -[comp-prefix2] young - talking - sparkling - living - intelligent - spirit - friendly - brain-washed - befriended - angsty - special needs - magical - psychic - enslaved - murderous - over-analytical - flying - catatonic - amorous - mysterious - ancient - invisible - mexican - huge - depressed - -[compal-desc] her lover - secretly her nemesis - her legal guardian - a projection of her evil self - secretly in love with her - her means of transport - her guardian angel - her best friend forever - destined to die by her hand - the reason she lives - herself from the future - her mentor - part of her soul - one of her failed experiments - a figment of her imagination - her father - her superior officer - her stalker - her mother - both her mother and father - soulmate - personal trainer - economic consultant - the phylactery of her soul - her bondage slave - -[comp-weapon1] [compweap-prefix] [compweap-type] - -[compweap-type] chainsaw - spear - katana - magnum - throwing star - dagger - mallet - machine gun - minion - axe - club - razor - whip - guitar-axe - knuckle iron - sword - staff - bow - javelin - charm - poleaxe - sniper rifle - flamethrower - rapier - scissors - -[compweap-prefix] [compweap-1] - [compweap-2] - [compweap-1] [compweap-2] - [compweap-2] [compweap-1] - -[compweap-1] poisoned - blessed - holy - legendary - burning - glowing - golden - silver - steam-powered - demonic - conscious - magical - huge - two-handed - dragonbone - adamantium - bio-mechanical - ancient - acidic - self-replicating - dark steel - freezing - spirit - shining - unbreakable - -[compweap-2] glowing - magical - legendary - acidic - silver - huge - demonic - blessed - bio-mechanical - poisoned - dragonbone - spirit - cursed - self-replicating - burning - darksteel - shining - conscious - unbreakable - freezing - steam-powered - ancient - holy - adamantium - two-handed diff --git a/RGens/data/sample-grammars/media.gram b/RGens/data/sample-grammars/media.gram deleted file mode 100644 index f3a1c98..0000000 --- a/RGens/data/sample-grammars/media.gram +++ /dev/null @@ -1,164 +0,0 @@ -[media-company] [television-station] - [radio-station] - [newspaper] - -pragma initial-rule [media-company] - -[television-station] [chan+name] on channel [2..45] - [chan+name] on channel [2..12] - -[chan+name] k [chan-name2] - w [chan-name2] - -[chan-name2] [letter] [letter] [letter] -tv - -[radio-station] [radio+name] on frequency [radio+chan] - -[radio+name] k [radio+name2] - w [radio+name2] - -[radio+name2] [letter] [letter] [letter] [chan-type] - -[chan-type] -fm {chantype=fm} - -am {chantype=am} - -[radio+chan] 9 [radio-9chan] - [$chantype-1chan] - -[radio-9chan] [digit] . [digit] - -[fm-1chan] 1 [digit] [digit] . [digit] - -[am-1chan] 10 [digit] [digit] - -[newspaper] the [newspaper-pair1] - [newspaper-pair2] - the [newspaper-pair1] - [newspaper-pair2] - [newspaper-pair2] - the daily [newspaper-pair1] [newspaper-pair2] - the [newspaper-pair1] [newspaper-pair2] - [city] [newspaper-pair1] - [newspaper-pair2] - [city] [newspaper-pair1] [newspaper-pair2] - [city] [newspaper-pair2] - [city] [newspaper-pair1] - [real-city] [newspaper-pair1] - [newspaper-pair2] - [town-name] [newspaper-pair2] - the [cardinal] [us-stateadj] - [us-stateadj] [newspaper-pair1] - [newspaper-pair2] - [cardinal] [us-state] [newspaper-pair1] [newspaper-pair2] - -[newspaper-pair1] southern - northern - eastern - western - democratic - republic - liberty - freedom - sun - patriot - river - mountain - plains - american - news - post - morning - evening - star - daily - new - old - responsible - ethical - pulp - events - banner - standard - world - register - -[newspaper-pair2] daily - weekly - evening - republic - american - democrat - republican - leader - ledger - journal - bulletin - advertiser - dispatch - intelligencier - inquirer - post - times - review - star - justice - record - press - tribune - gazette - chronicle - herald - bugle - arrow - statesman - monitor - globe - planet - register - -pragma export-rule [newspaper-pair2] - -[cardinal] [act-cardinal] - [act-cardinal] - [act-cardinal] by [act-cardinal] - [2+cardinal] - -[act-cardinal] north - west - east - south - northeast - northwest - southeast - southwest - -[2+cardinal] [act-cardinal] - [act-cardinal] - -pragma export-rule [cardinal] - -[real-newspaper] new york times - la times - chicago tribune - usa today - st. louis post-dispatch - washington post - houston chronicle - kansas city star - denver post - seattle times - -[tech-publication] wired news - infoworld - computerworld - pc week - windows magazine - salon.com - abcnews.com - the register - -[biz-publication] forbes - industry standard - business week - wall street journal - f@stcompany - motley fool - the economist - fortune - -pragma export-rule [television-station] -pragma export-rule [radio-station] -pragma export-rule [newspaper] diff --git a/RGens/data/sample-grammars/mission.gram b/RGens/data/sample-grammars/mission.gram deleted file mode 100644 index e474fcd..0000000 --- a/RGens/data/sample-grammars/mission.gram +++ /dev/null @@ -1,463 +0,0 @@ -[mission-statement] [opening] [work-phrase] [verb-part] [noun-part] - [opening] [work-phrase2] [verb-part2] [noun-part] - [opening] [verb-part] [noun-part] - [opening] [work-phrase] [verb-part] [noun-part] and [verb-part] [noun-part] - [opening] [work-phrase2] [verb-part2] [noun-part] and [verb-part2] [noun-part] - [opening] [verb-part] [noun-part] and [noun-part] - [opening] [work-phrase] [verb-part] [noun-part] [connector] [goal] - [opening] [work-phrase2] [verb-part2] [noun-part] [connector] [goal] - [opening] [verb-part] [noun-part] [connector] [goal] - [opening] [work-phrase] [verb-part] [noun-part] [connector] [goal] and [goal] - [opening] [work-phrase2] [verb-part2] [noun-part] [connector] [goal] and [goal] - [opening] [verb-part] [noun-part] [connector] [goal] and [goal] - [opening] [work-phrase] [verb-part] [noun-part] and [verb-part] [noun-part] [connector] [goal] - [opening] [work-phrase2] [verb-part2] [noun-part] and [verb-part2] [noun-part] [connector] [goal] - [opening] [verb-part] [noun-part] and [noun-part] [connector] [goal] - [opening] [verb-part] [noun-part] , [noun-part] and [noun-part] [connector] [goal] - [opening] [work-phrase] [verb-part] [noun-part] [connector] [verb-part] [noun-part] [connector] [goal] - [opening] [work-phrase2] [verb-part2] [noun-part] [connector] [verb-part] [noun-part] [connector] [goal] - [opening] [verb-part] [noun-part] [connector] [verb-part] [noun-part] [connector] [goal] - -pragma initial-rule [mission-statement] - -[verb-part] [verb-how] [verb] - [verb] - -[verb-part2] [verb-how] [verb-gerund] - [verb-gerund] - -[noun-part] our [adjective] [noun] - our [noun] - our [noun+noun-prefix] - [adjective] [noun+noun-prefix] - [adjective] [noun] - [noun] - -[noun+noun-prefix] [noun-prefix] [noun] - -[opening] it's our [duty] to - it is our [duty] to - it is our [mission] to - it's our [mission] to - our [mission] is to - our [duty] is - we are committed to - we have committed to - we - we resolve to - -[duty] duty - responsibility - obligation - -[mission] mission - task - goal - job - business - function - -[verb] aggregate - deliver - deploy - embrace - empower - enable - engage - engineer - enhance - envision - extend - facilitate - generate - harness - implement - innovate - integrate - leverage - maximize - optimize - reinvent - revolutionize - simplify - spearhead - strategize - streamline - syndicate - synergize - synthesize - transform - unleash - utilize - visualize - -[verb-gerund] aggregating - delivering - deploying - embracing - empowering - enabling - engaging - engineering - enhancing - envisioning - extending - facilitating - generating - harnessing - implementing - innovating - integrating - leveraging - maximizing - optimizing - reinventing - revolutionizing - simplifying - spearheading - strategizing - streamlining - syndicating - synergizing - synthesizing - transforming - unleashing - utilizing - visualizing - -[verb-how] dramatically - practically - conveniently - efficiently - productively - rapidly - enthusiastically - completely - competently - assertively - quickly - intelligently - endlessly - tirelessly - effectively - skillfully - proficiently - professionally - swiftly - energetically - vigorously - zealously - briskly - speedily - shrewdly - cleverly - sharply - astutely - successfully - expertly - -[work-phrase] strive to - work to - endeavor to - continue to - execute a strategic plan to - -[work-phrase2] strive towards - work towards - endeavor towards - continue towards - make progress towards - make strides towards - take steps towards - achieve progress in - engage in - execute a strategic plan involving - -[noun] action items - architectures - assets - bandwidth - channels - communities - content - deliverables - eyeballs - face time - functionalities - infomediaries - infrastructures - initiatives - interfaces - key players - leadership skills - markets - metrics - middleware - mindshare - perspectives - networks - niches - paradigms - partnerships - platforms - portals - relationship corridors - relationships - synergies - schemas - skill sets - solutions - strategic alliances - supply-chains - synergies - technologies - total {{empty}} quality {{empty}} management - version control - vision - catalysts for [noun] - -[noun-prefix] sub- - meta- - mega- - e- - E- - cyber- - Net- - -[adjective] best-of-breed - bilateral - bleeding-edge - client-centered - cross-platform - cross-media - customer-centric - cutting-edge - distributed - dot-com - dynamic - effective - efficient - effort-intensive - enterprise - evolutionary - extensible - forward-thinking - frictionless - future-proof - global - granular - hyperlinked - idiot-proof - innovative - integrated - interactive - intuitive - killer - leading-edge - legacy - massively-parallel - mission-critical - multilevel - next-generation - object-oriented - open-source - proactive - progressive - real-time - revolutionary - robust - scalable - seamless - strategic - synergistic - transparent - turn-key - two-tier - ubiquitous - user-centric - value-added - vertical - viral - virtual - visionary - wireless - world-class - -[connector] so that we may - in order to - as part of our master plan to - as part of a larger strategy to - to - to - in order that we may - to allow us to - to enable us to - to permit us to - so that hopefully we may - as part of our five-year plan to - as part of our business plan to - as a component of our plan to - as the first step in our scheme to - -[goal] [make] a lot of [money] - produce [profit] for our [shareholders] - produce more [profit] for our [shareholders] - [increase] [profit] for our [shareholders] - better serve our customers - better serve our [shareholders] - better serve the [world] - [increase] our [bottom-line] - get out of debt - prevent bankruptcy - stay competitive for [todays] [world] - remain profitable in [todays] [world] - [set-us-apart] [competition] - [defeat] [competition] - [increase] customer satisfaction - create a [better] [product] - market a [lesser] [product] - produce a [better] [product] that kicks [competition] 's [butt] - market a [lesser] [product] that [make] s us a lot of [money] - exceed customer [demands] - meet the [demands] of our valued customers - meet the [demands] of the [world] - successfully market an overhyped [lesser] [product] - take over the [world] - dominate the [world] - waste a lot of time in meetings - make our founder enough [money] to exceed the net worth of the world's richest man - -[demands] demands - expectations - wants - needs - requirements - -[product] product - product line - line of products - line of services - brand - -[better] better - superior - finer - more affordable - quality - higher quality - popular - robust - -[lesser] lesser - highly inferior - subpar - worse - more expensive - weak - lower quality - poor - -[make] make - earn - produce - create - yield - -[defeat] defeat - counter - challenge - beat - strike back at - conquer - crush - shellac - rout - vanquish - reign victorious over - overwhelm - beat the snot out of - -[competition] the competition - our competitors - the rest of the industry - our evil competitors - the market - the industry - our enemies - -[set-us-apart] set us apart from - pull ahead from - distance us from - take us ahead of - -[todays] today's - tomorrow's - the future - -[shareholders] shareholders - employees - executive officers - head honchos - workers - serfs - investors - venture capitalists - sponsors - -[increase] increase - shore up - inflate - enlarge - enrich - add to - augment - advance - expand - burgeon - grow - multiply - make greater - -[profit] profit - dividends - cash - money - revenue - income - earnings - proceeds - rewards - benefits - -[money] money - cash - currency - moola - greenbacks - dough - bread - scratch - bucks - simoleons - -[world] world - industry - globe - universe - nation - country - market - economy - -[butt] butt - ass - rear end - posterior - behind - -[bottom-line] bottom line - stock price - net worth - earnings - revenue - sales diff --git a/RGens/data/sample-grammars/names.gram b/RGens/data/sample-grammars/names.gram deleted file mode 100644 index 104c136..0000000 --- a/RGens/data/sample-grammars/names.gram +++ /dev/null @@ -1,431 +0,0 @@ -# @TODO 10/26/17 Ben Culkin :NameTypes -# Add rules for producing names in the common 'last, first' style format, -# as well as producing actual middle names/nick names for people - -[full-name] [first-name] - [last-name] - [first-name] [last-name] - [first-name] [middle-initial] . [last-name] - [consonant] . [middle-initial] . [last-name] - [middle-initial] . [middle-initial] . [last-name] - [random-name] - [random-name] [random-name] - [random-name] [middle-initial] . [random-name] - -pragma initial-rule [full-name-and-title] - -pragma export-rule [person] -pragma export-rule [first-name] -pragma export-rule [generic-title] -pragma export-rule [full-name] -pragma export-rule [random-name] - -[full-name-and-title] [generic-title] [last-name] - [generic-title] [middle-initial] . [middle-initial] . [last-name] - [male-title] [first-name-male] - [male-title] [first-name-male] [last-name] - [male-title] [first-name-male] [middle-initial] . [last-name] - [female-title] [first-name-female] - [female-title] [first-name-female] [last-name] - [female-title] [first-name-female] [middle-initial] . [last-name] - [gender-neutral-title] [full-name] - [generic-title] [full-name] - [full-name] - [full-name] - [full-name] - [full-name] - -[generic-title] [male-title] - [female-title] - [gender-neutral-title] - [male-title] - [female-title] - [gender-neutral-title] - [career-tech] - -# @TODO 10/23/17 Ben Culkin :TitleExpansion -# Expand titles to -# - Include place names where appropriate (e.g empereror of ...) -# - Include ordinals where necessary (first emperor of ...) -# - -[male-title] Mr. - Master - Uncle - Lord Mayor - Prince - archduke - grand duke - duke - marquis - marquess - count - earl - jarl - viscount - baron - lord - emperor - king - tsar - imperator - viceroy - pope - abbot - brother - friar - bishop - archbishob - priest - high priest - father - patriarch - vicar - chaplain - pastor - cardinal - monsieur - herr - senor - signor - emir - sultan - maharajah - lord protector - king-emperor - rex - lord of the manor - high king - crown prince - grand prince - praetor - headmaster - -[female-title] Ms. - Mrs. - Miss - Mistress - Aunt - Lady Mayoress - princess - arch duchess - grand duchess - duchess - marquise - marchioness - countess - viscountess - baroness - lady - empress - queen - tsarina - imperatrix - rex - vicerine - popess - dame - abbess - sister - mother superior - mother - reverend mother - priestess - high priestess - matriarch - madame - mademoiselle - frau - fraulein - senora - senorita - signora - signorina - emira - sultana - maharani - lady protectoress - queen-empress - regina - lady of the manor - high queen - crown princess - grand princess - headmistress - -[gender-neutral-title] Dr. - Professor - Right Honorable - Rt. Hon. - Honorable - Hon. - Representative - Senator - Speaker - [president] - Councillor - Delegate - Mayor - Governor - Lieutenant Governor - Premier - [ambassador] - [envoy] - [secretary] - attache - attache ( to [full-name-and-title] ) - provost - chevalier - [judicial-title] - [religious-title] - [military-title] - coach - wizard - grand wizard - imperial wizard - principal - comrade - docent - lama - druid - archdruid - rabbi - ayatollah - bodhisattva - saoshyant - sheikh - archon - legate - satrap - consul - doge - pharaoh - caliph - khagan - khan - shah - shogun - despot - kaiser - don - comissioner - comptroller - courtier - courtier (to [full-name-and-title] ) - curator - intendant - superindentent - sheriff - treasurer - warden - lord warden - apprentice - apprentice (to a [generic-title] ) - apprentice (to [full-name-and-title] ) - journeyman - adept - centurion - daimyo - elector - inquisitor - grand inquisitor - pontiff - knight - squire - squire (to [full-name-and-title] ) - -[military-title] admiral - grand admiral - lord high admiral - rear admiral - vice admiral - brigadier - captain - group captain - colonel - lieutenant colonel - commander - commander-in-chief - lieutenant commander - wing commander - commodore - air commodore - corporal - lance corporal - staff corporal - general - first lieutenant - flight lieutenant - major - marshal - air marshal - field marshal - mate - chief mate - first mate - [officer] - private - sergeant - sergeant at arms - brigadier general - cadet - ensign - -[officer] officer - chief academic officer - chief executive officer - chief information officer - chief operating officer - field officer - first officer - flag officer - warrant officer - petty officer - police officer - political officer - senior officer - staff officer - police officer - constable - agent - -[religious-title] venerable - blessed - Saint - St. - decon - archdeacon - acolyte - dean - elder - minister - monsignor - reader - almoner - -[judicial-title] advocate - attorney - attorney general - bailiff - chancellor - judge - justice - lord chief justice - justice of the peace - magistrate - solicitor - -[president] president - deputy president - vice president - executive vice president - lord president of the council - -[ambassador] ambassador - ambassador (to [nation] ) - -[envoy] envoy - envoy (to [nation] ) - envoy (to the [generic-title] ) - envoy (to [full-name-and-title] ) - special envoy - special envoy (to [nation] ) - special envoy (to the [generic-title] ) - special envoy (to [full-name-and-title] ) - -[secretary] secretary - secretary (to [full-name-and-title] ) - secretary (to the [generic-title] ) - under-secretary - under-secretary (to [full-name-and-title] ) - under-secretary (to the [generic-title] ) - foreign secretary - general secretary - secretary of state - -pragma suffix-with [full-name-and-title] [title-generation] -pragma suffix-with [full-name-and-title] [title-suffix] -pragma suffix-with [full-name-and-title] [title-suffix] -pragma suffix-with [full-name-and-title] [title-suffix] - -[title-generation] Sr. - Jr. - [roman-numeral] - the [roman-numeral] - the [ordinal] - the [ordinal-number] - -[title-trailer] CPA - Ph.D - MP - M.D - DBA - RNA - TLA - A.B - B.A - B.S - M.A - M.S - Ed.D - D.Phil - Eng.D - K.B.E - D.D - Esq. - Esquire - CFA - P.E - PMP - CIA - CEH - CISA - CISM - CISSP - CNP - [cisco-title] - [ms-title] - OCP - [acronym] - J.D - J.P - N.P - CPL - DVM - D.D.S - D.M.D - OD - EMT - LPN - CMT - CRNA - OTP - KHS - GCHS - KCHS - MBA - -[cisco-title] CCNA - CCNP - CCIE - -[ms-title] MCDBA - MCSA - MCSE - MCP - -[title-suffix] , [title-trailer] - -[person] [full-name] - -[first-name] [first-name-male] - [first-name-female] - -[random-name] [actual+random-name] - -[actual+random-name] [syllable] [syllable] - [syllable] [syllable] [last-syllable] - [syllable] [vowel] [consonant-group] [vowel] - [consonant-group] [vowel] [syllable] - [vowel] [syllable] [syllable] - [syllable] [vowel-group] [consonant] diff --git a/RGens/data/sample-grammars/newspaper.gram b/RGens/data/sample-grammars/newspaper.gram deleted file mode 100644 index afa91ee..0000000 --- a/RGens/data/sample-grammars/newspaper.gram +++ /dev/null @@ -1,4 +0,0 @@ -[headline] [headline-prefix] [headline-news] - [headline-news] [headline-suffix] - -pragma initial-rule [headline] diff --git a/RGens/data/sample-grammars/numbers.gram b/RGens/data/sample-grammars/numbers.gram deleted file mode 100644 index 4db84b9..0000000 --- a/RGens/data/sample-grammars/numbers.gram +++ /dev/null @@ -1,19 +0,0 @@ -[small-number] [actual+small-number] - -[medium-number] [actual+medium-number] - -[zipcode] [actual+zipcode] - -pragma export-rule [small-number] -pragma export-rule [medium-number] -pragma export-rule [zipcode] - -[actual+small-number] [digit-nonzero] - [digit-nonzero] [digit] - [digit-nonzero] [digit] [digit] - -[actual+medium-number] [digit-nonzero] [digit] [digit] - [digit-nonzero] [digit] [digit] [digit] - [digit-nonzero] [digit] [digit] [digit] [digit] - -[actual+zipcode] [digit] [digit] [digit] [digit] [digit] diff --git a/RGens/data/sample-grammars/ordinal.gram b/RGens/data/sample-grammars/ordinal.gram deleted file mode 100644 index da4aa4e..0000000 --- a/RGens/data/sample-grammars/ordinal.gram +++ /dev/null @@ -1,20 +0,0 @@ -[ordinal-number] [actual+ordinal-number] - -pragma export-rule [ordinal-number] - -[actual+ordinal-number] [ordinal-digit] - 1 [digit] th - [digit-twoup] [ordinal-digit] - [digit-twoup] [ordinal-digit] - [digit-nonzero] [ordinal-number] - -[ordinal-digit] 1st - 2nd - 3rd - 4th - 5th - 6th - 7th - 8th - 9th - 0th diff --git a/RGens/data/sample-grammars/organization.gram b/RGens/data/sample-grammars/organization.gram deleted file mode 100644 index 9c88686..0000000 --- a/RGens/data/sample-grammars/organization.gram +++ /dev/null @@ -1,237 +0,0 @@ -[organization-desc] [org-political] - -[org-postfix] (allies of [org-political] ) - (enemies of [org-political] ) - (secretly opposed to [org-political] ) - (secretly in cohorts with [org-political] ) - (based in [city] ) - (based in [town-name] ) - -pragma suffix-with [organization-desc] [org-postfix] -pragma suffix-with [organization-desc] [org-postfix] -pragma suffix-with [organization-desc] [org-postfix] - -[organization] [org-political] - -pragma initial-rule [organization] -pragma export-rule [org-political] - -[org-political] [org-prefix] [org-body] - -pragma suffix-with [org-political] [org-goalbody] - -[org-body] of [org-members] - -[org-goalbody] [org-position] [org-goal] - for [org-goal] - -pragma suffix-with [org-goalbody] [org-wayof] - -[org-wayof] by way of [org-goal] - by [org-positioning] [org-goal] - -[org-positioning] supporting - abolishing - repealing - eliminating - -[org-position] for - for - supporting - in support of - committed to - against - opposed to - -[org-goal] "nuke first, ask questions later" policy - banning negative campaign ads - big brother policies - book burnings - campaign finance reform - cutting taxes for the [wealth] - daylight saving time - draconian software license agreements - eliminating the national debt - eliminating violence on tv - gay marriages - genetically modified foods - god in the classroom - government handouts - gun control - hitting unfriendly nations with a nuclear bomb - increased military spending - increasing the minimum wage to [min+wage] - internet censorship - internet pornography - legal reform - local control of schools - marijuana legalization - nuclear winter - political correctness - prescription drug subsidies - privacy rights - pro-choice policy - pro-life policy - protecting the [protect] - raising taxes for [tax-class] - random drug testing for elected officials - right on red traffic laws - splitting microsoft into [2..50] pieces - subsidized day care for working parents - teaching [subject] in the classroom - the death penalty - the designated hitter rule - the flat tax - universal health care - using [bad-thing] in public - wealth redistribution - wearing baseball caps backwards - miranda rights - speed limits - the [protect] - women's suffrage - the drug [trademark+drug] - [trademark] - [organization] - [org-course] - -[org-course] offering [quote-course] in college - making [quote-course] a mandatory course - teaching [quote-course] in high school - -[org-goal-person] supporting [quote-nametitle] - opposing [quote-nametitle] - exiling [quote-nametitle] - indicting [quote-nametitle] - pardoning [quote-nametitle] - -[quote-nametitle] ( [full-name-and-title] ) - -pragma despace-rule [quote-nametitle] - -pragma prefix-with [org-goal] [org-goal-abolish] - -[wealth] poor - working poor - middle class - lower class - upper class - wealth - filthy rich - -[min+wage] [9..20] . [digit] [digit] - -[protect] bill of rights - first amendment - second amendment - -[tax-class] the rich - the filthy rich - the wealthy - billionaire - lottery winners - -[subject] evolution - evilution - creationism - -[bad-thing] swear words - cuss words - profanities - expletives - -[org-goal-abolish] abolishing - repealing - eliminating - -[org-prefix] council - association - organization - united organization - union - federation - league - association - campaign - society - alliance - fellowship - -[intl-name] american - national - international - [intl-possesive] - [us-stateadj] - -[intl-possesive] ( [full-name-and-title] 's ) - -pragma despace-rule [intl-possesive] - -pragma prefix-with [org-prefix] [org-members-prefix] -pragma prefix-with [org-prefix] [intl-name] -pragma prefix-with [org-prefix] [org-members-prefix] - -[org-members] [org-members-body] - -pragma prefix-with [org-members] [org-members-prefix] -pragma prefix-with [org-members] [intl-name] -pragma prefix-with [org-members] [org-members-prefix] - -[org-members-prefix] radical - concerned - outraged - activist - caring - involved - civic-minded - conservative - liberal - reformist - socialist - communist - morally bankrupt - -[org-members-body] angst-ridden teenagers - baby boomers - bambi people - bible thumpers - church-goers - clergymen - democrats - [eco+members] - grandparents - hollywood movie stars - lawyers - lesbians - liberals - libertarians - lobbyists - minorities - parents - pointy haired bosses - republicans - soccer moms - socialists - state legislators - [tree+members] - [american+members] - -[eco+members] eco- [eco-suffix] - -[eco-suffix] watchdogs - freaks - terrorists - activists - -[tree+members] tree- [tree-suffix] - -[tree-suffix] huggers - worshippers - -[american+members] [american-prefix] -americans - -[american-prefix] african - asian - elbonian - native - mexican diff --git a/RGens/data/sample-grammars/part-creature.gram b/RGens/data/sample-grammars/part-creature.gram deleted file mode 100755 index 41bbb83..0000000 --- a/RGens/data/sample-grammars/part-creature.gram +++ /dev/null @@ -1,137 +0,0 @@ -[full-creature] a(n) [creature-choice] - a(n) [quote-creature] fused with a(n) [quote-creature] - chimera of a(n) [quote-creature] , a(n) [quote-creature] and a(n) [quote-creature] - -[quote-creature] ( [creature-choice] ) - -pragma despace-rule [quote-creature] - -[creature-choice] [creature] - -pragma prefix-with [creature-choice] [characteristics] -pragma prefix-with [creature-choice] [abilities] -pragma prefix-with [creature-choice] [characteristics] -pragma prefix-with [creature-choice] [abilities] - -pragma initial-rule [full-creature] -pragma export-rule [creature-choice] - -[abilities] [ability] - [ability] - [ability] - [ability] - [quote-ability] and [quote-ability] - [quote-ability] and [quote-ability] - [quote-ability] , [quote-ability] and [quote-ability] - -[quote-ability] ( [ability] ) - -pragma despace-rule [quote-ability] - -[ability] flying - invisible - silent - ethereal - telepathic - eye beams - swallow whole - poisonous - regenerating - anti-magic - petrifying - frightful presence - confusing - flesh grinding - radioactive - rust - acidic - nauseating - [eating] - [elemental-type] -breathing - [elemental-type] -eating - [elemental-type] -immune - [elemental-type] -resistant - -[eating] [characteristic] -eating - [creature] -eating - -pragma despace-rule [eating] - -# @TODO 10/26/17 Ben Culkin :CharacteristicAdditions -# Add more templates and classes to the list - -[characteristics] [characteristic] - [characteristic] - [characteristic] - [characteristic] - [quote-characteristic] and [quote-characteristic] - [quote-characteristic] and [quote-characteristic] - [quote-characteristic] , [quote-characteristic] and [quote-characteristic] - -[quote-characteristic] ( [characteristic] ) - -pragma despace-rule [quote-characteristic] - -[characteristic] zombie - vampire - swarm - samurai - barbarian - wizard - ninja - robot - rabid - demonic - awakened - feral - pirate - gelatinous - dire - shadow - rich - [partial-breed] - [were] - [elemental-adv] [characteristic] - -[were] were- [characteristic] - were- [creature] - -pragma despace-rule [were] - -[partial-breed] half- [creature] - quarter- [creature] - -pragma despace-rule [partial-breed] - -[creature] shark - bear - lion - badger - wolf - ape - squid - snake - weasel - tyrannosaurus - crocodile - bee - spider - dragon - dire penguin - giant mini space hamster - camel - little girl - classy kobold - disenchanter - [elemental] - [elemental-type] - living [elemental-type] - [dungeon-mimic] - [^creature] - [humanoid] - [creature-epic] - -[dungeon-mimic] trapper - mimic - lurker - cloaker diff --git a/RGens/data/sample-grammars/phone-number.gram b/RGens/data/sample-grammars/phone-number.gram deleted file mode 100644 index 163ef4a..0000000 --- a/RGens/data/sample-grammars/phone-number.gram +++ /dev/null @@ -1,29 +0,0 @@ -[us-phone-number] [area+code] [full+num] - [intl+num] - [area+code] [full+num] - [area+code] [letter+num] - [1800+num] - [1800+letter+num] - -[extension] ext. [ext+num] - -pragma suffix-with [us-phone-number] [extension] -pragma export-rule [us-phone-number] - -[area+code] ( [digit] [digit] [digit] ) - -[full+num] [digit] [digit] [digit] - [digit] [digit] [digit] [digit] - -[intl+num] [1..100] - [full+num] - -[ext+num] [digit-nonzero] [digit] [digit] - -pragma suffix-with [ext+num] [digit] -pragma suffix-with [ext+num] [digit] -pragma suffix-with [ext+num] [digit] - -[letter+num] [digit] [digit] [digit] - [letter] [letter] [letter] [letter] - -[1800+num] 1-800- [digit] [digit] [digit] - [digit] [digit] [digit] [digit] - -[1800+letter+num] 1-800- [letter] [letter] [letter] [letter] [letter] [letter] [letter] diff --git a/RGens/data/sample-grammars/pokeattacks.gram b/RGens/data/sample-grammars/pokeattacks.gram deleted file mode 100755 index 649f42c..0000000 --- a/RGens/data/sample-grammars/pokeattacks.gram +++ /dev/null @@ -1,124 +0,0 @@ -[pokeattack] [pokeattack-name] - -[attack-type] ( [poke-type] type) - ( [poke-type] / [poke-type] type) - -[attack-pp] ( [5..40] pp ) - -pragma despace-rule [attack-type] -pragma despace-rule [attack-pp] - -pragma suffix-with [pokeattack] [move-kind] -pragma suffix-with [pokeattack] [attack-type] -pragma suffix-with [pokeattack] [attack-pp] - -[pokeattack-name] [word-1] [word-1] - [word-2] [word-2] - [word-1] [word-2] - [word-2] [word-1] - [word-1] [seperator] [word-1] - [word-2] [seperator] [word-2] - [word-1] [seperator] [word-2] - [word-2] [seperator] [word-1] - [word-1] [seperator] [word-1] - [word-2] [seperator] [word-2] - [word-1] [seperator] [word-2] - [word-2] [seperator] [word-1] - -[seperator] - - / - and - -[move-kind] (special move) - (physical move) - -[poke-type] normal - fire - fighting - water - flying - grass - poison - electric - ground - psychic - rock - ice - bug - dragon - ghost - dark - steel - fairy - -pragma initial-rule [pokeattack] -pragma export-rule [pokeattack-name] - -[word-11] [word-1] - -pragma suffix-with [word-11] [seperator] - -[word-21] [word-2] - -pragma prefix-with [word-21] [seperator] - -pragma prefix-with [pokeattack-name] [word-1] -pragma suffix-with [pokeattack-name] [word-2] - -[word-1] acid - aerial - air - ancient - aqua - aura - aurora - baton - beat - belly - blast - blaze - body - bone - comet - confuse - cotton - cross - dark - destiny - diamond - dizzy - doom - dragon - dream - dynamic - earth - egg - electric - energy - -[word-2] terrain - ball - impulse - bomb - speed - lock - wind - stinger - dance - gambit - blast - fang - punch - spin - burst - charge - wheel - blitz - cannon - drink - eye - shot - sun - slap - wrath - blade diff --git a/RGens/data/sample-grammars/president.gram b/RGens/data/sample-grammars/president.gram deleted file mode 100644 index 63b928c..0000000 --- a/RGens/data/sample-grammars/president.gram +++ /dev/null @@ -1,64 +0,0 @@ -[us-president] george washington - john adams - thomas jefferson - james madison - james monroe - john quincy adams - andrew jackson - martin van buren - william henry harrison - john tyler - james polk - zachary taylor - millard fillmore - franklin pierce - james buchanan - abraham lincoln - andrew johnson - ulysses s grant - rutherford b. hayes - james garfield - chester a. arthur - grover cleveland - benjamin harrison - william mckinley - theodore roosevelt - william taft - woodrow wilson - warren g. harding - calvin coolidge - herbert hoover - franklin d. roosevelt - harry s truman - dwight eisenhower - john f. kennedy - lyndon b. johnson - richard nixon - gerald ford - jimmie carter - ronald reagan - george bush - bill clinton - george w. bush - barack obama - donald trump - -[us-president-common] washington - adams - jefferson - madison - monroe - adams - jackson - van buren - harrison - taylor - lincoln - johnson - garfield - roosevelt - wilson - truman - -pragma export-rule [us-president] -pragma export-rule [us-president-common] diff --git a/RGens/data/sample-grammars/rtwiki/adjective.gram b/RGens/data/sample-grammars/rtwiki/adjective.gram deleted file mode 100644 index 09168aa..0000000 --- a/RGens/data/sample-grammars/rtwiki/adjective.gram +++ /dev/null @@ -1,34 +0,0 @@ -[adjective1] flying - broken - shining - salty - flaming - slaughtered - fighting - drunken - olde - cracked - dirty - dancing - laughing - wheezing - mighty - stalwart - dripping - swaying - bitter - beefy - sleeping - leaping - prancing - -[adjective2] curious - happy - lusty - rude - lazy - greedy - jealous - zealous - angry - vulgar diff --git a/RGens/data/sample-grammars/rtwiki/bodyparts.gram b/RGens/data/sample-grammars/rtwiki/bodyparts.gram deleted file mode 100644 index 71b4924..0000000 --- a/RGens/data/sample-grammars/rtwiki/bodyparts.gram +++ /dev/null @@ -1,74 +0,0 @@ -[bodypart] fist - throat - stomach - big toe - eye - knee - mouth - heel - chest - belly - kidney - thigh - belly button - shoulder - abdomen - tongue - feet - collar bone - fingernail - forehead - ear - gums - ankle - teeth - jaw - eyelashes - ear lobe - palm - hip - index finger - teeth - nostril - back - toes - nipple - neck - bottom - ribs - wrist - nose - chin - pinky finger - humerus - upper arm - legs - finger - eyelid - testes - foot - hand - breast - groin - underarm - elbow - toenail - waist - spine - balls of the feet - thumn - lips - eyebrow - scalp - cheek - buttocks - hair - lower leg - calves - face - shoulder blade - shin - arm - forearm - -pragma export-rule [bodypart] diff --git a/RGens/data/sample-grammars/rtwiki/class.gram b/RGens/data/sample-grammars/rtwiki/class.gram deleted file mode 100644 index 8fcb17c..0000000 --- a/RGens/data/sample-grammars/rtwiki/class.gram +++ /dev/null @@ -1,11 +0,0 @@ -[Utility/Class] Barbarian - Bard - Cleric - Druid - Fighter - Monk - Paladin - Ranger - Rogue - Sorceror - Wizard diff --git a/RGens/data/sample-grammars/rtwiki/color.gram b/RGens/data/sample-grammars/rtwiki/color.gram deleted file mode 100644 index 346f73b..0000000 --- a/RGens/data/sample-grammars/rtwiki/color.gram +++ /dev/null @@ -1,569 +0,0 @@ -[color-phrases] [color-phrase] - [multi-color-phrases] - -[multi-color-phrases] [color-phrase] blended with [color-phrase] - a blend between [color-phrase] , [color-phrase] and [color-phrase] - something between [color-phrase] and [color-phrase] - something between [color-phrase] , [color-phrase] and [color-phrase] - -pragma initial-rule [color-phrases] - -[color-phrase] [complete-color] - [sw-complete-color] - [sw-complete-color] [complete-color] - [sw-complete-color] - [complete-color] - [sw-complete-color] [sw-complete-color] - [sw-complete-color] - [sw-complete-color] - -pragma export-rule [color-phrase] - -[sw-color-phrase] [sw-complete-color] - [sw-complete-color] [sw-complete-color] - [sw-complete-color] - [sw-complete-color] - -pragma export-rule [sw-color-phrase] - -[complete-color] {wtype=mw} [act-complete-color] - -pragma despace-rule [complete-color] -pragma export-rule [complete-color] - -[sw-complete-color] [act-sw-complete-color] - [act-sw-complete-color] ish - -pragma despace-rule [sw-complete-color] -pragma export-rule [sw-complete-color] - -[act-sw-complete-color] {wtype=sw} [act-complete-color] - -pragma despace-rule [act-sw-complete-color] - -[act-complete-color] [standard] - [red-purple] - [yellow-orange] - [green-blue] - [brown-neutral] - [jewel] - [metallic] - [heraldic] - -[other-color] [archaic-purple] - [archaic-green] - [archaic-brown] - [anachronistic] - -[standard] red - orange - ochre - yellow - green - olive - blue - navy - indigo - violet - purple - beige - brown - cream - khaki - tan - ivory - white - blue-gray - [gray] - black - ebony - copper - gold - silver - [$wtype-standard] - [$wtype-standard] - [$wtype-standard] - [$wtype-standard] - transparent - -[gray] gray - grey - -[sw-standard] iridescent - opalescent - rainbow - -[mw-standard] [iridescent] - [opalescent] - [ombre] - [rainbow] - -[iridescent] iridescent [color] - iridescent between [color] and [color] - -[opalescent] opalescent [color] - -[ombre] [color] (tinted [color] ) - -[rainbow] rainbow of red, orange, yellow, green, blue, indigo and violet - [custom-rainbow] - -[custom-rainbow] rainbow of [color] - -pragma suffix-with [custom-rainbow] [com-color] -pragma suffix-with [custom-rainbow] [com-color] -pragma suffix-with [custom-rainbow] [com-color] -pragma suffix-with [custom-rainbow] [com-color] -pragma suffix-with [custom-rainbow] [com-color] -pragma suffix-with [custom-rainbow] [and-color] - -[com-color] , [color] - -[and-color] and [color] - -[red-purple] auburn - blood - brick - burgundy - cardinal - carmine - cherry - cinnabar - crimson - incarnadine - maroon - oxblood - pink - puce - raspberry - rose - scarlet - amaranth - aubergine - heliotrope - iris - lavender - lilac - mulberry - orchid - plum - porphyry - violet - wine - wisteria - -[yellow-orange] butter - canary - citrine - ecru - flax - gold - goldenrod - honey - jasmine - jaundiced - lemon - maize - mustard - primrose - saffron - straw - turmeric - annatto - apricot - carrot - marigold - ochre - peach - persimmon - poppy - pumpkin - salmon - tangerine - tomato - vermilion - -[green-blue] baby blue - cerulean - cobalt - cornflower - denim - iris - midnight - navy - periwinkle - robin's egg blue - royal blue - sky blue - ultramarine - artichoke - avocado - chartreuse - forest green - grass green - harlequin - honeydew - hunter green - jungle green - lime - mint - moss - myrtle - olive - pistachio - sea-green - teal - -[brown-neutral] beaver - bistre - buff - camel - chestnut - chocolate - coffee - fawn - khaki - mahogany - russet - sand - sienna - sepia - taupe - tawny - terra cotta - umber - cornsilk - eggshell - snow - vanilla - whey - ash - charcoal - cool gray - slate - warm gray - ebony - licorice - -[jewel] amber - amethyst - aquamarine - aventurine - bone - carnelian - chrysophrase - citrine - copal - coral - diamond - emerald - garnet - ivory - jacinth - jade - jet - lapis lazuli - malachite - obsidian - onyx - [$wtype-jewel] - pearlescent - peridot - ruby - sapphire - sardonyx - topaz - tourmaline - turquoise - -[sw-jewel] opalescent - -[mw-jewel] [opalescent] - -[metallic] brass - bronze - chrome - copper - gold - gunmetal - iron - pewter - platinum - rust - silver - steel - titanium - verdigris - white gold - -[heraldic] argent - azure - carnation - celeste - cendree - gules - or - murrey - purpure - sable - rose - sanguine - tenne - vert - white - -[archaic-purple] [$wtype-archaic-purple] - -[sw-archaic-purple] arcipluvian - ianthine - rhodopsin - solferino - coccineous - cramoisy - erythraen - lateritious - miniaceous - piceous - puccoon - stammel - vinious - nacarat - coquelicot - croceate - ibis - minium - vermeil - citreous - flavescent - icterine - jessamy - jonquil - luteous - meline - ochroleucous - orpiment - sulphureous - urobilin - -[mw-archaic-purple] arcipluvian [arcipluvian] - ianthine (violet) - rhodopsin (purple) - solferino (purple) - coccineous (bright red) - cramoisy (crimson) - erythraen (reddish) - lateritious (brick red) - miniaceous (red) - piceous (reddish-black) - puccoon (blood red) - stammel (red) - vinious (deep red) - nacarat (orange-red) - coquelicot (poppy) - croceate (saffron) - ibis (apricot) - minium (vermilion) - vermeil (vermilion) - citreous (lemon) - flavescent (yellowish) - icterine (jaundice-yellow) - jessamy (jasmine) - jonquil (yellow) - luteous (golden yellow) - meline (canary) - ochroleucous (yellow-white) - orpiment (yellow) - sulphureous (bright yellow) - urobilin (urine-colored) - -[arcipluvian] (varies between [color] and [color] ) - (varies between [color] , [color] and [color] ) - (varies between [color] , [color] , [color] and [color] ) - (varies between [color] , [color] and [color] ) - -[archaic-green] [$wtype-archaic-green] - -[sw-archaic-green] bilious - chrysochlorous - tilleul - celadon - chlorochorous - corbeau - porraceous - virescent - viridian - zinnober - bice - caesious - glaucous - lovat - azuline - mazarine - pavonated - smalt - watchet - woad - atrous - eburnean - griseous - nacreous - smaragdine - aeneous - ferruginous - hoary - plumbeous - rubiginous - -[mw-archaic-green] bilious (yellow-green) - chrysochlorous (green-gold) - tilleul (yellow-green) - celadon (pale green) - chlorochorous (green) - corbeau (green-black) - porraceous (leek green) - virescent (green or greenish) - viridian (green) - zinnober (green) - bice (green or blue) - caesious (blue- or gray-green) - glaucous (bluish-gray or green) - lovat (gray- or blue-green) - azuline (blue) - mazarine (blue or reddish-blue) - pavonated (peacock blue) - smalt (deep blue) - watchet (pale blue) - woad (blue) - atrous (jet black) - eburnean (ivory) - griseous (pearl-gray) - nacreous (pearlescent) - smaragdine (emerald) - aeneous (bronze) - ferruginous (rusty) - hoary (pale silver-gray) - plumbeous (lead white) - rubiginous (rusty) - -[archaic-brown] [$wtype-archaic-brown] - -[sw-archaic-brown] badious (chestnut) - bole - burnet - castaneous - castory - filemot - fulvous - fuscous - infuscate - melichrous - nankeen - pyrrhous - rufous - sarcoline - spadiceous - stramineous - albicant - canescent - cretaceous - leucochroic - niveious - cinereous - columbine - fuliginous - greige - gridelin - isabelline - liard - welmish - morel - -[mw-archaic-brown] badious (chestnut) - bole (reddish-brown) - burnet (dark brown) - castaneous (chestnut) - castory (beaver) - filemot (dead leaf brown) - fulvous (dull reddish- or brownish-yellow) - fuscous (brown, tawny, dingy) - infuscate (cloudy brown) - melichrous (honey) - nankeen (buff) - pyrrhous (ruddy) - rufous (reddish-brown) - sarcoline (caucasian flesh) - spadiceous (chestnut) - stramineous (straw-colored) - albicant (turning white) - canescent (hoary, grayish-white) - cretaceous (chalky) - leucochroic (white, pale) - niveious (snowy) - cinereous (ashen) - columbine (dove-colored) - fuliginous (sooty, dusky) - greige (gray-beige) - gridelin (violet-gray) - isabelline (yellow-gray) - liard (dapple-gray) - welmish (pale, sickly) - morel (black) - -[anachronistic] [$wtype-anachronistic] - -[sw-anachronistic] cyan - fuchsia - hot pink - magenta - mauve - safety orange - dolm - fuligin - garrow - vantablack - jale - octarine - pallow - rawn - smaudre - ulfire - infrared - ultraviolet - reflective - fluorescent [color] - hypercolor - iridescent - metameric - opalescent - phosphorescent [color] - rainbow - translucent [color] - transparent - -[mw-anachronistic] cyan - fuchsia - hot pink - magenta - mauve - safety orange - dolm - fuligin - garrow - vantablack - jale - octarine - pallow - rawn - smaudre - ulfire - infrared - ultraviolet - reflective - fluorescent [color] - freezy freakies ( [color] normally, [color] when cold) - hypercolor ( [color] normally, [color] when hot) - [iridescent] - metameric (appears as [color] , but is really [color] ) - [ombre] - [opalescent] - phosphorescent [color] - [rainbow] - translucent [color] - transparent diff --git a/RGens/data/sample-grammars/rtwiki/creature.gram b/RGens/data/sample-grammars/rtwiki/creature.gram deleted file mode 100644 index b3f7b92..0000000 --- a/RGens/data/sample-grammars/rtwiki/creature.gram +++ /dev/null @@ -1,79 +0,0 @@ -[creature] bear - boar - bull - cow - horse - hound - lamb - lion - serpent - stag - tiger - wolf - sturgeon - elk - badger - hare - bat - lizard - squirrel - fox - dolphin - panther - ram - goat - beaver - mountain lion - tortoise - pike - frog - rat - mare - stallion - plowhorse - ox - elephant - -[creature-epic] aboleth - chimera - cyclops - demon - devil - dinosaur - dragon - elemental - giant - golem - griffon - hydra - kraken - lycanthrope - medusa - minotaur - roc - treant - vampire - -[humanoid] bugbear - drow - dwarf - elf - fairy - gnoll - gnome - half-elf - half-orc - halfling - hobgoblin - human - kobold - merfolk - nymph - ogre - orc - tiefling - troglodyte - -pragma export-rule [creature] -pragma export-rule [creature-epic] -pragma export-rule [humanoid] diff --git a/RGens/data/sample-grammars/rtwiki/death-cause.gram b/RGens/data/sample-grammars/rtwiki/death-cause.gram deleted file mode 100644 index 74e58e8..0000000 --- a/RGens/data/sample-grammars/rtwiki/death-cause.gram +++ /dev/null @@ -1,108 +0,0 @@ -[death-cause] by heart attack - by aneurysm - by lingering undiagnosed disease - by allergic reaction - by seizure - by dehydration - by blood infection - by blood-borne parasite - by malnutrition - by plague - by hunger - by having eyes gouged out - by transmitted disease often associated with prostitutes - by emphysema - by misdiagnosis (and wrong treatment) by health provider - by heart disease - by hypothermia - by sliced open wrists - by self-inflicted shot to the head - by hanging with a belt around the neck - by intentionally jumping from a dangerous height - by attacking an armed person - by ingesting toxic substances - by bleeding out from loss of limb - by attempting self-amputation to free oneself - by addiction withdrawals - by a falling object - by falling into a sinkhole - by accidentally tripping and falling from a dangerous height - by tripping and striking his head - by inhaling toxic spores from a mushroom - by infected paper cut - by infected wood splinter - by stepping on a rusty nail - by a hunter mistaking the person for an animal - by blunt-force trauma to the head - by piercing blow to the head - by unintentional amputation - by electrical shock - by acid burns - by being bludgeoned by fists - by beheading - by random homicide - by premeditated homicide by a friend or loved one - by premeditated homicide by an enemy - by murder-suicide - by hired hit-man who killed [Character/Deaths] - by hidden explosive intended for the deceased - by hidden explosive intended for someone else - by being in the wrong-place at the wrong-time as a bystander during a crime - by unruly mob - by stoning - by being burned alive - by shop owner while attempting to rob the shop - by execution squad - by [Character/Torture] torture - by goring from a wild animal attempting to protects young - by trampling from wild animals during a stampede - by flying stinging insects - by serpent-bite - by a swarm of biting insects - by deadly spider - by being hunted by an apex predator - by a highly-trained attack [Monster/Animals] - by a rabid wombat mauling - by bite from a Gila monster - by shark attack - by a lightning strike - by a flash flood - by a tornado - by a hurricane - by a volcanic eruption - by earthquake - by heat stroke - by hailstones - by exposure to the elements - by sandstorm - by falling into an open mineshaft - by drowning - by alcohol poisoning - by attempting an extreme stunt - by playing a rough sport - by accidental death while training with a weapon - by overdose - by mixing medications - by germ-tainted food (food poisoning) - by eating harmful wild fruits - by raining frogs - by stray projectile from out of nowhere - by sacrifice to an obscure cult - by rare medicinal side-effect - by brain parasites - by a disease unknown to medicine - by fear from something supernatural - by dissection on alien ship - by spontaneous human combustion - by petrification of a gorgon - by a hilltop gazebo - by crucifixion - by act of god - -[Monster/Animals] {{empty}} - -[Character/Torture] {{empty}} - -[Character/Deaths] {{empty}} - -pragma export-rule [death-cause] diff --git a/RGens/data/sample-grammars/rtwiki/fantasy-name.gram b/RGens/data/sample-grammars/rtwiki/fantasy-name.gram deleted file mode 100644 index c4ce02e..0000000 --- a/RGens/data/sample-grammars/rtwiki/fantasy-name.gram +++ /dev/null @@ -1,176 +0,0 @@ -[fantasy-name] [fantasy+name] - -pragma initial-rule [fantasy-name] - -[fantasy+name] [name-root1] [name-root2] - [name-root1] [name-root3] - [name-root1] [name-root2] [name-root3] - -[name-root1] ag - al - alf - anna - anor - aren - ary - atha - ban - bel - ben - bra - buc - car - cars - cor - cris - crys - dag - dali - dam - damar - draga - edda - fa - fana - futha - ga - grav - grom - hadra - hagal - hes - igni - inver - ippa - ka - kel - kyra - lar - lyr - mal - maran - mat - noc - odi - olaf - ora - radi - rai - row - rowa - say - sel - shad - stal - tala - taras - tir - un - unn - ven - vida - wer - wyr - yar - ys - za - zel - -[name-root2] ada - ar - ary - atr - bar - bìn - burr - byr - cal - can - cane - cel - cor - dale - dor - e - es - eth - for - gan - gann - han - is - kel - kos - la - lan - mar - mar - mas - mer - mer - moor - mor - mur - myr - nyr - or - os - pad - pas - ped - pen - per - pon - pyr - ran - ter - ula - ura - urr - us - val - van - wa - ward - yal - yan - yas - zar - zer - -[name-root3] aren - ayth - cir - dia - dua - ela - era - erla - fora - gath - gith - hisa - ir - ira - la - lor - los - lum - mir - myr - na - nare - nos - plen - radas - rath - roth - rya - sar - sil - sol - tas - us - vyr - wug - yara diff --git a/RGens/data/sample-grammars/rtwiki/favorite.gram b/RGens/data/sample-grammars/rtwiki/favorite.gram deleted file mode 100644 index ba1468a..0000000 --- a/RGens/data/sample-grammars/rtwiki/favorite.gram +++ /dev/null @@ -1,24 +0,0 @@ -[favorite-food] My favorite foods are [fruit] , [vegetable] and [meat] - -pragma initial-rule [favorite-food] - -[fruit] apple - banana - cherry - -[vegetable] potato - okra - brussel sprouts - broccoli - peas - cauliflower - radish - green beans - -[meat] hamburgers - hot dogs - salmon - beef - chicken - pork - fish diff --git a/RGens/data/sample-grammars/rtwiki/guns.gram b/RGens/data/sample-grammars/rtwiki/guns.gram deleted file mode 100644 index 269aa0d..0000000 --- a/RGens/data/sample-grammars/rtwiki/guns.gram +++ /dev/null @@ -1,234 +0,0 @@ -[gun-phrase] [quote-gunname] was released today - [quote-gunname] vs. [quote-gunname] shootout - [quote-guncorp] is going out of business - [quote-guncorp] was bought by [quote-guncorp] - -[quote-gunname] ( [gun-name] ) - -[quote-guncorp] ( [guncorp] ) - -pragma initial-rule [gun-phrase] - -[gun-name] [1gun-name] - [2gun-name2] - [1gun-name] - [2gun-name2] - [1gun-name] - [2gun-name2] - [2gun-name1] [2gun-name2] - [2gun-name1] [1gun-name] - [1gun-name] [2gun-name2] - [2gun-name1] [1gun-name] [2gun-name2] - -pragma prefix-with [gun-name] [2gun-name1] - -pragma export-rule [gun-name] - -[1gun-name] Chimera - Warrior - Bardiche - Courage - Grinder - Golem - Scorpion - Livewire - Honor - Wizard - Manticore - Vindicator - Cobra - Katar - Loyalty - Tango - Wendigo - Scrapper - Gorilla - Venom - Bravery - Runaway - Wraith - Challenger - Rhino - Kukri - Despair - Zulu - Tengu - Warlord - Crocodile - Naginata - Determination - Skeleton - Oni - Gladiator - Grizzly - Glaive - Powerhouse - Areo Mag - Cyclops - Veteran - Tyrannosaurus - Quarterstaff - Nano-Loader - Jiangshi - Vanquisher - Velociraptor - Trident - Humility - Badge - Minotaur - Cadet - Rottweiler - Stormcloud - Virtuous - Youxia - Sharp - Liberty - Illuminati - Dogface - Cyclone - Justice - Temple - Tatsu - Spartan - Wildfire - Scornful - Futurist - Qilin - Bogatyr - Hound - Nova - Heartache - Xiezhi - Patrolman - Mantis - Toxin - Polymath - Thrillseeker - Phoenix - Centurion - Noble - Motivator - Rakshasa - Watchman - Cockroach - Claw - Unifier - Headhunter - Draugr - Inquisitor - Maggot - Biter - Taskmaster - -[2gun-name1] Dire - White - Hard - Decision - Grim - Black - Purring - Night - Orphan - Lead - Final - -[2gun-name2] Wolf - Knight - Truth - Maker - Reaper - Lion - Unicorn - Kitten - Cat - Owl - Maker - Widow - Poisoner - Remedy - -[guncorp] [guncorp-1] - [guncorp-1] [guncorp-2] - [guncorp-1] [guncorp-2] - [guncorp-1] [guncorp-2] - [guncorp-1] [guncorp-1] [guncorp-2] - [guncorp-1] - [guncorp-1] [guncorp-2] - [guncorp-1] and [guncorp-1] [guncorp-2] - [guncorp-1] / [guncorp-1] [guncorp-2] - -pragma export-rule [guncorp] - -[guncorp-1] Ace-Eight - Akinyemi - Anasi - Atmaghata - Brainfuck - Choral Hardtech - Double Six - Death's Head - Exomorph - Fury - Pactkeeper - Bereitschaft - Godfist - Golovanov - Ishtar - Jiandao - Hachiman - Hivewerks - Honeybadger - Kaamat-Bandi - Nadel - Neo-Ordinance - Nekrasova - Onwudiwe - Pallas Athena - Pryhn - Quliang - Raventech - Riverboat - Sekhmet - Skullkorp - Southern - Takein - Thorhammer - Ultraviolet - Waspmill - Xuguan-Fuchang - Yttrium - Zoahou - Zurgug - -[guncorp-2] Industrial - Firearms - Manufacturing - Group - Limited - Ventures - Security - Enterprises - Technica - Sports - Copperhead - GmbH - Corporation - Amerika - Macrotech - Fangyu - Omnitech - Sporting Arms - Hauserkampf - Armaments - Group - Industries - Interstellar Arms - Weaponsmiths - Industrial Warfare - Dwarfhold - Personal Weaponry - Urban - Thunderbolt - Counterstrike - Galactic - Unlimited - Tribal Alliance diff --git a/RGens/data/sample-grammars/rtwiki/item.gram b/RGens/data/sample-grammars/rtwiki/item.gram deleted file mode 100644 index 601710a..0000000 --- a/RGens/data/sample-grammars/rtwiki/item.gram +++ /dev/null @@ -1,73 +0,0 @@ -[item] [act-item] - [act-item] - [act-item] of the [act-item] - -[act-item] [body] - [music] - [symbol] - [thing] - [weapon] - -pragma initial-rule [item] - -[body] arm - open eye - closed eye - foot - gauntlet - clenched hand - open hand - head - helm - heart - mouth - skull - tail - -[music] bagpipe - bell - drum - dulcimer - flute - harp - harpsichord - lute - recorder - tambourine - -[symbol] arcane symbol - divine symbol - full moon - crescent moon - star - sunburst - waves - -[thing] anchor - candle - castle - chalice - coin - flag - goblet - shield - tankard - temple - tree - wagon - wheel - wreath - -[weapon] arrow - axe - blade - bow - club - dagger - flail - mace - polearm - quarterstaff - spear - sword - whip diff --git a/RGens/data/sample-grammars/rtwiki/traits.gram b/RGens/data/sample-grammars/rtwiki/traits.gram deleted file mode 100644 index c3ff790..0000000 --- a/RGens/data/sample-grammars/rtwiki/traits.gram +++ /dev/null @@ -1,1002 +0,0 @@ -[personality-trait] Able - Abrasive - Abrupt - Absent Minded - Abusive - Accepting - Accident Prone - Accommodating - Accomplished - Action Oriented - Active - Adaptable - Addict - ADHD - Adorable - Adventurous - Affable - Affected - Affectionate - Afraid - Afraid Of Commitment - Aggressive - Agnostic - Agreeable - Alert - Alluring - Aloof - Altruistic - Always Hungry - Always Late - Ambiguous - Ambitious - Amiable - Amused - Amusing - Angry - Animated - Annoyed - Annoying - Anti-Social - Anxious - Apathetic - Apologetic - Appreciative - Apprehensive - Approachable - Argumentative - Aristocratic - Arrogant - Artistic - Ashamed - Aspiring - Assertive - Astonished - Attentive - Audacious - Austere - Authoritarian - Authoritative - Available - Average - Awful - Awkward - Babbling - Babyish - Bad - Bashful - Beautiful - Belligerent - Bewildered - Biter - Blames Others - Blasé - Blowhard - Boastful - Boisterous - Bold - Boorish - Bored - Boring - Bossy - Boundless - Brainy - Brash - Bratty - Brave - Brazen - Bright - Brilliant - Brotherly - Brutish - Bubbly - Busy - Calculating - Callous - Calm - Candid - Capable - Capricious - Carefree - Careful - Careless - Caring - Caustic - Cautious - Changeable - Charismatic - Charming - Chaste - Cheerful - Cheerless - Childish - Chivalrous - Civilised - Classy - Clean - Clever - Close - Closed - Clumsy - Coarse - Cocky - Coherent - Cold - Cold Hearted - Combative - Comfortable - Committed - Communicative - Compassionate - Competent - Complacent - Compliant - Composed - Compulsive - Conceited - Concerned - Condescending - Confident - Confused - Congenial - Conscientious - Considerate - Consistent - Constricting - Content - Contented - Contrarian - Contrite - Controlling - Conversational - Cooperative - Coquettish - Courageous - Courteous - Covetous - Cowardly - Cowering - Coy - Crabby - Crafty - Cranky - Crazy - Creative - Credible - Creepy - Critical - Cross - Crude - Cruel - Cuddly - Cultured - Curious - Cutthroat - Cynical - Dainty - Dangerous - Daring - Dark - Dashing - Dauntless - Dazzling - Debonair - Deceitful - Deceiving - Decent - Decisive - Decorous - Deep - Defeated - Defective - Deferential - Defiant - Deliberate - Delicate - Delightful - Demanding - Demonic - Dependable - Dependent - Depressed - Deranged - Despicable - Despondent - Detached - Detailed - Determined - Devilish - Devious - Devoted - Dignified - Diligent - Direct - Disaffected - Disagreeable - Discerning - Disciplined - Discontented - Discouraged - Discreet - Disgusting - Dishonest - Disillusioned - Disinterested - Disloyal - Dismayed - Disorderly - Disorganized - Disparaging - Disrespectful - Dissatisfied - Dissolute - Distant - Distraught - Distressed - Disturbed - Dogmatic - Domineering - Dorky - Doubtful - Downtrodden - Draconian - Dramatic - Dreamer - Dreamy - Dreary - Dubious - Dull - Dumb - Dutiful - Dynamic - Eager - Easygoing - Eccentric - Educated - Effervescent - Efficient - Egocentric - Egotistic - Elated - Eloquent - Embarrassed - Embittered - Embraces Change - Eminent - Emotional - Empathetic - Enchanting - Encouraging - Enduring - Energetic - Engaging - Enigmatic - Entertaining - Enthusiastic - Envious - Equable - Erratic - Ethical - Evasive - Evil - Exacting - Excellent - Excessive - Excitable - Excited - Exclusive - Expansive - Expert - Extravagant - Extreme - Exuberant - Fabulous - Facetious - Faded - Fair - Faith In Self - Faithful - Faithless - Fake - Fanatical - Fanciful - Fantastic - Fatalistic - Fearful - Fearless - Feisty - Ferocious - Fidgety - Fierce - Fiery - Fighter - Filthy - Fine - Finicky - Flagging - Flakey - Flamboyant - Flashy - Fleeting - Flexible - Flighty - Flippant - Flirty - Flustered - Focused - Foolish - Forceful - Forgetful - Forgiving - Formal - Fortunate - Foul - Frank - Frantic - Fresh - Fretful - Friendly - Frightened - Frigid - Frugal - Frustrated - Fuddy Duddy - Fun - Fun Loving - Funny - Furious - Furtive - Fussy - Gabby - Garrulous - Gaudy - Generous - Genial - Gentle - Giddy - Giggly - Gives Up Easily - Giving - Glamorous - Gloomy - Glorious - Glum - Goal Orientated - Good - Goofy - Graceful - Gracious - Grandiose - Grateful - Greedy - Gregarious - Grieving - Grouchy - Growly - Gruesome - Gruff - Grumpy - Guarded - Guilt Ridden - Guilty - Gullible - Haggling - Handsome - Happy - Hard - Hard Working - Hardy - Harmonious - Harried - Harsh - Hateful - Haughty - Healthy - Heart Broken - Heartless - Heavy Hearted - Hedonistic - Helpful - Helpless - Hesitant - High - High Self Esteem - Hilarious - Homeless - Honest - Honor Bound - Honorable - Hopeful - Hopeless - Hormonal - Horrible - Hospitable - Hostile - Hot Headed - Huffy - Humble - Humorous - Hurt - Hysterical - Ignorant - Ill - Ill-Bred - Imaginative - Immaculate - Immature - Immobile - Immodest - Impartial - Impatient - Imperial - Impolite - Impotent - Impractical - Impudent - Impulsive - Inactive - Incoherent - Incompetent - Inconsiderate - Inconsistent - Indecisive - Independent - Indifferent - Indiscrete - Indiscriminate - Indolent - Indulgent - Industrious - Inefficient - Inept - Inflexible - Inimitable - Innocent - Inquisitive - Insecure - Insensitive - Insightful - Insincere - Insipid - Insistent - Insolent - Instinctive - Insulting - Intellectual - Intelligent - Intense - Interested - Interrupting - Intimidating - Intolerant - Intrepid - Introspective - Introverted - Intuitive - Inventive - Involved - Irresolute - Irresponsible - Irreverent - Irritable - Irritating - Jackass - Jaded - Jealous - Jittery - Joking - Jolly - Jovial - Joyful - Joyous - Judgmental - Keen - Kenderish - Kind Hearted - Kittenish - Knowledgeable - Lackadaisical - Lacking - Languid - Lascivious - Late - Lazy - Leader - Lean - Lethargic - Level - Lewd - Liar - Licentious - Light-Hearted - Likeable - Limited - Lineat - Lingering - Lively - Logical - Lonely - Loquacious - Lordly - Loud - Loudmouth - Lovable - Lovely - Loves Challenge - Loving - Low Confidence - Lowly - Loyal - Lucky - Lunatic - Lying - Macho - Mad - Malice - Malicious - Manipulative - Mannerly - Materialistic - Matronly - Matter-Of-Fact - Mature - Mean - Meek - Melancholy - Melodramatic - Mentally Slow - Merciful - Mercurial - Messy - Meticulous - Mild - Mischievous - Miserable - Miserly - Mistrusting - Modern - Modest - Moody - Moping - Moralistic - Motherly - Motivated - Mysterious - Nagging - Naive - Narcissistic - Narrow-Minded - Nasty - Naughty - Neat - Needs Social Approval - Needy - Negative - Negligent - Nervous - Neurotic - Never Hungry - Nibbler - Nice - Night Owl - Nihilistic - Nimble - Nit Picker - No Purpose - No Self Confidence - Noble - Noisy - Nonchalant - Nosy - Not Trustworthy - Nuanced - Nuisance - Nurturing - Nut - Obedient - Obese - Obliging - Obnoxious - Obscene - Obsequious - Observant - Obstinate - Odd - Odious - Open - Open-Minded - Opinionated - Opportunistic - Optimistic - Orcish - Orderly - Organized - Ornery - Ossified - Ostentatious - Outgoing - Outrageous - Outspoken - Overbearing - Overweight - Overwhelmed - Overwhelming - Paces - Pacifistic - Painstaking - Panicky - Paranoid - Particular - Passionate - Passive - Passive-Aggressive - Pathetic - Patient - Patriotic - Peaceful - Penitent - Pensive - Perfect - Perfectionist - Performer - Perserverant - Perseveres - Persevering - Persistent - Persuasive - Pert - Perverse - Pessimistic - Petty - Petulant - Philanthropic - Picky - Pious - Pitiful - Placid - Plain - Playful - Pleasant - Pleasing - Plotting - Plucky - Polite - Pompous - Poor - Popular - Positive - Possessive - Practical - Precise - Predictable - Preoccupied - Pretentious - Pretty - Prim - Primitive - Productive - Profane - Professional - Promiscuous - Proper - Protective - Proud - Prudent - Psychotic - Puckish - Punctilious - Punctual - Purposeful - Pushy - Puzzled - Quarrelsome - Queer - Quick - Quick Tempered - Quiet - Quirky - Quixotic - Rambunctious - Random - Rash - Rational - Rawboned - Realistic - Reasonable - Rebellious - Recalcitrant - Receptive - Reckless - Reclusive - Refined - Reflective - Regretful - Rejects Change - Relaxed - Relents - Reliable - Relieved - Religious - Reluctant - Remorseful - Repugnant - Repulsive - Resentful - Reserved - Resilient - Resolute - Resourceful - Respectful - Responsible - Responsive - Restless - Retiring - Rhetorical - Rich - Right - Righteous - Rigid - Risk-Taking - Romantic - Rough - Rowdy - Rude - Rugged - Ruthless - Sacrificing - Sad - Sadistic - Safe - Sagely - Saintly - Salient - Sanctimonious - Sanguine - Sarcastic - Sassy - Satisfied - Saucy - Savage - Scared - Scarred - Scary - Scattered - Scheming - Scornful - Scrawny - Scruffy - Secretive - Secure - Sedate - Seductive - Selective - Self-Centered - Self-Confident - Self-Conscious - Self-Controlling - Self-Directed - Self-Disciplined - Self-Giving - Self-Reliant - Self-Serving - Selfish - Selfless - Senile - Sensitive - Sensual - Sentimental - Serene - Serious - Sexual - Sexy - Shallow - Shameless - Sharp - Sharp-Tongued - Sharp-Witted - Sheepish - Shiftless - Shifty - Short - Shrewd - Shy - Silent - Silky - Silly - Simian - Simple - Sincere - Sisterly - Skillful - Sleazy - Sloppy - Slovenly - Slow Paced - Slutty - Sly - Small-Minded - Smart - Smiling - Smooth - Sneaky - Snob - Sociable - Soft-Hearted - Soft-Spoken - Solitary - Sore - Sorry - Sour - Spendthrift - Spiteful - Splendid - Spoiled - Spontaneous - Spunky - Squeamish - Stately - Static - Steadfast - Sterile - Stern - Stimulating - Stingy - Stoical - Stolid - Straight Laced - Strange - Strict - Strident - Strong - Strong Willed - Stubborn - Studious - Stupid - Suave - Submissive - Successful - Succinct - Sulky - Sullen - Sultry - Supercilious - Superstitious - Supportive - Surly - Suspicious - Sweet - Sympathetic - Systematic - Taciturn - Tacky - Tactful - Tactless - Talented - Talkative - Tall - Tardy - Tasteful - Temperamental - Temperate - Tenacious - Tense - Tentative - Terrible - Terrified - Testy - Thankful - Thankless - Thick Skinned - Thorough - Thoughtful - Thoughtless - Threatening - Thrifty - Thrilled - Tight - Timid - Tired - Tireless - Tiresome - Tolerant - Touchy - Tough - Trivial - Troubled - Truculent - Trusting - Trustworthy - Truthful - Typical - Ugly - Unappreciative - Unassuming - Unbending - Unbiased - Uncaring - Uncommitted - Unconcerned - Uncontrolled - Unconventional - Uncooperative - Uncoordinated - Uncouth - Undependable - Understanding - Undesirable - Undisciplined - Unenthusiastic - Unfeeling - Unfocused - Unforgiving - Unfriendly - Ungrateful - Unhappy - Unhelpful - Uninhibited - Unkind - Unmotivated - Unpredictable - Unreasonable - Unreceptive - Unreliable - Unresponsive - Unrestrained - Unruly - Unscrupulous - Unselfish - Unsure - Unsympathetic - Unsystematic - Unusual - Unwilling - Upbeat - Upset - Uptight - Useful - Vacant - Vague - Vain - Valiant - Vengeful - Venomous - Verbose - Versatile - Vigorous - Vindictive - Violent - Virtuous - Visual - Vivacious - Volatile - Voracious - Vulgar - Vulnerable - Warlike - Warm Hearted - Wary - Wasteful - Weak - Weary - Weird - Well Grounded - Whimsical - Wholesome - Wicked - Wild - Willing - Wise - Wishy Washy - Withdrawn - Witty - Worldly - Worried - Worthless - Wretched - Xenophobic - Young - Youthful - Zany - Zealot - -pragma export-rule [personality-trait] diff --git a/RGens/data/sample-grammars/rune.gram b/RGens/data/sample-grammars/rune.gram deleted file mode 100755 index 4c64e5a..0000000 --- a/RGens/data/sample-grammars/rune.gram +++ /dev/null @@ -1,116 +0,0 @@ -# @TODO 10/23/17 Ben Culkin :RuneDebug -# Something seems to be wrong with this grammar, and I'm not sure as to -# the exact details. -# -# The problem is that we are getting multiple runes running together -# without an obvious cause. - -[rune-string] [rune-2] - [rune-1] [rune-2] - [rune-1] [rune-2] [rune-3] - [rune-2] [rune-3] - -pragma initial-rule [rune-string] - -pragma prefix-with [rune-string] [rune-1] -pragma suffix-with [rune-string] [rune-3] - -[rune-1] a dagger plunged into - vines growing out of - a crown perched atop - crossed swords over - a pair of hands surrounding - demonic eyes peering out of - blue lightning arcing out of - an axe thrust into - a hand bursting from - a tentacle reaching out of - a spear thrust through - a trumpet thrust through - tiny stars surrounding - a jewel within - a hand inside - a sword inside - a hand within - an arrow piercing - a hand clutching - -[rune-2] a skull - a treasure chest - a circle cut into three parts - a pyramid - a triangle - a mushroom - a grinning mask - a clenched fist - a giant human eye - a shield - a circle - a pentagram - a pentacle - a flagon - a circle cut in half - a semicircle - a heart - a large star - a wave - a diamond - an octagon - a scroll - a spiral - a tree - a rose - a helmet - a book - a staff - a hammer - a bone - a cat’s face - a wolf’s head - a large mouth - an upward-pointing arrow - a downward-pointing arrow - an arrow pointing two directions - a circle cut into four parts - a ship - a six-pointed star - a seven-pointed star - a pentagon - -[rune-3] girded by laurels - sheathed in flames - glowing like the sun - emblazoned with a demonic face - flanked by catlike wings - in the coils of a serpent - swaddled in tentacles - flanked by feathered wings - inscribed within a red circle - inscribed within a magic circle - inscribed within a long rectangle - covered with spikes and spines - haloed in light - half in shadow - with coins all around it - with curved knives all around it - wrapped in a pair of rings - atop a tower - next to a writhing snake - atop a mountain - next to a crescent moon - made of thin red lines - made of thin blue lines - made of thin green lines - made of thin black lines - all done as a silhouette - wrapped in a cloud - dripping with blood - flanked by swords - flanked by skulls - flanked by arrows - within a ring made by a whip - within a ring made by a snake, eating its own tail - atop crossed bones - above a trident - below two spears - covered in insects diff --git a/RGens/data/sample-grammars/school.gram b/RGens/data/sample-grammars/school.gram deleted file mode 100644 index cd9298b..0000000 --- a/RGens/data/sample-grammars/school.gram +++ /dev/null @@ -1,16 +0,0 @@ -[public-school-fullname] [public-school] [school-type] - -pragma initial-rule [public-school-fullname] - -[school-type] high school - middle school - grade school - elementary school - -[public-school] [us-president] - [us-president] memorial - [person] - [last-name] - [city] central - [city] - [cardinal] [city] diff --git a/RGens/data/sample-grammars/slashdot.gram b/RGens/data/sample-grammars/slashdot.gram deleted file mode 100644 index 2b38ee3..0000000 --- a/RGens/data/sample-grammars/slashdot.gram +++ /dev/null @@ -1,62 +0,0 @@ -[slashdot-jonkatz] [jonkatz-prefix1] : [jonkatz-1] - [jonkatz-1] - -pragma initial-rule [slashdot-jonkatz] - -[jonkatz-1] [jonkatz-issues] , [jonkatz-issues] and the [jonkatz-issues2] - [jonkatz-verbs1] [jonkatz-actionsofthem] [jonkatz-issues] - [jonkatz-prefix2] [jonkatz-actionsofthem] [jonkatz-issues] - -[jonkatz-prefix1] analysis - unplugged - part [number-word] - feature - jon katz - the windbag speaks - -[jonkatz-prefix2] the rise of - brief history of - the road to - the myth of - voices from - descent into - at the crossroads of - showdown with - the era of - the power of - the death of - the nation of - some good news from - beyond - -[jonkatz-verbs1] dealing with - handling - facing - coping with - fighting - challenging - -[jonkatz-actionsofthem] war on - battle against - heavy-handed crusade against - draconian retaliation against - foolish crackdown on - crazy attempts to ban - -[jonkatz-issues] criminal libel - free speech - free music - fighting monopolies - repealing unjust laws - software patents - geek profiling - sexbots - free pornography - -[jonkatz-issues2] net - world - internet - worldwide community - web - geek population - future diff --git a/RGens/data/sample-grammars/states.gram b/RGens/data/sample-grammars/states.gram deleted file mode 100644 index 43f1402..0000000 --- a/RGens/data/sample-grammars/states.gram +++ /dev/null @@ -1,156 +0,0 @@ -[us-state] alabama - alaska - arizona - arkansas - california - colorado - connecticut - delaware - florida - georgia - hawaii - idaho - illinois - indiana - iowa - kansas - kentucky - louisiana - maine - maryland - massachusetts - michigan - minnesota - mississippi - missouri - montana - nebraska - nevada - new hampshire - new jersey - new mexico - new york - north carolina - north dakota - ohio - oklahoma - oregon - pennsylvania - rhode island - south carolina - south dakota - tennessee - texas - utah - vermont - virginia - washington - west virginia - wisconsin - wyoming - -pragma export-rule [us-state] -pragma export-rule [us-postalstate] -pragma export-rule [us-stateadj] - -[us-postalstate] al - ak - az - ar - ca - co - ct - de - fl - ga - hi - id - il - in - ia - ks - ky - la - me - md - ma - mi - mn - ms - mo - mt - ne - nv - nh - nj - nm - ny - nc - nd - oh - ok - or - pa - ri - sc - sd - tn - tx - ut - vt - va - wa - wv - wi - wy - -[us-stateadj] alabaman - alaskan - arizonan - arkansasan - californian - coloradoan - connecticutter - delawarian - floridian - georgian - hawaiian - idahoan - illinoisan - indianan - iowan - kansan - kentuckian - louisianan - maineian - marylandian - massachusettsian - michiganian - minnesotan - mississippian - missourian - montanan - nebraskan - nevadan - new hampshireian - new jerseyian - new mexican - new yorkian - north carolinan - north dakotan - ohioan - oklahoman - oregonian - pennsylvanian - rhode islander - south carolinan - south dakotan - tennesseean - texan - utahan - vermontian - virginian - washingtonian - west virginian - wisconsiner - wyominger diff --git a/RGens/data/sample-grammars/superhero.gram b/RGens/data/sample-grammars/superhero.gram deleted file mode 100755 index cdb609f..0000000 --- a/RGens/data/sample-grammars/superhero.gram +++ /dev/null @@ -1,304 +0,0 @@ -[superhero-desc] [superhero-name] - -pragma initial-rule [superhero-desc] - -[superhero-postfix] [superhero-ally] - [superhero-enemy] - -pragma suffix-with [superhero-desc] [superhero-postfix] -pragma suffix-with [superhero-desc] [superhero-postfix] -pragma suffix-with [superhero-desc] [superhero-postfix] - -pragma suffix-with [superhero-desc] [superhero-secret] - -pragma suffix-with [superhero-desc] [superhero-org] -pragma suffix-with [superhero-desc] [superhero-org] - -[superhero-ally] (ally of [superhero-name] ) - (secret ally of [superhero-name] ) - (lover of [superhero-name] ) - -[superhero-enemy] (enemy of [superhero-name] ) - (secret enemy of [superhero-name] ) - -[superhero-misc] (betrayer of [superhero-name] ) - (killer of [superhero-name] ) - (defeater of [superhero-name] ) - (mentor of [superhero-name] ) - (subordinate of [superhero-name] ) - ( [generic-title] ) - -[superhero-secret] (secret identity of [full-name-and-title] ) - -[superhero-org] (member of the [organization] ) - (double agent for the [organization] ) - (sworn enemy of the [organization] ) - (leader of the [organization] ) - (second in command of the [organization] ) - ( [generic-title] of the [organization] ) - -[superhero-name] [first-part] [second-part] - [second-part] [first-part] - -pragma export-rule [superhero-name] - -pragma suffix-with [superhero-name] [third-part] -pragma suffix-with [superhero-name] [fourth-part] -pragma suffix-with [superhero-name] [fifth-part] -pragma prefix-with [superhero-name] [third-part2] - -[fifth-part] and the [third-part2] - and [third-part2] - -pragma suffix-with [fifth-part] [fourth-part] - -[first-part] Captain - Yellow - Star - Incredible - Lightning - Silver - Phoenix - Wonder - Super - Green - Courageous - Iron - Black - Invisible - Professor - Night - Silent - Red - Thunder - General - Time - Scarlet - Grand - Arcane - Arcana - White - Muscle - [second-class] - [gender-title] - -[gender-title] Mr - Ms - Mister - Miss - Dr - Doctor - Professor - Lord - Lady - King - Queen - Prince - Princess - -[second-part] Hawk - Phantom - Fist - Hex - Soldier - Raven - Patriot - Hope - Stallion - Chimera - Archer - Raptor - Lord - Ninja - Eagle - Bolt - Boulder - Knight - Brain - Fusion - Crusader - Shepherd - Flame - Orchid - Torch - Magus - Wizard - [second-class] - [second-class] - -[second-class] Rider - Caster - Assasin - Berserker - Saber - Archer - Lancer - Saver - Ruler - Shielder - Avenger - -[third-part] ,The [third-part2] - -pragma suffix-with [third-part] [fifth-part] - -[third-part2] [third-part-act] - [third-part-act] [second-part] - -[third-part-act] Champion - Protector - Wielder - Wielding - Marksman - Fated - Fate - Lover - Lovely - Loving - Celebrated - Prodigy - Guardian - Inquisitor - Inquisitorial - Legend - Legendary - Returned - Light - Dark - Warrior - Sacred - Cursed - Victor - Victorious - Triumphant - Mystic - Mystical - Amazing - Incomparable - Lord - Lady - Mysterious - Face - Divine - Magnificent - Magnificence - Virtuous - Survivor - Surviving - Courageous - Steward - Keeper - Squire - Exalted - Dammed - Infernal - Demonic - Demon - Angelic - Angel - Devilish - Devil - Dragonic - Dragon - Crusading - Crusader - Knightly - Knight - Lordly - Lord - Ravenous - Saintly - Saint - Blessed - Ghost - Ghostly - Magical - Magical Girl - Magical Knight - Dead - Deadly - Flaming - Thunderer - [major-arcana] - [major-arcana] - Cardinal - Bishop - Archbishop - Pope - Father - Mother - Fatherly - Motherly - Sinister - Embodiment - [generic-title] - [generic-title] - -[fourth-part] of [fourth-part-act] - -[fourth-part-act] the [fourth-part-the] - [harrowed-many-things] - [harrowed-many-things] - Hope - Destiny - Justice - Humanity - Men - Women - Freedom - Knowledge - Earth - Eternal Fire - [planet] - [planet] - [second-part] - [second-part] - -[planet] Earth - Mars - Jupiter - Saturn - Pluto - Uranus - Mercury - Venus - Neptune - -[fourth-part-the] Realm - Chalice - Law - Future - Tides - Poor - Trees - Universe - Seven - Past - Isles - Gauntlet - Dominion - Living - Galaxy - Ancients - Archive - Moon - [generic-title] - [generic-title] - [exalt-type] - [exalt-type] - [arcana] - [arcana] - -[exalt-type] Dawn - Zenith - Twilight - Night - Eclipse - -[arcana] [tarot-card] - Arcana - Minor Arcana - Major Arcana - [ordinal-roman] Arcana - [ordinal-number] Arcana - [ordinal] Arcana diff --git a/RGens/data/sample-grammars/tarotcard.gram b/RGens/data/sample-grammars/tarotcard.gram deleted file mode 100755 index 43741a0..0000000 --- a/RGens/data/sample-grammars/tarotcard.gram +++ /dev/null @@ -1,58 +0,0 @@ -[tarot-card] [adjective-of] [title] - [adjective-of] [title] [adjective] - [adjective-of] [title] [adjective] [noun] - [adjective-of] [noun] [title] - [adjective-of] [noun] - [adjective-of] [noun] [adjective] [noun] - [noun] - [noun] [adjective] - [noun] [title] - [noun] [adjective] [noun] - [title] [adjective] - [title] [adjective] [noun] - -pragma initial-rule [tarot-card] - -[title] [male-title] - [male-title] - [female-title] - [female-title] - [misc-title] - -[male-title] emperor - king - knight - priest - -[female-title] empress - queen - princess - priestess - -[misc-title] fool - -[adjective] of [adjective-of] - -[adjective-of] shimmering - blazing - infinite - whispering - frozen - hidden - magical - quiet - dancing - lost - -[noun] darkness - light - waters - stars - hills - rainbows - forests - fire - moons - winds - hearts - spirits diff --git a/RGens/data/sample-grammars/technobabble.gram b/RGens/data/sample-grammars/technobabble.gram deleted file mode 100755 index 3861576..0000000 --- a/RGens/data/sample-grammars/technobabble.gram +++ /dev/null @@ -1,49 +0,0 @@ -[technobabble] [part-prefix] [part-suffix] [part-problem] - [part-suffix] [part-prefix] [part-problem] - [part-prefix] [part-problem] - -pragma initial-rule [technobabble] - -pragma suffix-with [technobabble] [part-cause] - -[part-cause] the [part-prefix] - the [part-suffix] - the [part-prefix] [part-suffix] - -pragma suffix-with [part-cause] [add-cause] - -[add-cause] and [part-cause] - and [part-problem] [part-cause] - -[part-prefix] primary - secondary - compression - grav - hydraulic - reg - power - -[part-suffix] boot - coupling - housing - stabilizer - vent - lines - converter - feed - -[part-problem] cracked - wedged - collapsed - bent - fell off - shattered - seized - jammed - burnt - exploded - imploded - incinerated - froze - destabilized - clogged diff --git a/RGens/data/sample-grammars/theory.gram b/RGens/data/sample-grammars/theory.gram deleted file mode 100644 index af2ce49..0000000 --- a/RGens/data/sample-grammars/theory.gram +++ /dev/null @@ -1,25 +0,0 @@ -[theory] [plural+last] [theory-suffix] - [plural+last] [theory-suffix] - the [2+last-name] [theory-suffix] - the [2+last-name] [theory-suffix] - the [2+last-name] [theory-suffix] - the [3+last-name] [theory-suffix] - [plural+last] [ordinal] [theory-suffix] - the [last-name] [theory-suffix] - the [last-name] [theory-suffix] - -pragma initial-rule [theory] - -[plural+last] [last-name] 's - -[2+last-name] [last-name] - [last-name] - -[3+last-name] [last-name] - [last-name] - [last-name] - -[theory-suffix] theory - law - theorem - postulate - conjecture - principle - hypothesis diff --git a/RGens/data/sample-grammars/trademark.gram b/RGens/data/sample-grammars/trademark.gram deleted file mode 100644 index 7ec2fef..0000000 --- a/RGens/data/sample-grammars/trademark.gram +++ /dev/null @@ -1,186 +0,0 @@ -[trademark] [actual+trademark] - -pragma initial-rule [trademark] - -[actual+trademark] [syllable] [trademark-suffix] - [random-name] [trademark-suffix] - [buzzword-stem] [buzzword-suffix] - [trademark-fragment] [trademark-suffix] - -[trademark-suffix] ent - izon - ium - ilium - ilon - ate - atium - ian - -[trademark-fragment] accel - ver - agil - pent - itan - celer - quali - free - syn - dyna [consonant] - cor - excel - valu [consonant] - top - fav - vant - cert - eq - cere - mor - -[trademark+drug] [trademark-drug-fragment] [trademark-drug-suffix] - [trademark-drug-fragment] [trademark-drug-suffix] - [trademark-drug-fragment] [trademark-drug-suffix] - [trademark-fragment] [trademark-drug-suffix] - [trademark-fragment] [trademark-drug-fragment] [trademark-drug-suffix] - [syllable] [trademark-drug-fragment] [trademark-drug-suffix] - [trademark-drug-fragment] [syllable] [trademark-drug-suffix] - -pragma export-rule [trademark+drug] - -[trademark-drug-fragment] can - cid - asper - fem - let - tam - tri [consonant] - zia - epi - retro - vu - zido - aba - nova - immu - kal - uni - lev [vowel] - thy - rox - gluco - gly - bur - met - form - dia - van - mala - sara - fem - pro - flu - ox - oxy - apli - opti - mylo - exe - tar - riva - sti [consonant] - zy [consonant] - mo - acti - estr - thin - via [vowel] - zone - huma - andro - prev - caf - proto - tri - duo - quadr [vowel] - lept - tequ - quino - [consonant-group] ox - ino - taxo - pen - cyclo - ciclo - zol - sert - meta - [consonant] epp - rem [vowel] - com - [vowel] sel - [consonant] apa - sirp - repro - aic - son - temo - neo - ant [vowel] - ky [consonant] - rel - rito - avan - gen - -[trademark-drug-suffix] [letter] as - [vowel] ra - [consonant] ole - [vowel] flue - [vowel] v [vowel] r - vir - g [vowel] n - dine - [consonant] ine - [consonant-group] one - nex - rex - [consonant] ex - etra - oid - [consonant-group] oid - vance - ide - iqa - iqua - zac - [consonant] ac - graf - var - [consonant] arg - lon - bic - [consonant] ella - [vowel] diol - ate - dyne - gran - [vowel] mide - log - [consonant] ar - cit - nix - t [vowel] l - max - [consonant] ere - oft - [vowel] line - [consonant] et [vowel] m - [consonant] ade - [consonant] imus - phex - ata - tr [vowel] l - [vowel] nza - [vowel] [consonant] [vowel] x - diff --git a/RGens/data/sample-grammars/vaultsofnagoh/turboghoul-hats.gram b/RGens/data/sample-grammars/vaultsofnagoh/turboghoul-hats.gram deleted file mode 100644 index e0a21d3..0000000 --- a/RGens/data/sample-grammars/vaultsofnagoh/turboghoul-hats.gram +++ /dev/null @@ -1,56 +0,0 @@ -[turboghoul-hat] sack with eyeholes - bucket with eyeholes - coalscuttle with eyeholes - [mask] - [headscarf] - [hood] - [turban] - ]hat] - [helmet] - birdcage - goldfish bowl - -[mask] [mask-type] mask - -[mask-type] clown - fanged iron - gimp - guy fawkes - gas - welding - hockey - tights - -[headscarf] [headscarf-type] headscarf - -[headscarf-type] flowery - bedouin - -[hood] [hood-type] hood - -[hood-type] liripided - monastic - -[turban] [turban-type] turban - -[turban-type] elaborate - simple - -[hat] [hat-type] hat - [hat-type] hat with bandana - -[hat-type] stetson - fancy feathered - wizard's pointy - -[helmet] [helmet-type] helmet - [helmet-type] helm - -[helmet-type] monstrous skull - common - knightly - winged - pickelhaub - futuristic - football - extra-spiky chaotic diff --git a/RGens/data/sample-grammars/web.gram b/RGens/data/sample-grammars/web.gram deleted file mode 100644 index 357fc36..0000000 --- a/RGens/data/sample-grammars/web.gram +++ /dev/null @@ -1,227 +0,0 @@ -[generic-email] [email] - [fake-email] - -[email] [actual+email] - -[fake-email] [actual+fake-email] - -[username] [actual+username] - -[url] [actual+url] - -pragma initial-rule [generic-email] - -pragma export-rule [email] -pragma export-rule [fake-email] -pragma export-rule [username] -pragma export-rule [domain-name] -pragma export-rule [url] -pragma export-rule [big-tld] - -[actual+email] [email-initial] @ [email-trailing] - -[email-initial] [username] - [acronym] - [email-alias] - [full-name] - [username] - [acronym] - [email-alias] - [full-name] - [subdomain-name] - [email-misc] - [email-initial] + [email-initial] - -[email-trailing] [subdomain-name] . [domain] - mail. [domain] - [domain] - [subdomain-name] - [town-name] . [tld] - [last-name] . [tld] - [first-name] . [tld] - [last-name] - [first-name] . [tld] - [first-name] - [last-name] . [tld] - -[actual+fake-email] [email-initial] @ [fake-trailing] - -[fake-trailing] [subdomain-name] . [fake-domain] - [fake-domain] - -[email-alias] abuse - admin - administrator - billing - blog - ceo - cfo - contact - coo - cto - customer - customerservice - dnsadmin - dnsmaster - email - ftp - help - helpdesk - hostmaster - info - ipadmin - mail - mailer-daemon - marketing - marketingscum - news - nobody - noc - no-reply - postman - postmaster - root - sales - security - ssladmin - support - usenet - webjockey - webmaster - www - -[actual+username] [full-name] - [first-name] . [last-name] - [full-name] [1..999] - -[actual+url] http://www. [domain] / - http://www. [domain] / - http:// [subdomain-name] . [domain] / - http://www. [last-name] . [tld] / - http:// [username] . [domain] / - [url-with-path] - [url-with-path] - -[url-with-path] [url-protocol] :// www.geocities.com/ [neighborhood] / [digit-nonzero] [digit] [digit] [digit] / - [url-protocol] :// [url-begin] . [acronym] .net/ [url-username] / - [url-protocol] :// [url-begin] . [town-name] .net/ [url-username] - [url-protocol] :// [subdomain-name] . [acronym] .net/ [url-username] - [url-protocol] :// [subdomain-name] . [town-name] .net/ [url-username] - [url-protocol] :// [subdomain-name] . [last-name] . [big-tld] / [url-username] - [url-protocol] :// [username] . [acronym] .net/ - [url-protocol] :// [username] . [url-state] [us-postalstate] .edu/ - [freshmeat-url] - -[url-protocol] http - http - https - https - ftp - ssh - rsync - gopher - git - -[neighborhood] siliconvalley - heartland - timessquare - -[url-begin] www - www2 - users - members - -[url-username] [username] - ~ [username] - -[url-state] s - n - e - w - se - nw - ne - sw - univ - u - -[domain] [domain-name] . [tld] - [domain-name] . [big-tld] - -[fake-domain] [domain-name] [fake-ending] - -[fake-ending] .con - .con - .not - .null - .usa - .com.uk - .con - .dot - .fake - .faux - .spam - .tld - -[domain-name] [domain+name] - -[domain+name] [acronym] - [random-name] - [last-name] - [last-name] - [first-name] - [last-name] - [letter] - [last-name] - [consonant] [vowel] [consonant] - [consonant-group] [vowel-group] [consonant] - [vowel-group] [consonant-group] - [letter] [vowel] [letter] - [town-name] - [last-name] - [syllable] [syllable] - -[tld] com - com - com - com - com - net - net - org - org - edu - de - ca - com.au - co.uk - fr - nu - to - se - no - -[big-tld] com - com - net - org - -[subdomain-name] [planet] - [planet] - mail - www2 - www [digit] - alpha - beta - gamma - omega - [random-name] - [first-name] - [last-name] - [acronym] - [email-misc] - [email-initial] - [subdomain-name] - [subdomain-name] - -[email-misc] - [us-stateadj] - [town-name] - [complete-many-things] - [major-arcana] - [trademark+drug] - [trademark] - [city] diff --git a/RGens/data/sample-grammars/zadrons-pouch.gram b/RGens/data/sample-grammars/zadrons-pouch.gram deleted file mode 100755 index f72cf25..0000000 --- a/RGens/data/sample-grammars/zadrons-pouch.gram +++ /dev/null @@ -1,233 +0,0 @@ -[zadrons-pouch] → a(n) [zadrons-item] - a(n) [quote-item] and a(n) [quote-item] - a(n) [quote-item] and a(n) [quote-item] as well as a(n) [quote-item] - a(n) [quote-item] or a(n) [quote-item] - a(n) [quote-item] or a(n) [quote-item] or maybe a(n) [quote-item] - -pragma initial-rule [zadrons-pouch] - -[quote-item] ( [zadrons-item] ) - -pragma despace-rule [quote-item] - -[zadrons-item] → [egg] - [glove] - [crys-sphere] - [rock] - [figurine] - [vial] - [mini-weapon] - [bag] - [zadron-card] - [rope] - [box] - [wand] - -pragma export-rule [zadrons-item] - -[bag] → bag of [bag-type] - [sack-type] sack - [purse-type] purse - -[bag-type] → holding - tricks - useful items - devouring - dwarf-kind - invisible cloth - monster summoning - monster summoning (summons [creature-choice] ) - -[sack-type] → lunch - recursive - -[purse-type] → everfull - -[box] → [box-type] box - cube of [box-type] - -[box-type] → limited-force - frost-resisting - morphing - self-destructing - pandora - panicking - -[zadron-card] → card of [zad-card-type] - [zad-card-type] card - -[zad-card-type] → fate - teleporting - elusive treasure - spell-storing - many-things - imprisoning - messaging - bounty - [card] - [card] - [card] - -[crys-sphere] → crystal of [crystal-type] - [crys-act] - [crys-act] - [crys-act] - [crys-act] - -[crys-act] → [sphere-type] spheres - [sphere-type] sphere - lens of [lens-type] - [crystal-type] sphere - ball - ball of [crys-suffix] - -pragma prefix-with [crys-act] crystal - -[sphere-type] → microphonic - seeing-eye - immurement - -[lens-type] → detection - -[crystal-type] → prison - radar - seeing - -[crys-suffix] → jumping - scrying - -[egg] → [egg-type] egg - -[egg-type] → copper - stone - golden - white - white/pink - glass - -[figurine] → [fig-material] [fig-animal] - -[fig-material] → golden - onyx - serpentine - ivory - marble - bronze - jade - limestone - -[fig-animal] → lion - dog - owl - goat - elephant - warrior - palace - leprechaun - -[glove] → gauntlets of [gauntlet-type] - gloves of [glove-type] - [glove-type] gloves - -[gauntlet-type] → dexterity - power - -[glove-type] → pushing - choking - bigby - stunning - -[mini-weapon] → minature [weapon-type] - small [weapon-type] - tiny [weapon-type] - [sling-type] sling - [weapon-type] - -[weapon-type] → boomerang - arrow - net - catapult - hammer - sword - club - -[sling-type] → seeking - -[rock] → [pebble-type] pebble - stone of [stone-type] - [stone-type] stone - brick of [brick-type] - [geode-type] geode - -[pebble-type] → inscribed - elemental control - [elemental] control - -[stone-type] → good-luck - weight - blind-defense - metal-clinging - -[brick-type] → flying - -[geode-type] → ioun - -[rope] → [rope-type] rope - rope of [rope-type] - ball of [string-type] [string-kind] - -[rope-type] → trick - entangling - climbing - dancing - tripping - snaring - levitating - self-entangling - -[string-type] → endless - -[string-kind] → string - yarn - -[vial] → vial of [vial-type] - [vial-type] vial - [bottle-type] bottle - [flask-type] flask - -[vial-type] → holding - trapping - experience - unnatural regeneration - -[bottle-type] → ever-smoking - wheezing - blank potion - -[flask-type] → iron - -[wand] → [wand-type] wand - wand of [wand-type] - canceling [wand-type] wand - -[wand-type] → magic missile - [spell-1] - [spell-2] - gusting - life-detecting - zadron - -[spell-1] → frost - fire - lightining - fear - illumination - polymorphing - conjuration - paralyzing - -[spell-2] → [spell2-type] detecting - -[spell2-type] → magic - enemy - secret door/trap diff --git a/RGens/data/seniordesign/dbdata.gram b/RGens/data/seniordesign/dbdata.gram deleted file mode 100644 index 04938ad..0000000 --- a/RGens/data/seniordesign/dbdata.gram +++ /dev/null @@ -1,54 +0,0 @@ -[user-role] student - student - student - student - student - tutor - tutor - tutor - tutor - staff - staff - staff - admin - admin - sysadmin - -pragma export-rule [user-role] - -[dept-id] [synth+deptid] - -[real-deptid] CSIS - MATH - ENGL - PHYS - CHEM - PSYC - -pragma export-rule [dept-id] - -[synth+deptid] [letter] - -pragma suffix-with [synth+deptid] [letter] -pragma suffix-with [synth+deptid] [letter] -pragma suffix-with [synth+deptid] [letter] - -[user-idno] [act-user+idno] - -pragma export-rule [user-idno] - -[act-user+idno] 800 [idno-chain] - 700 [idno-chain] - -[idno-chain] [digit] [digit] [digit] [digit] [digit] [digit] - -[term-code] [2000..2040] 0 [1..9] - [2000..2040] [10..12] - -pragma despace-rule [term-code] -pragma export-rule [term-code] - -[section-code] [letter] [0..9] [0..9] - -pragma despace-rule [section-code] -pragma export-rule [section-code] diff --git a/RGens/data/server-config-sample.cfg b/RGens/data/server-config-sample.cfg deleted file mode 100644 index cc0dc1f..0000000 --- a/RGens/data/server-config-sample.cfg +++ /dev/null @@ -1,116 +0,0 @@ -# Load 'long rules' -- Grammars with one rule with a lot of cases -animal sample-grammars/long-data/animal.gram -canada-province sample-grammars/long-data/canada-province.gram -cards sample-grammars/long-data/cards.gram -color sample-grammars/long-data/color.gram -first-name-female sample-grammars/long-data/first-name-female.gram -first-name-male sample-grammars/long-data/first-name-male.gram -geographic-thing sample-grammars/long-data/geographic-thing.gram -last-name sample-grammars/long-data/last-name.gram -letters sample-grammars/long-data/letters.gram -nation sample-grammars/long-data/nation.gram -numbers sample-grammars/long-data/numbers.gram -planet sample-grammars/long-data/planet.gram -real-city sample-grammars/long-data/real-city.gram -real-company sample-grammars/long-data/real-company.gram -relative sample-grammars/long-data/relative.gram -roman-numeral sample-grammars/long-data/roman-numeral.gram -syllables sample-grammars/long-data/syllables.gram -town-name sample-grammars/long-data/town-name.gram -tree sample-grammars/long-data/tree.gram -greek-letters sample-grammars/long-data/greek-letters.gram -japanese-sylls sample-grammars/long-data/japanese-writing.gram - -# Load grammars - -# Set I of grammars -24hr-rpg sample-grammars/24hr-rpg.gram -acronym sample-grammars/acronym.gram -address sample-grammars/address.gram -anime sample-grammars/anime.gram -art-objects sample-grammars/art-objects.gram -awesome-names sample-grammars/awe-names.gram -buzzword sample-grammars/buzzword.gram -career sample-grammars/career.gram -city sample-grammars/city.gram -college sample-grammars/college.gram -company sample-grammars/company.gram -computer sample-grammars/computer.gram -congress sample-grammars/congress.gram -dates sample-grammars/dates.gram -dungeon-enviroment sample-grammars/dungeon-enviroment.gram -elemental sample-grammars/elementals.gram -fantasy-locations sample-grammars/fantasy-locations.gram -fortune sample-grammars/fortune.gram -gemstones sample-grammars/gemstones.gram -genre-fiction sample-grammars/genre-fiction.gram -horror sample-grammars/horror.gram -insults sample-grammars/insults.gram -linux sample-grammars/linux.gram -martial-arts sample-grammars/martial-arts.gram -mary-sue sample-grammars/mary-sue.gram -media sample-grammars/media.gram -mission sample-grammars/mission.gram -names sample-grammars/names.gram -# newspaper sample-grammars/newspaper.gram -numbers sample-grammars/numbers.gram -ordinal sample-grammars/ordinal.gram -organization sample-grammars/organization.gram -part-creature sample-grammars/part-creature.gram -phone-number sample-grammars/phone-number.gram -pokeattacks sample-grammars/pokeattacks.gram -president sample-grammars/president.gram -rune sample-grammars/rune.gram -school sample-grammars/school.gram -slashdot sample-grammars/slashdot.gram -states sample-grammars/states.gram -superhero sample-grammars/superhero.gram -tarotcard sample-grammars/tarotcard.gram -technobabble sample-grammars/technobabble.gram -theory sample-grammars/theory.gram -trademark sample-grammars/trademark.gram -web sample-grammars/web.gram -zadrons-pouch sample-grammars/zadrons-pouch.gram - -# Diablo II items -diabloii-base sample-grammars/diablo-ii/diabloii.gram -diabloii-items sample-grammars/diablo-ii/diabloiiitems.gram -diabloii-perish sample-grammars/diablo-ii/diabloiiperish.gram -diabloii-prefixes sample-grammars/diablo-ii/diabloiiprefixes.gram -diabloii-suffixes sample-grammars/diablo-ii/diabloiisuffixes.gram - -# Set II of grammars -repinsults new-sample-grammars/repinsult.gram - -# Drakensang online items -ds-runes new-sample-grammars/drakensang/runes.gram -ds-gems new-sample-grammars/drakensang/gems.gram -ds-armor new-sample-grammars/drakensang/armor.gram - -# Other grammar files - -# Dungeon dressing -abandoned sample-grammars/dungeondressing/abandoned.gram -bedroom sample-grammars/dungeondressing/bedroom.gram -dragonencounter sample-grammars/dungeondressing/dragonencounter.gram -kitchen sample-grammars/dungeondressing/kitchen.gram -monster sample-grammars/dungeondressing/monster.gram - -# RandomTable Wiki -adjective sample-grammars/rtwiki/adjective.gram -bodyparts sample-grammars/rtwiki/bodyparts.gram -color sample-grammars/rtwiki/color.gram -creature sample-grammars/rtwiki/creature.gram -death-cause sample-grammars/rtwiki/death-cause.gram -fantasy-name sample-grammars/rtwiki/fantasy-name.gram -favorite sample-grammars/rtwiki/favorite.gram -guns sample-grammars/rtwiki/guns.gram -item sample-grammars/rtwiki/item.gram -traits sample-grammars/rtwiki/traits.gram - -# Senior design -seniordesign seniordesign/dbdata.gram - -# Misc -700000items misc/700000items.gram -nimble-bimble misc/nimble.gram diff --git a/RGens/data/todos.txt b/RGens/data/todos.txt deleted file mode 100644 index 1de8841..0000000 --- a/RGens/data/todos.txt +++ /dev/null @@ -1,2 +0,0 @@ -:TODO 5/10/18 Ben Culkin :EasternSun - Finish up the new-style Diablo generator, using Eastern Sun things diff --git a/RGens/dotest.sh b/RGens/dotest.sh deleted file mode 100755 index a39a012..0000000 --- a/RGens/dotest.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -mvn clean compile exec:java > outp.txt 2> error.txt; - -tail -n +36 outp.txt | view -c "normal! zR" -; diff --git a/RGens/pom.xml b/RGens/pom.xml deleted file mode 100644 index 1bb647e..0000000 --- a/RGens/pom.xml +++ /dev/null @@ -1,88 +0,0 @@ - - 4.0.0 - - bjc - RGens - 0.0.1-SNAPSHOT - jar - - RGens - http://maven.apache.org - - - UTF-8 - - - - - ossrh - https://oss.sonatype.org/content/repositories/snapshots - - - ossrh - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - - - - - - maven-compiler-plugin - - 1.8 - 1.8 - - - - - org.codehaus.mojo - exec-maven-plugin - 1.2.1 - - - bjc.rgens.parser.RGrammarTest - - - - - - - - - data/ - - - **/*.gram - **/*.cfg - - - - - - - - bjc - BJC-Utils2 - 1.0.0 - - - - com.github.mifmif - generex - 1.0.2 - - - - edu.gatech.gtri.bk-tree - bk-tree - 1.0 - - - - org.apache.commons - commons-text - 1.0 - - - diff --git a/RGens/src/main/java/.DS_Store b/RGens/src/main/java/.DS_Store deleted file mode 100644 index c5a38b7..0000000 Binary files a/RGens/src/main/java/.DS_Store and /dev/null differ diff --git a/RGens/src/main/java/bjc/.DS_Store b/RGens/src/main/java/bjc/.DS_Store deleted file mode 100644 index 86e50e6..0000000 Binary files a/RGens/src/main/java/bjc/.DS_Store and /dev/null differ diff --git a/RGens/src/main/java/bjc/rgens/ZadronsPouch.java b/RGens/src/main/java/bjc/rgens/ZadronsPouch.java deleted file mode 100644 index 827d022..0000000 --- a/RGens/src/main/java/bjc/rgens/ZadronsPouch.java +++ /dev/null @@ -1,220 +0,0 @@ -package bjc.rgens; - -import bjc.utils.funcdata.FunctionalStringTokenizer; -import bjc.utils.funcdata.IList; -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.gen.RandomGrammar; - -/** - * Example showing code manipulate of random grammars - * - * @author ben - */ -public class ZadronsPouch { - /** - * Main method for running application - * - * @param args - * Unused CLI args - */ - public static void main(String[] args) { - ZadronsPouch zp = new ZadronsPouch(); - - for (int i = 0; i < 100; i++) { - IList ls = zp.grammar.generateListValues("[item]", " "); - - StringBuilder sb = new StringBuilder(); - - ls.forEach(sp -> sb.append(sp)); - - System.out.println(sb.toString().replaceAll("\\s+", " ")); - } - } - - private RandomGrammar grammar; - - /** Create a new instance with a grammar */ - public ZadronsPouch() { - grammar = new RandomGrammar<>(); - - /* - * @NOTE - * Should there be some sort of builder sort of interface? - */ - addRule("[item]", - "[egg]", "[glove]", "[crys-sphere]", "[rock]", - "[figurine]", "[vial]", "[mini-weapon]", "[bag]", - "[card]", "[rope]", "[box]", "[wand]"); - - addEggRules(); - addGloveRules(); - addCrysSphereRules(); - addRockRules(); - - addFigurineRules(); - addVialRules(); - addMiniWeaponRules(); - addBagRules(); - - addCardRules(); - addRopeRules(); - addBoxRules(); - addWandRules(); - } - - private void addBagRules() { - addRule("[bag]", - "bag of [bag-type]", "[sack-type] sack", "[purse-type] purse"); - addRule("[bag-type]", - "holding", "tricks", "useful items", - "devouring", "dwarf-kind", "invisible cloth", - "monster summoning"); - addRule("[sack-type]", - "lunch", "recursive"); - addRule("[purse-type]", - "everfull"); - } - - private void addBoxRules() { - addRule("[box]", - "[box-type] box", "cube of [box-type]"); - addRule("[box-type]", - "limited-force", "frost-resisting", "morphing", - "self-destructing", "pandora", "panicking"); - } - - private void addCardRules() { - addRule("[card]", - "card of [card-type]", "[card-type] card"); - addRule("[card-type]", - "fate", "teleporting", "elusive treasure", "spell-storing", - "many-things", "imprisoning", "messaging", "bounty"); - } - - private void addCrysSphereRules() { - addRule("[crys-sphere]", - "[sphere-type] spheres", "[sphere-type] sphere", - "lens of [lens-type]", "[crystal-type] crystal", - "crystal of [crystal-type]", "crystal ball", - "crystal ball of [crys-suffix]"); - addRule("[sphere-type]", - "microphonic", "seeing-eye"); - addRule("[lens-type]", - "detection"); - addRule("[crystal-type]", - "prison", "radar"); - addRule("[crys-suffix]", - "jumping"); - } - - private void addEggRules() { - addRule("[egg]", - "[egg-type] egg"); - addRule("[egg-type]", - "copper", "stone", "golden", - "white", "white/pink", "glass"); - } - - private void addFigurineRules() { - addRule("[figurine]", - "[fig-material] [fig-animal]"); - addRule("[fig-material]", - "golden", "onyx", "serpentine", "ivory", - "marble", "bronze", "jade", "limestone"); - addRule("[fig-animal]", - "lion", "dog", "owl", "goat", - "elephant", "warrior", "palace", "leprechaun"); - } - - private void addGloveRules() { - addRule("[glove]", - "gauntlets of [gauntlet-type]", - "gloves of [glove-type]", - "[glove-type] gloves"); - addRule("[gauntlet-type]", - "dexterity", "power"); - addRule("[glove-type]", - "pushing", "choking", "bigby", "stunning"); - } - - private void addMiniWeaponRules() { - addRule("[mini-weapon]", - "minature [weapon-type]", "small [weapon-type]", - "tiny [weapon-type]", "[sling-type] sling", - "[weapon-type]"); - addRule("[weapon-type]", - "boomerang", "arrow", "net", - "catapult", "hammer", "sword", "club"); - addRule("[sling-type]", - "seeking"); - } - - private void addRockRules() { - addRule("[rock]", - "[pebble-type] pebble", "stone of [stone-type]", - "[stone-type] stone", "brick of [brick-type]", - "[geode-type] geode"); - addRule("[pebble-type]", - "inscribed", "elemental control"); - addRule("[stone-type]", - "good-luck", "weight", - "blind-defense", "metal-clinging"); - addRule("[brick-type]", - "flying"); - addRule("[geode-type]", - "ioun"); - } - - private void addRopeRules() { - addRule("[rope]", - "[rope-type] rope", "rope of [rope-type]", - "ball of [string-type] [string-kind]"); - addRule("[rope-type]", - "trick", "entangling", "climbing", "dancing", - "tripping", "snaring", "levitating", "self-entangling"); - addRule("[string-type]", - "endless"); - addRule("[string-kind]", - "string", "yarn"); - } - - private void addRule(String rule, String... cases) { - IList> cses = new FunctionalList<>(); - - for (String strang : cases) { - cses.add(FunctionalStringTokenizer.fromString(strang).toList(s -> s)); - } - - grammar.makeRule(rule, cses); - } - - private void addVialRules() { - addRule("[vial]", - "vial of [vial-type]", "[vial-type] vial", - "[bottle-type] bottle", "[flask-type] flask"); - addRule("[vial-type]", - "holding", "trapping", - "experience", "unnatural regeneration"); - addRule("[bottle-type]", - "ever-smoking", "wheezing", - "blank potion"); - addRule("[flask-type]", - "iron"); - } - - private void addWandRules() { - addRule("[wand]", - "[wand-type] wand", "wand of [wand-type]", - "canceling [wand-type] wand"); - addRule("[wand-type]", - "magic missile", "[spell-1]", "[spell-2]", - "gusting", "life-detecting", "zadron"); - addRule("[spell-1]", - "frost", "fire", "lightning", "fear", - "illumination", "polymorphing", "conjuration", "paralyzing"); - addRule("[spell-2]", - "[spell2-type] detecting"); - addRule("[spell2-type]", - "magic", "enemy", "secret door/trap"); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/GrammarException.java b/RGens/src/main/java/bjc/rgens/parser/GrammarException.java deleted file mode 100644 index 9eaa0a1..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/GrammarException.java +++ /dev/null @@ -1,36 +0,0 @@ -package bjc.rgens.parser; - -/** - * The exception thrown when something goes wrong while parsing a - * grammar. - * - * @author student - */ -public class GrammarException extends RuntimeException { - /* Serialization ID. */ - private static final long serialVersionUID = -7287427479316953668L; - - /** - * Create a new grammar exception with the specified message. - * - * @param msg - * The message for this exception. - */ - public GrammarException(String msg) { - super(msg); - } - - /** - * Create a new grammar exception with the specified message and - * cause. - * - * @param msg - * The message for this exception. - * - * @param cause - * The cause of this exception. - */ - public GrammarException(String msg, Exception cause) { - super(msg, cause); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/RGrammar.java b/RGens/src/main/java/bjc/rgens/parser/RGrammar.java deleted file mode 100644 index 38f38c8..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/RGrammar.java +++ /dev/null @@ -1,491 +0,0 @@ -package bjc.rgens.parser; - -import bjc.rgens.parser.elements.CaseElement; -import bjc.rgens.parser.elements.LiteralCaseElement; -import bjc.rgens.parser.elements.RangeCaseElement; -import bjc.rgens.parser.elements.RuleCaseElement; -import bjc.rgens.parser.elements.VariableCaseElement; -import bjc.utils.funcutils.StringUtils; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Random; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.apache.commons.text.similarity.LevenshteinDistance; - -import edu.gatech.gtri.bktree.BkTreeSearcher; -import edu.gatech.gtri.bktree.BkTreeSearcher.Match; -import edu.gatech.gtri.bktree.Metric; -import edu.gatech.gtri.bktree.MutableBkTree; - -/** - * Represents a randomized grammar. - * - * @author EVE - */ -public class RGrammar { - /* The max distance between possible alternate rules. */ - private static final int MAX_DISTANCE = 6; - - /* The metric for the levenshtein distance. */ - private static final class LevenshteinMetric implements Metric { - private static LevenshteinDistance DIST; - - static { - DIST = LevenshteinDistance.getDefaultInstance(); - } - - public LevenshteinMetric() { - } - - @Override - public int distance(String x, String y) { - return DIST.apply(x, y); - } - } - - /* The current state during generation. */ - private static class GenerationState { - /* The current string. */ - public StringBuilder contents; - /* The RNG. */ - public Random rnd; - - /* The current set of variables. */ - public Map vars; - - /** - * Create a new generation state. - * - * @param cont - * The string being generated. - * - * @param rand - * The RNG to use. - * - * @param vs - * The variables to use. - */ - public GenerationState(StringBuilder cont, Random rand, Map vs) { - contents = cont; - rnd = rand; - vars = vs; - } - } - - /* The pattern for matching the name of a variable. */ - private static Pattern NAMEVAR_PATTERN = Pattern.compile("\\$(\\w+)"); - - /* The rules of the grammar. */ - private Map rules; - /* The rules imported from other grammars. */ - private Map importRules; - /* The rules exported from this grammar. */ - private Set exportRules; - /* The initial rule of this grammar. */ - private String initialRule; - - /* The tree to use for finding rule suggestions. */ - private BkTreeSearcher ruleSearcher; - - /** - * Create a new randomized grammar using the specified set of rules. - * - * @param ruls - * The rules to use. - */ - public RGrammar(Map ruls) { - rules = ruls; - } - - /** - * Sets the imported rules to use. - * - * Imported rules are checked for rule definitions after local definitions are - * checked. - * - * @param importedRules - * The set of imported rules to use. - */ - public void setImportedRules(Map importedRules) { - importRules = importedRules; - } - - /** - * Generates the data structure backing rule suggestions for unknown rules. - */ - public void generateSuggestions() { - MutableBkTree ruleSuggester = new MutableBkTree<>(new LevenshteinMetric()); - - ruleSuggester.addAll(rules.keySet()); - ruleSuggester.addAll(importRules.keySet()); - - ruleSearcher = new BkTreeSearcher<>(ruleSuggester); - } - - /** - * Generate a string from this grammar, starting from the specified rule. - * - * @param startRule - * The rule to start generating at, or null to use the initial rule - * for this grammar. - * - * @return A possible string from the grammar. - */ - public String generate(String startRule) { - return generate(startRule, new Random(), new HashMap<>()); - } - - /** - * Generate a string from this grammar, starting from the specified rule. - * - * @param startRule - * The rule to start generating at, or null to use the initial rule - * for this grammar. - * - * @param rnd - * The random number generator to use. - * - * @param vars - * The set of variables to use. - * - * @return A possible string from the grammar. - */ - public String generate(String startRule, Random rnd, Map vars) { - String fromRule = startRule; - - if (startRule == null) { - if (initialRule == null) { - throw new GrammarException("Must specify a start rule for grammars with no initial rule"); - } - - fromRule = initialRule; - } else { - if (startRule.equals("")) { - throw new GrammarException("The empty string is not a valid rule name"); - } - } - - RuleCase start = rules.get(fromRule).getCase(rnd); - - StringBuilder contents = new StringBuilder(); - - generateCase(start, new GenerationState(contents, rnd, vars)); - - String body = contents.toString(); - /* - * Collapse duplicate spaces. - */ - body = body.replaceAll("\\s+", " "); - - /* - * Remove extraneous spaces around punctutation marks. - * - * This can be done in the grammars, but it is very tedious to do so. - */ - - /* Handle 's */ - body = body.replaceAll(" 's ", "'s "); - - /* Handle opening/closing punctuation. */ - body = body.replaceAll("([(\\[]) ", " $1"); - body = body.replaceAll(" ([)\\]'\"])", "$1 "); - - /* Remove spaces around series of opening/closing punctuation. */ - body = body.replaceAll("([(\\[])\\s+([(\\[])", "$1$2"); - body = body.replaceAll("([)\\]])\\s+([)\\]])", "$1$2"); - - /* Handle inter-word punctuation. */ - body = body.replaceAll(" ([,:.!])", "$1 "); - - /* Handle intra-word punctuation. */ - body = body.replaceAll("\\s?([-/])\\s?", "$1"); - - /* - * Collapse duplicate spaces. - */ - body = body.replaceAll("\\s+", " "); - - /* - * @TODO 11/01/17 Ben Culkin :RegexRule Replace this once it is no longer - * needed. - */ - body = body.replaceAll("\\s(ish|burg|ton|ville|opolis|field|boro|dale)", "$1"); - - return body; - } - - /* Generate a rule case. */ - private void generateCase(RuleCase start, GenerationState state) { - try { - switch (start.type) { - case NORMAL: - for (CaseElement elm : start.getElements()) { - generateElement(elm, state); - - if (elm.type != CaseElement.ElementType.VARDEF) { - state.contents.append(" "); - } - } - break; - case SPACEFLATTEN: - for (CaseElement elm : start.getElements()) { - generateElement(elm, state); - } - break; - default: - String msg = String.format("Unknown case type '%s'", start.type); - throw new GrammarException(msg); - } - } catch (GrammarException gex) { - String msg = String.format("Error in generating case (%s)", start); - throw new GrammarException(msg, gex); - } - } - - /* Generate a case element. */ - private void generateElement(CaseElement elm, GenerationState state) { - try { - switch (elm.type) { - case LITERAL: { - LiteralCaseElement lit = (LiteralCaseElement)elm; - - state.contents.append(lit.val); - break; - } - case RULEREF: { - RuleCaseElement rle = (RuleCaseElement)elm; - - generateRuleReference(rle, state); - break; - } - case RANGE: { - RangeCaseElement rang = (RangeCaseElement)elm; - - int val = state.rnd.nextInt(rang.end - rang.begin); - val += rang.begin; - - state.contents.append(val); - break; - } - case VARDEF: - generateVarDef(((VariableCaseElement)elm).varName, ((VariableCaseElement)elm).varDef, state); - break; - case EXPVARDEF: - generateExpVarDef(((VariableCaseElement)elm).varName, ((VariableCaseElement)elm).varDef, state); - break; - default: - String msg = String.format("Unknown element type '%s'", elm.type); - throw new GrammarException(msg); - } - } catch (GrammarException gex) { - String msg = String.format("Error in generating case element (%s)", elm); - throw new GrammarException(msg, gex); - } - } - - /* Generate a expanding variable definition. */ - private void generateExpVarDef(String name, String defn, GenerationState state) { - GenerationState newState = new GenerationState(new StringBuilder(), state.rnd, state.vars); - - if (rules.containsKey(defn)) { - RuleCase destCase = rules.get(defn).getCase(); - - generateCase(destCase, newState); - } else if (importRules.containsKey(defn)) { - RGrammar destGrammar = importRules.get(defn); - String res = destGrammar.generate(defn, state.rnd, state.vars); - - newState.contents.append(res); - } else { - String msg = String.format("No rule '%s' defined", defn); - throw new GrammarException(msg); - } - - state.vars.put(name, newState.contents.toString()); - } - - /* Generate a variable definition. */ - private static void generateVarDef(String name, String defn, GenerationState state) { - state.vars.put(name, defn); - } - - /* Generate a rule reference. */ - private void generateRuleReference(RuleCaseElement elm, GenerationState state) { - String refersTo = elm.val; - - GenerationState newState = new GenerationState(new StringBuilder(), state.rnd, state.vars); - - if (refersTo.contains("$")) { - /* Parse variables */ - String refBody = refersTo.substring(1, refersTo.length() - 1); - - if (refBody.contains("-")) { - /* Handle dependent rule names. */ - StringBuffer nameBuffer = new StringBuffer(); - - Matcher nameMatcher = NAMEVAR_PATTERN.matcher(refBody); - - while (nameMatcher.find()) { - String var = nameMatcher.group(1); - - if (!state.vars.containsKey(var)) { - String msg = String.format("No variable '%s' defined", var); - throw new GrammarException(msg); - } - - String name = state.vars.get(var); - - if (name.contains(" ")) { - throw new GrammarException("Variables substituted into names cannot contain spaces"); - } else if (name.equals("")) { - throw new GrammarException("Variables substituted into names cannot be empty"); - } - - nameMatcher.appendReplacement(nameBuffer, name); - } - - nameMatcher.appendTail(nameBuffer); - - refersTo = "[" + nameBuffer.toString() + "]"; - } else { - /* Handle string references. */ - if (refBody.equals("$")) { - throw new GrammarException("Cannot refer to unnamed variables"); - } - - String key = refBody.substring(1); - - if (!state.vars.containsKey(key)) { - String msg = String.format("No variable '%s' defined", key); - throw new GrammarException(msg); - } - - state.contents.append(state.vars.get(key)); - - return; - } - } - - if (refersTo.startsWith("[^")) { - refersTo = "[" + refersTo.substring(2); - - RGrammar dst = importRules.get(refersTo); - - newState.contents.append(dst.generate(refersTo, state.rnd, state.vars)); - } else if (rules.containsKey(refersTo)) { - RuleCase cse = rules.get(refersTo).getCase(state.rnd); - - generateCase(cse, newState); - } else if (importRules.containsKey(refersTo)) { - RGrammar dst = importRules.get(refersTo); - - newState.contents.append(dst.generate(refersTo, state.rnd, state.vars)); - } else { - if (ruleSearcher != null) { - Set> results = ruleSearcher.search(refersTo, MAX_DISTANCE); - - String[] resArray = results.stream().map(Match::getMatch).toArray((i) -> new String[i]); - - String msg = String.format("No rule '%s' defined (perhaps you meant %s?)", refersTo, - StringUtils.toEnglishList(resArray, false)); - - throw new GrammarException(msg); - } - - String msg = String.format("No rule '%s' defined", refersTo); - throw new GrammarException(msg); - } - - if (refersTo.contains("+")) { - /* Rule names with pluses in them get space-flattened */ - state.contents.append(newState.contents.toString().replaceAll("\\s+", "")); - } else { - state.contents.append(newState.contents.toString()); - } - } - - /** - * Get the initial rule of this grammar. - * - * @return The initial rule of this grammar. - */ - public String getInitialRule() { - return initialRule; - } - - /** - * Set the initial rule of this grammar. - * - * @param initRule - * The initial rule of this grammar, or null to say there is no - * initial rule. - */ - public void setInitialRule(String initRule) { - /* Passing null, nulls our initial rule. */ - if (initRule == null) { - this.initialRule = null; - return; - } - - if (initRule.equals("")) { - throw new GrammarException("The empty string is not a valid rule name"); - } else if (!rules.containsKey(initRule)) { - String msg = String.format("No rule '%s' local to this grammar defined.", initRule); - - throw new GrammarException(msg); - } - - initialRule = initRule; - } - - /** - * Gets the rules exported by this grammar. - * - * The initial rule is exported by default if specified. - * - * @return The rules exported by this grammar. - */ - public Set getExportedRules() { - Set res = new HashSet<>(); - - for (String rname : exportRules) { - if (!rules.containsKey(rname)) { - String msg = String.format("No rule '%s' local to this grammar defined", initialRule); - - throw new GrammarException(msg); - } - - res.add(rules.get(rname)); - } - - if (initialRule != null) { - res.add(rules.get(initialRule)); - } - - return res; - } - - /** - * Set the rules exported by this grammar. - * - * @param exportedRules - * The rules exported by this grammar. - */ - public void setExportedRules(Set exportedRules) { - exportRules = exportedRules; - } - - /** - * Get all the rules in this grammar. - * - * @return All the rules in this grammar. - */ - public Map getRules() { - return rules; - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/RGrammarBuilder.java b/RGens/src/main/java/bjc/rgens/parser/RGrammarBuilder.java deleted file mode 100644 index b4cb04a..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/RGrammarBuilder.java +++ /dev/null @@ -1,246 +0,0 @@ -package bjc.rgens.parser; - -import bjc.rgens.parser.elements.CaseElement; -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.funcdata.IList; - -import static bjc.rgens.parser.RuleCase.CaseType.*; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * Construct randomized grammars piece by piece. - * - * @author EVE - */ -public class RGrammarBuilder { - /* The rules being built. */ - private Map rules; - /* The current set of exported rules. */ - private Set exportedRules; - /* The current initial rule. */ - private String initialRule; - - /** Create a new randomized grammar builder. */ - public RGrammarBuilder() { - rules = new HashMap<>(); - - exportedRules = new HashSet<>(); - } - - /** - * Get or create a rule by the given name. - * - * @param rName - * The name of the rule. - * - * @return - * The rule by that name, or a new one if none existed. - */ - public Rule getOrCreateRule(String rName) { - if(rName == null) - throw new NullPointerException("Rule name must not be null"); - else if(rName.equals("")) - throw new IllegalArgumentException("The empty string is not a valid rule name"); - - if(rules.containsKey(rName)) - return rules.get(rName); - else { - Rule ret = new Rule(rName); - - rules.put(rName, ret); - - return ret; - } - } - - /** - * Convert this builder into a grammar. - * - * @return - * The grammar built by this builder - */ - public RGrammar toRGrammar() { - RGrammar grammar = new RGrammar(rules); - - grammar.setInitialRule(initialRule); - - grammar.setExportedRules(exportedRules); - - return grammar; - } - - /** - * Set the initial rule of the grammar. - * - * @param init - * The initial rule of the grammar. - * - * @throws IllegalArgumentException - * If the rule is either not valid or not defined in the grammar. - */ - public void setInitialRule(String init) { - if (init == null) { - throw new NullPointerException("init must not be null"); - } else if (init.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid rule name"); - } - - initialRule = init; - } - - /** - * Add an exported rule to this grammar. - * - * @param export - * The name of the rule to export. - * - * @throws IllegalArgumentException - * If the rule is either not valid or not defined in the grammar. - */ - public void addExport(String export) { - if (export == null) { - throw new NullPointerException("Export name must not be null"); - } else if (export.equals("")) { - throw new NullPointerException("The empty string is not a valid rule name"); - } - - exportedRules.add(export); - } - - /** - * Suffix a given case element to every case of a specific rule. - * - * @param ruleName - * The rule to suffix. - * - * @param suffix - * The suffix to add. - * - * @throws IllegalArgumentException - * If the rule name is either invalid or not defined by this - * grammar, or if the suffix is invalid. - */ - public void suffixWith(String ruleName, String suffix) { - if (ruleName == null) { - throw new NullPointerException("Rule name must not be null"); - } else if (ruleName.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid rule name"); - } else if(!rules.containsKey(ruleName)) { - String msg = String.format("Rule '%s' is not a valid rule name."); - - throw new IllegalArgumentException(msg); - } - - CaseElement element = CaseElement.createElement(suffix); - - FunctionalList newCases = new FunctionalList<>(); - - IList caseList = rules.get(ruleName).getCases(); - for (RuleCase ruleCase : caseList) { - FunctionalList newCase = new FunctionalList<>(); - - for(CaseElement elm : ruleCase.getElements()) { - newCase.add(elm); - } - - newCase.add(element); - - newCases.add(new RuleCase(NORMAL, newCase)); - } - - - for (RuleCase newCase : newCases) { - caseList.add(newCase); - } - } - - /** - * Prefix a given case element to every case of a specific rule. - * - * @param ruleName - * The rule to prefix. - * - * @param prefix - * The prefix to add. - * - * @throws IllegalArgumentException - * If the rule name is either invalid or not defined by this - * grammar, or if the prefix is invalid. - */ - public void prefixWith(String ruleName, String prefix) { - if (ruleName == null) { - throw new NullPointerException("Rule name must not be null"); - } else if (ruleName.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid rule name"); - } else if(!rules.containsKey(ruleName)) { - String msg = String.format("Rule '%s' is not a valid rule name."); - - throw new IllegalArgumentException(msg); - } - - CaseElement element = CaseElement.createElement(prefix); - - FunctionalList newCases = new FunctionalList<>(); - - IList caseList = rules.get(ruleName).getCases(); - for (RuleCase ruleCase : caseList) { - FunctionalList newCase = new FunctionalList<>(); - - newCase.add(element); - - for(CaseElement elm : ruleCase.getElements()) { - newCase.add(elm); - } - - newCases.add(new RuleCase(NORMAL, newCase)); - } - - - for (RuleCase newCase : newCases) { - caseList.add(newCase); - } - } - - public void despaceRule(String ruleName) { - if (ruleName == null) { - throw new NullPointerException("ruleName must not be null"); - } else if (ruleName.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid rule name"); - } - - IList caseList = rules.get(ruleName).getCases(); - - IList newCaseList = new FunctionalList<>(); - - for(RuleCase cse : caseList) { - newCaseList.add(new RuleCase(SPACEFLATTEN, cse.getElements())); - } - - rules.get(ruleName).replaceCases(newCaseList); - } - - public void regexizeRule(String rule, String pattern) { - if (rule == null) { - throw new NullPointerException("rule must not be null"); - } else if(pattern == null) { - throw new NullPointerException("pattern must not be null"); - } else if (rule.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid rule name"); - } - - IList caseList = rules.get(rule).getCases(); - - IList newCaseList = new FunctionalList<>(); - - for(RuleCase cse : caseList) { - newCaseList.add(new RegexRuleCase(cse.getElements(), pattern)); - } - - rules.get(rule).replaceCases(newCaseList); - - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/RGrammarFormatter.java b/RGens/src/main/java/bjc/rgens/parser/RGrammarFormatter.java deleted file mode 100644 index a2454dc..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/RGrammarFormatter.java +++ /dev/null @@ -1,97 +0,0 @@ -package bjc.rgens.parser; - -import bjc.rgens.parser.elements.CaseElement; -import bjc.utils.funcdata.IList; - -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * Format randomized grammars to strings properly. - * - * @author EVE - */ -public class RGrammarFormatter { - /** - * Format a grammar into a file that represents that grammar. - * - * @param gram - * The grammar to format. - * - * @return - * The formatted grammar. - */ - public static String formatGrammar(RGrammar gram) { - StringBuilder sb = new StringBuilder(); - - Map rules = gram.getRules(); - - String initRuleName = gram.getInitialRule(); - - Set processedRules = new HashSet<>(); - - if (initRuleName != null) { - processRule(rules.get(initRuleName), sb); - - processedRules.add(initRuleName); - } - - for (Rule rule : rules.values()) { - if (!processedRules.contains(rule.name)) { - sb.append("\n\n"); - - processRule(rule, sb); - } - - processedRules.add(rule.name); - } - - return sb.toString().trim(); - } - - /* Format a rule. */ - private static void processRule(Rule rule, StringBuilder sb) { - IList cases = rule.getCases(); - - StringBuilder ruleBuilder = new StringBuilder(); - - ruleBuilder.append(rule.name); - ruleBuilder.append(" \u2192 "); - - int markerPos = ruleBuilder.length(); - - processCase(cases.first(), ruleBuilder); - - sb.append(ruleBuilder.toString().trim()); - - ruleBuilder = new StringBuilder(); - - for (RuleCase cse : cases.tail()) { - sb.append("\n\t"); - - for (int i = 8; i < markerPos; i++) { - ruleBuilder.append(" "); - } - - processCase(cse, ruleBuilder); - - sb.append(ruleBuilder.toString()); - - ruleBuilder = new StringBuilder(); - } - - } - - /* Format a case. */ - private static void processCase(RuleCase cse, StringBuilder sb) { - /* Process each element, adding a space. */ - for (CaseElement element : cse.getElements()) { - sb.append(element.toString()); - sb.append(" "); - } - - /* Remove the trailing space. */ - sb.deleteCharAt(sb.length() - 1); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/RGrammarParser.java b/RGens/src/main/java/bjc/rgens/parser/RGrammarParser.java deleted file mode 100644 index 3a357b1..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/RGrammarParser.java +++ /dev/null @@ -1,394 +0,0 @@ -package bjc.rgens.parser; - -import bjc.rgens.parser.elements.CaseElement; -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.funcdata.IList; -import bjc.utils.funcutils.TriConsumer; -import bjc.utils.ioutils.blocks.Block; -import bjc.utils.ioutils.blocks.BlockReader; -import bjc.utils.ioutils.blocks.SimpleBlockReader; - -import java.io.Reader; -import java.io.StringReader; -import java.util.HashMap; -import java.util.Map; - -/** - * Reads {@link RGrammar} from a input stream. - * - * @author student - */ -public class RGrammarParser { - /** - * Whether we are in debug mode or not. - */ - public static final boolean DEBUG = false; - - /* - * Templates for level-dependent delimiters. - */ - /* Pragma block delimiter. */ - private static final String TMPL_PRAGMA_BLOCK_DELIM = "\\R\\t{%d}(?!\\t)"; - /* Rule declaration block delimiter. */ - private static final String TMPL_RULEDECL_BLOCK_DELIM = "\\R\\t\\t{%d}"; - /* Where block delimiter. */ - private static final String TMPL_WHERE_BLOCK_DELIM = "\\R\\t{%d}(?:in|end)\\R"; - /* Top-level block delimiter. */ - private static final String TMPL_TOPLEVEL_BLOCK_DELIM = "\\R\\t{%d}\\.?\\R"; - - /* Pragma impls. */ - private static Map> pragmas; - - /* Initialize pragmas. */ - static { - pragmas = new HashMap<>(); - - pragmas.put("initial-rule", (body, build, level) -> { - int sep = body.indexOf(' '); - - if (sep != -1) { - String msg = "Initial-rule pragma takes only one argument, the name of the initial rule"; - throw new GrammarException(msg); - } - - build.setInitialRule(body); - }); - - pragmas.put("despace-rule", (body, build, level) -> { - int sep = body.indexOf(' '); - - if (sep != -1) { - String msg = "despace-rule pragma takes only one argument, the name of the rule to despace"; - throw new GrammarException(msg); - } - - build.despaceRule(body); - }); - - pragmas.put("export-rule", (body, build, level) -> { - String[] exports = body.split(" "); - - for (String export : exports) { - build.addExport(export); - } - }); - - pragmas.put("regex-rule", (body, build, level) -> { - int nameIndex = body.indexOf(" "); - - if(nameIndex == -1) { - throw new GrammarException("Regex-rule pragma takes two arguments: the name of the rule to process, then the regex to apply after the rule has been generated."); - } - - String name = body.substring(0, nameIndex).trim(); - String patt = body.substring(nameIndex + 1).trim(); - - build.regexizeRule(name, patt); - }); - - pragmas.put("suffix-with", (body, build, level) -> { - String[] parts = body.trim().split(" "); - - if (parts.length != 2) { - String msg = "Suffix-with pragma takes two arguments, the name of the rule to suffix, then what to suffix it with"; - - throw new GrammarException(msg); - } - - build.suffixWith(parts[0], parts[1]); - }); - - pragmas.put("prefix-with", (body, build, level) -> { - String[] parts = body.trim().split(" "); - - if (parts.length != 2) { - String msg = "Prefix-with pragma takes two arguments, the name of the rule to prefix, then what to prefix it with"; - - throw new GrammarException(msg); - } - - build.prefixWith(parts[0], parts[1]); - }); - } - - /** - * Read a {@link RGrammar} from an input stream. - * - * @param is - * The input stream to read from. - * - * @return - * The grammar represented by the stream. - * - * @throws GrammarException - * Thrown if the grammar has a syntax error. - */ - public static RGrammar readGrammar(Reader is) throws GrammarException { - String dlm = String.format(TMPL_TOPLEVEL_BLOCK_DELIM, 0); - - try (BlockReader reader = new SimpleBlockReader(dlm, is)) { - if (!reader.hasNextBlock()) { - throw new GrammarException("At least one top-level block must be present"); - } - - try { - RGrammarBuilder build = new RGrammarBuilder(); - - reader.forEachBlock((block) -> { - if(DEBUG) - System.err.printf("Handling top-level block (%s)\n", block); - - handleBlock(build, block.contents, 0); - }); - - return build.toRGrammar(); - } catch (GrammarException gex) { - String msg = String.format("Error in block (%s)", reader.getBlock()); - throw new GrammarException(msg, gex); - } - } catch (Exception ex) { - throw new GrammarException("Unknown error handling block", ex); - } - } - - /* Throughout these, level indicates the nesting level of that construct. */ - - /* Handles an arbitrary block. */ - private static void handleBlock(RGrammarBuilder build, String block, - int level) throws GrammarException { - /* Discard empty blocks. */ - if (block.equals("") || block.matches("\\R")) - return; - - int typeSep = block.indexOf(' '); - - if (typeSep == -1) { - throw new GrammarException( - "A block must start with a introducer, followed by a space, then the rest of the block"); - } - - String blockType = block.substring(0, typeSep).trim(); - - if (blockType.equalsIgnoreCase("pragma")) { - handlePragmaBlock(block, build, level); - } else if (blockType.startsWith("[")) { - handleRuleBlock(block, build, level); - } else if (blockType.equalsIgnoreCase("where")) { - handleWhereBlock(block, build, level); - } else if (blockType.equalsIgnoreCase("#")) { - if(DEBUG) - System.err.printf("Handled comment block (%s)\n", block); - /* - * Comment block. - * - * @TODO 10/11/17 Ben Culkin :GrammarComment - * Attach these to the grammar somehow so that they - * can be re-output during formatting. - */ - return; - } else { - String msg = String.format("Unknown block type: '%s'", blockType); - throw new GrammarException(msg); - } - } - - /* Handle reading a block of pragmas. */ - private static void handlePragmaBlock(String block, RGrammarBuilder build, - int level) throws GrammarException { - String dlm = String.format(TMPL_PRAGMA_BLOCK_DELIM, level); - try (BlockReader pragmaReader = new SimpleBlockReader(dlm, new StringReader(block))) { - try { - pragmaReader.forEachBlock((pragma) -> { - if(DEBUG) - System.err.printf("Handled pragma block (%s)\n", pragma); - - String pragmaContents = pragma.contents; - - int pragmaSep = pragmaContents.indexOf(' '); - - if (pragmaSep == -1) { - String msg = "A pragma invocation must consist of the word pragma, followed by a space, then the body of the pragma"; - - throw new GrammarException(msg); - } - - String pragmaLeader = pragmaContents.substring(0, pragmaSep); - String pragmaBody = pragmaContents.substring(pragmaSep + 1); - - if (!pragmaLeader.equalsIgnoreCase("pragma")) { - String msg = String.format("Illegal line leader in pragma block: '%s'", pragmaLeader); - - throw new GrammarException(msg); - } - - handlePragma(pragmaBody, build, level); - }); - } catch (GrammarException gex) { - Block pragma = pragmaReader.getBlock(); - String msg = String.format("Error in pragma: (%s)", pragma); - - throw new GrammarException(msg, gex); - } - } catch (Exception ex) { - throw new GrammarException("Unknown error handling pragma block", ex); - } - } - - /* Handle an individual pragma in a block. */ - private static void handlePragma(String pragma, RGrammarBuilder build, - int level) throws GrammarException { - int bodySep = pragma.indexOf(' '); - - if (bodySep == -1) - bodySep = pragma.length(); - - String pragmaName = pragma.substring(0, bodySep); - String pragmaBody = pragma.substring(bodySep + 1); - - if (pragmas.containsKey(pragmaName)) { - try { - if(DEBUG) - System.err.printf("Handled pragma '%s'\n", pragmaName); - - pragmas.get(pragmaName).accept(pragmaBody, build, level); - } catch (GrammarException gex) { - String msg = String.format("Error in pragma '%s'", pragmaName); - - throw new GrammarException(msg, gex); - } - } else { - String msg = String.format("Unknown pragma '%s'", pragmaName); - - throw new GrammarException(msg); - } - } - - /* Handle a block of a rule declaration and one or more cases. */ - private static void handleRuleBlock(String ruleBlock, RGrammarBuilder build, - int level) throws GrammarException { - String dlm = String.format(TMPL_RULEDECL_BLOCK_DELIM, level); - try (BlockReader ruleReader = new SimpleBlockReader(dlm, new StringReader(ruleBlock))) { - try { - if (ruleReader.hasNextBlock()) { - /* Rule with a declaration followed by multiple cases. */ - ruleReader.nextBlock(); - Block declBlock = ruleReader.getBlock(); - - String declContents = declBlock.contents; - Rule rl = handleRuleDecl(build, declContents); - - ruleReader.forEachBlock((block) -> { - /* Ignore comment lines. */ - if(block.contents.trim().startsWith("#")) return; - - handleRuleCase(block.contents, build, rl); - }); - } else { - /* Rule with a declaration followed by a single case. */ - handleRuleDecl(build, ruleBlock); - } - } catch (GrammarException gex) { - String msg = String.format("Error in rule case (%s)", ruleReader.getBlock()); - - throw new GrammarException(msg, gex); - } - } catch (Exception ex) { - throw new GrammarException("Unknown error handling rule block", ex); - } - } - - /* Handle a rule declaration and its initial case. */ - private static Rule handleRuleDecl(RGrammarBuilder build, String declContents) { - int declSep = declContents.indexOf("\u2192"); - - if (declSep == -1) { - /* - * @NOTE - * We should maybe remove support for the old - * syntax at some point. However, maybe we don't - * want to do so so as to make inputting grammars - * easier. - */ - declSep = declContents.indexOf(' '); - - if (declSep == -1) { - String msg = "A rule must be given at least one case in its declaration, and seperated from that case by \u2192"; - - throw new GrammarException(msg); - } - } - - String ruleName = declContents.substring(0, declSep).trim(); - String ruleBody = declContents.substring(declSep + 1).trim(); - - if (ruleName.equals("")) { - throw new GrammarException("The empty string is not a valid rule name"); - } - - Rule rul = build.getOrCreateRule(ruleName); - - handleRuleCase(ruleBody, build, rul); - - return rul; - } - - /* Handle a single case of a rule. */ - private static void handleRuleCase(String cse, RGrammarBuilder build, Rule rul) { - IList caseParts = new FunctionalList<>(); - - for (String csepart : cse.split(" ")) { - String partToAdd = csepart.trim(); - - /* Ignore empty parts */ - if (partToAdd.equals("")) - continue; - - caseParts.add(CaseElement.createElement(partToAdd)); - } - - rul.addCase(new RuleCase(RuleCase.CaseType.NORMAL, caseParts)); - } - - /* Handle a where block (a block with local rules). */ - private static void handleWhereBlock(String block, RGrammarBuilder build, - int level) throws GrammarException { - int nlIndex = block.indexOf("\\n"); - - if (nlIndex == -1) { - throw new GrammarException("Where block must be a context followed by a body"); - } - - String trimBlock = block.substring(nlIndex).trim(); - - String whereDelim = String.format(TMPL_WHERE_BLOCK_DELIM, level); - - try (BlockReader whereReader = new SimpleBlockReader(whereDelim, - new StringReader(trimBlock))) { - try { - Block whereCtx = whereReader.next(); - - StringReader ctxReader = new StringReader(whereCtx.contents.trim()); - String ctxDelim = String.format(TMPL_TOPLEVEL_BLOCK_DELIM, level + 1); - - try (BlockReader bodyReader = new SimpleBlockReader(ctxDelim, ctxReader)) { - @SuppressWarnings("unused") - Block whereBody = whereReader.next(); - - /** - * @TODO 10/11/17 Ben Culkin :WhereBlocks - * Implement where blocks. - * - * A where block has the context evaluated - * in a new context, and the body executed - * in that context. - */ - } - } catch (GrammarException gex) { - throw new GrammarException(String.format("Error in where block (%s)", - whereReader.getBlock()), gex); - } - } catch (Exception ex) { - throw new GrammarException("Unknown error in where block", ex); - } - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/RGrammarSet.java b/RGens/src/main/java/bjc/rgens/parser/RGrammarSet.java deleted file mode 100644 index 975510a..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/RGrammarSet.java +++ /dev/null @@ -1,290 +0,0 @@ -package bjc.rgens.parser; - -import java.io.BufferedReader; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.HashMap; -import java.util.Map; -import java.util.Scanner; -import java.util.Set; - -/** - * Represents a set of grammars that can share rules via exports. - * - * @author EVE - */ -public class RGrammarSet { - /* Contains all the grammars in this set. */ - private Map grammars; - - /* Contains all the exported rules from grammars. */ - private Map exportedRules; - - /* Contains which export came from which grammar. */ - private Map exportFrom; - - /* Contains which file a grammar was loaded from. */ - private Map loadedFrom; - - /** Create a new set of randomized grammars. */ - public RGrammarSet() { - grammars = new HashMap<>(); - - exportedRules = new HashMap<>(); - - exportFrom = new HashMap<>(); - loadedFrom = new HashMap<>(); - } - - /** - * Add a grammar to this grammar set. - * - * @param grammarName - * The name of the grammar to add. - * - * @param gram - * The grammar to add. - * - * @throws IllegalArgumentException - * If the grammar name is invalid. - */ - public void addGrammar(String grammarName, RGrammar gram) { - /* Make sure a grammar is valid. */ - if (grammarName == null) { - throw new NullPointerException("Grammar name must not be null"); - } else if (gram == null) { - throw new NullPointerException("Grammar must not be null"); - } else if (grammarName.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid grammar name"); - } - - grammars.put(grammarName, gram); - - /* Process exports from the grammar. */ - for (Rule export : gram.getExportedRules()) { - exportedRules.put(export.name, gram); - - exportFrom.put(export.name, grammarName); - } - - /* Add exports to grammar. */ - gram.setImportedRules(exportedRules); - } - - /** - * Get a grammar from this grammar set. - * - * @param grammarName - * The name of the grammar to get. - * - * @return - * The grammar with that name. - * - * @throws IllegalArgumentException - * If the grammar name is invalid or not present in this set. - */ - public RGrammar getGrammar(String grammarName) { - /* Check arguments. */ - if (grammarName == null) { - throw new NullPointerException("Grammar name must not be null"); - } else if (grammarName.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid grammar name"); - } else if (!grammars.containsKey(grammarName)) { - String msg = String.format("No grammar with name '%s' found", grammarName); - - throw new IllegalArgumentException(msg); - } - - return grammars.get(grammarName); - } - - /** - * Get the grammar a rule was exported from. - * - * @param exportName - * The name of the exported rule. - * - * @return - * The grammar the exported rule came from. - * - * @throws IllegalArgumentException - * If the export name is invalid or not present in this set. - */ - public RGrammar getExportSource(String exportName) { - /* Check arguments. */ - if (exportName == null) { - throw new NullPointerException("Export name must not be null"); - } else if (exportName.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid rule name"); - } else if (!exportedRules.containsKey(exportName)) { - String msg = String.format("No export with name '%s' defined", exportName); - throw new IllegalArgumentException(msg); - } - - return exportedRules.get(exportName); - } - - /** - * Get the source of an exported rule. - * - * This will often be a grammar name, but is not required to be one. - * - * @param exportName - * The name of the exported rule. - * - * @return - * The source of an exported rule. - * - * @throws IllegalArgumentException - * If the exported rule is invalid or not present in this set. - */ - public String exportedFrom(String exportName) { - /* Check arguments. */ - if (exportName == null) { - throw new NullPointerException("Export name must not be null"); - } else if (exportName.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid rule name"); - } else if (!exportedRules.containsKey(exportName)) { - String msg = String.format("No export with name '%s' defined", exportName); - - throw new IllegalArgumentException(msg); - } - - return exportFrom.getOrDefault(exportName, "Unknown"); - } - - /** - * Get the source of an grammar - * - * This will often be a file name, but is not required to be one. - * - * @param grammarName - * The name of the exported grammar. - * - * @return - * The source of an exported grammar. - * - * @throws IllegalArgumentException - * If the exported grammar is invalid or not present in this set. - */ - public String loadedFrom(String grammarName) { - /* Check arguments. */ - if (grammarName == null) { - throw new NullPointerException("Grammar name must not be null"); - } else if (grammarName.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid grammar name"); - } else if (grammarName.equals("unknown")) { - return grammarName; - } else if (!grammars.containsKey(grammarName)) { - String msg = String.format("No grammar with name '%s' defined", grammarName); - throw new IllegalArgumentException(msg); - } - - return loadedFrom.getOrDefault(grammarName, "Unknown"); - } - - /** - * Get the names of all the grammars in this set. - * - * @return - * The names of all the grammars in this set. - */ - public Set getGrammars() { - return grammars.keySet(); - } - - /** - * Get the names of all the exported rules in this set. - * - * @return - * The names of all the exported rules in this set. - */ - public Set getExportedRules() { - return exportedRules.keySet(); - } - - /** - * Load a grammar set from a configuration file. - * - * @param cfgFile - * The configuration file to load from. - * - * @return - * The grammar set created by the configuration file. - * - * @throws IOException - * If something goes wrong during configuration loading. - */ - public static RGrammarSet fromConfigFile(Path cfgFile) throws IOException { - /* The grammar set to hand back. */ - RGrammarSet set = new RGrammarSet(); - - /* Get the directory that contains the config file. */ - Path cfgParent = cfgFile.getParent(); - - try(Scanner scn = new Scanner(cfgFile)) { - /* Execute lines from the configuration file. */ - while (scn.hasNextLine()) { - String ln = scn.nextLine().trim(); - - /* Ignore blank/comment lines. */ - if (ln.equals("")) continue; - - if (ln.startsWith("#")) continue; - - /* Handle mixed whitespace. */ - ln = ln.replaceAll("\\s+", " "); - - /* - * Get the place where the name of the grammar - * ends. - */ - int nameIdx = ln.indexOf(" "); - if (nameIdx == -1) { - throw new GrammarException("Must specify a name for a loaded grammar"); - } - - /* Name and path of grammar. */ - String name = ln.substring(0, nameIdx); - Path path = Paths.get(ln.substring(nameIdx).trim()); - - /* - * Convert from configuration relative path to - * absolute path. - */ - Path convPath = cfgParent.resolve(path.toString()); - - //if(Files.isDirectory(convPath)) { - // /* @TODO implement subset grammars */ - // throw new GrammarException("Sub-grammar sets aren't implemented yet"); - //} else if (convPath.getFileName().endsWith(".gram")) { - /* Load grammar file. */ - try { - BufferedReader fis = Files.newBufferedReader(convPath); - RGrammar gram = RGrammarParser.readGrammar(fis); - fis.close(); - - /* Add grammar to the set. */ - set.addGrammar(name, gram); - - /* - * Mark where the grammar came - * from. - */ - set.loadedFrom.put(name, path.toString()); - } catch (GrammarException gex) { - String msg = String.format("Error loading file '%s'", path); - throw new GrammarException(msg, gex); - } - //} else { - // String msg = String.format("Unrecognized file type '%s'", convPath.getFileName()); - // throw new GrammarException(msg); - //} - } - } - - return set; - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/RGrammarTest.java b/RGens/src/main/java/bjc/rgens/parser/RGrammarTest.java deleted file mode 100644 index 4b1f283..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/RGrammarTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package bjc.rgens.parser; - -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URL; -import java.nio.file.Path; -import java.nio.file.Paths; - -/** - * Test for new grammar syntax. - * - * @author EVE - */ -public class RGrammarTest { - /** - * Main method. - * - * @param args - * Unused CLI args. - */ - public static void main(String[] args) { - URL rsc = RGrammarTest.class.getResource("/server-config-sample.cfg"); - - try { - /* Load a grammar set. */ - Path cfgPath = Paths.get(rsc.toURI()); - RGrammarSet gramSet = RGrammarSet.fromConfigFile(cfgPath); - - /* Generate rule suggestions for all the grammars in the set. */ - for (String gramName : gramSet.getGrammars()) { - gramSet.getGrammar(gramName).generateSuggestions(); - } - - /* Generate for each exported rule. */ - for (String exportName : gramSet.getExportedRules()) { - /* Where we loaded the rule from. */ - String loadSrc = gramSet.loadedFrom(gramSet.exportedFrom(exportName)); - - System.out.println(); - System.out.printf("Generating for exported rule '%s' from file '%s'\n", exportName, loadSrc); - - RGrammar grammar = gramSet.getExportSource(exportName); - for (int i = 0; i < 100; i++) { - try { - String res = grammar.generate(exportName); - if(exportName.contains("+")) res = res.replaceAll("\\s+", ""); - - if(res.length() > 120) { - System.out.printf("\t\n\tContents: %s\n\t\n", res); - } else { - System.out.printf("\tContents: %s\n", res); - } - } catch (GrammarException gex) { - /* Print out errors with generation. */ - String fmt = "Error in exported rule '%s' (loaded from '%s')\n"; - - System.out.printf(fmt, exportName, loadSrc); - System.out.println(); - gex.printStackTrace(); - - System.out.println(); - System.out.println(); - } - } - } - } catch (IOException ioex) { - ioex.printStackTrace(); - } catch (URISyntaxException urisex) { - urisex.printStackTrace(); - } - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/RGrammars.java b/RGens/src/main/java/bjc/rgens/parser/RGrammars.java deleted file mode 100644 index f74a756..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/RGrammars.java +++ /dev/null @@ -1,67 +0,0 @@ -package bjc.rgens.parser; - -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URI; -import java.nio.file.FileSystem; -import java.nio.file.FileSystems; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.HashMap; -import java.util.Map; - -/** - * Get access to the included grammars. - * - * @author Ben Culkin - */ -public class RGrammars { - private static RGrammarSet gramSet; - - private static void loadSet() { - try { - URI rsc = RGrammarTest.class.getResource("/server-config-sample.cfg").toURI(); - - Map env = new HashMap<>(); - env.put("create", "true"); - @SuppressWarnings("unused") - FileSystem zipfs = FileSystems.newFileSystem(rsc, env); - - Path cfgPath = Paths.get(rsc); - - gramSet = RGrammarSet.fromConfigFile(cfgPath); - } catch (IOException | URISyntaxException ex) { - RuntimeException rtex = new RuntimeException("Could not load grammars"); - - rtex.initCause(ex); - - throw rtex; - } - } - - /** - * Generate an exported rule. - * - * @param exportName - * The rule to generate. - * @return The generated rule - * @throws GrammarException - * If something went wrong. - */ - public static String generateExport(String exportName) throws GrammarException { - if (gramSet == null) - loadSet(); - - if (!gramSet.getExportedRules().contains(exportName)) { - throw new GrammarException(String.format("No exported rule named %s", exportName)); - } - - RGrammar gram = gramSet.getExportSource(exportName); - - String res = gram.generate(exportName); - if (exportName.contains("+")) - res = res.replaceAll("\\s+", ""); - - return res; - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/RegexRuleCase.java b/RGens/src/main/java/bjc/rgens/parser/RegexRuleCase.java deleted file mode 100644 index 5e03cd6..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/RegexRuleCase.java +++ /dev/null @@ -1,32 +0,0 @@ -package bjc.rgens.parser; - -import bjc.rgens.parser.elements.CaseElement; -import bjc.utils.funcdata.IList; - -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; - -public class RegexRuleCase extends RuleCase { - private Pattern patt; - - public RegexRuleCase(IList elements, String pattern) { - super(RuleCase.CaseType.REGEX); - - elementList = elements; - - try { - patt = Pattern.compile(pattern); - } catch (PatternSyntaxException psex) { - IllegalArgumentException iaex = - new IllegalArgumentException("This type requires a valid regular expression parameter"); - - iaex.initCause(psex); - - throw iaex; - } - } - - public Pattern getPattern() { - return patt; - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/Rule.java b/RGens/src/main/java/bjc/rgens/parser/Rule.java deleted file mode 100644 index 7043e0f..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/Rule.java +++ /dev/null @@ -1,134 +0,0 @@ -package bjc.rgens.parser; - -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.funcdata.IList; - -import java.util.Random; - -/** - * A rule in a randomized grammar. - * - * @author EVE - */ -public class Rule { - /** The name of this grammar rule. */ - public final String name; - - /* The cases for this rule. */ - private IList cases; - - /** - * Create a new grammar rule. - * - * @param ruleName - * The name of the grammar rule. - * - * @throws IllegalArgumentException - * If the rule name is invalid. - */ - public Rule(String ruleName) { - if (ruleName == null) { - throw new NullPointerException("Rule name must not be null"); - } else if (ruleName.equals("")) { - throw new IllegalArgumentException("The empty string is not a valid rule name"); - } - - name = ruleName; - - cases = new FunctionalList<>(); - } - - /** - * Adds a case to the rule. - * - * @param cse - * The case to add. - */ - public void addCase(RuleCase cse) { - if (cse == null) { - throw new NullPointerException("Case must not be null"); - } - - cases.add(cse); - } - - /** - * Get a random case from this rule. - * - * @return - * A random case from this rule. - */ - public RuleCase getCase() { - return cases.randItem(); - } - - /** - * Get a random case from this rule. - * - * @param rnd - * The random number generator to use. - * - * @return - * A random case from this rule. - */ - public RuleCase getCase(Random rnd) { - return cases.randItem(rnd::nextInt); - } - - /** - * Get all the cases of this rule. - * - * @return - * All the cases in this rule. - */ - public IList getCases() { - return cases; - } - - /** - * Replace the current list of cases with a new one. - * - * @param cases - * The new list of cases. - */ - public void replaceCases(IList cases) { - this.cases = cases; - } - - @Override - public int hashCode() { - final int prime = 31; - - int result = 1; - result = prime * result + ((cases == null) ? 0 : cases.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - - if (obj == null) return false; - - if (!(obj instanceof Rule)) return false; - - Rule other = (Rule) obj; - - if (cases == null) { - if (other.cases != null) return false; - } else if (!cases.equals(other.cases)) return false; - - if (name == null) { - if (other.name != null) return false; - } else if (!name.equals(other.name)) return false; - - return true; - } - - @Override - public String toString() { - return String.format("Rule [ruleName='%s', ruleCases=%s]", name, cases); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/RuleCase.java b/RGens/src/main/java/bjc/rgens/parser/RuleCase.java deleted file mode 100644 index 9c0a856..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/RuleCase.java +++ /dev/null @@ -1,88 +0,0 @@ -package bjc.rgens.parser; - -import bjc.rgens.parser.elements.CaseElement; -import bjc.utils.funcdata.IList; - -/* - * @NOTE - * If at some point we add new case types, they should go into subclasses, - * not into this class. - */ -/** - * A case in a rule in a randomized grammar. - * - * @author EVE - */ -public class RuleCase { - /** - * The possible types of a case. - * - * @author EVE - */ - public static enum CaseType { - /** A normal case, composed from a list of elements. */ - NORMAL, - /** A case that doesn't insert spaces. */ - SPACEFLATTEN, - /** A case that applies a regex after generation. */ - REGEX - } - - /** The type of this case. */ - public final CaseType type; - - /** - * The list of element values for this case. - * - *

Used For

- *
- *
NORMAL, SPACEFLATTEN
- *
Used as the list of elementList the rule is composed of.
- *
- */ - protected IList elementList; - - protected RuleCase(CaseType typ) { - type = typ; - } - - /** - * Create a new case of the specified type that takes a element list - * parameter. - * - * @param typ - * The type of case to create. - * - * @param elements - * The element list parameter of the case. - * - * @throws IllegalArgumentException - * If this type doesn't take a element list parameter. - */ - public RuleCase(CaseType typ, IList elements) { - this(typ); - - switch (typ) { - case NORMAL: - case SPACEFLATTEN: - break; - case REGEX: - throw new IllegalArgumentException("This type requires an element list and a pattern"); - default: - throw new IllegalArgumentException("This type doesn't have a element list parameter"); - } - - elementList = elements; - } - - /** - * Get the element list value of this type. - * - * @return - * The element list value of this case, or null if this type - * doesn't have one. - */ - public IList getElements() { - return elementList; - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java b/RGens/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java deleted file mode 100644 index 7229e92..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java +++ /dev/null @@ -1,7 +0,0 @@ -package bjc.rgens.parser.elements; - -public class BlankCaseElement extends LiteralCaseElement { - public BlankCaseElement() { - super(""); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/elements/CaseElement.java b/RGens/src/main/java/bjc/rgens/parser/elements/CaseElement.java deleted file mode 100644 index d74ab52..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/elements/CaseElement.java +++ /dev/null @@ -1,147 +0,0 @@ -package bjc.rgens.parser.elements; - -import bjc.rgens.parser.GrammarException; - -/* - * @TODO 10/11/17 Ben Culkin :CaseElementSplit Split this into multiple - * subclasses based off of a value of ElementType. - */ -/** - * A element in a rule case. - * - * @author EVE - */ -public class CaseElement { - /** - * The possible types of an element. - * - * @author EVE - */ - public static enum ElementType { - /** An element that represents a literal string. */ - LITERAL, - /** An element that represents a rule reference. */ - RULEREF, - /** An element that represents a random range. */ - RANGE, - /** An element that represents a variable that stores a string. */ - VARDEF, - /** - * An element that represents a variable that stores the result of generating a - * rule. - */ - EXPVARDEF; - } - - /* Regexps for marking rule types. */ - private static final String SPECIAL_CASELEM = "\\{[^}]+\\}"; - private static final String REFER_CASELEM = "\\[[^\\]]+\\]"; - private static final String RANGE_CASELM = "\\[\\d+\\.\\.\\d+\\]"; - - /** The type of this element. */ - public final ElementType type; - - /** - * Create a new case element. - * - * @param typ - * The type of this element. - */ - protected CaseElement(ElementType typ) { - type = typ; - } - - @Override - public String toString() { - switch (type) { - default: - return String.format("Unknown type '%s'", type); - } - } - - /** - * Create a case element from a string. - * - * @param csepart - * The string to convert. - * - * @return A case element representing the string. - */ - public static CaseElement createElement(String csepart) { - if (csepart == null) { - throw new NullPointerException("Case part cannot be null"); - } - - if (csepart.matches(SPECIAL_CASELEM)) { - /* Handle special cases. */ - String specialBody = csepart.substring(1, csepart.length() - 1); - - System.out.printf("\t\tTRACE: special body is '%s'\n", specialBody); - - if (specialBody.matches("\\S+:=\\S+")) { - /* Handle expanding variable definitions. */ - String[] parts = specialBody.split(":="); - - if (parts.length != 2) { - String msg = "Expanded variables must be a name and a definition, seperated by :="; - - throw new GrammarException(msg); - } - - return new ExpVariableCaseElement(parts[0], parts[1]); - } else if (specialBody.matches("\\S+=\\S+")) { - /* Handle regular variable definitions. */ - String[] parts = specialBody.split("="); - - if (parts.length != 2) { - String msg = "Variables must be a name and a definition, seperated by ="; - - throw new GrammarException(msg); - } - - return new LitVariableCaseElement(parts[0], parts[1]); - } else if (specialBody.matches("{empty}")) { - /* Literal blank, for empty cases. */ - return new BlankCaseElement(); - } else { - throw new IllegalArgumentException(String.format("Unknown special case part '%s'", specialBody)); - } - } else if (csepart.matches(REFER_CASELEM)) { - if (csepart.matches(RANGE_CASELM)) { - /* Handle ranges */ - String rawRange = csepart.substring(1, csepart.length() - 1); - - int firstNum = Integer.parseInt(rawRange.substring(0, rawRange.indexOf('.'))); - int secondNum = Integer.parseInt(rawRange.substring(rawRange.lastIndexOf('.') + 1)); - - return new RangeCaseElement(firstNum, secondNum); - } - - return new RuleCaseElement(csepart); - } else { - return new LiteralCaseElement(csepart); - } - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((type == null) ? 0 : type.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - CaseElement other = (CaseElement) obj; - if (type != other.type) - return false; - return true; - } -} \ No newline at end of file diff --git a/RGens/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java b/RGens/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java deleted file mode 100644 index 30925e2..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java +++ /dev/null @@ -1,7 +0,0 @@ -package bjc.rgens.parser.elements; - -public class ExpVariableCaseElement extends VariableCaseElement { - public ExpVariableCaseElement(String name, String def) { - super(name, def, true); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/elements/LitVariableCaseElement.java b/RGens/src/main/java/bjc/rgens/parser/elements/LitVariableCaseElement.java deleted file mode 100644 index 11035b1..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/elements/LitVariableCaseElement.java +++ /dev/null @@ -1,7 +0,0 @@ -package bjc.rgens.parser.elements; - -public class LitVariableCaseElement extends VariableCaseElement { - public LitVariableCaseElement(String name, String def) { - super(name, def, false); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/elements/LiteralCaseElement.java b/RGens/src/main/java/bjc/rgens/parser/elements/LiteralCaseElement.java deleted file mode 100644 index d96a32d..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/elements/LiteralCaseElement.java +++ /dev/null @@ -1,7 +0,0 @@ -package bjc.rgens.parser.elements; - -public class LiteralCaseElement extends StringCaseElement { - public LiteralCaseElement(String vl) { - super(vl, true); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/elements/RangeCaseElement.java b/RGens/src/main/java/bjc/rgens/parser/elements/RangeCaseElement.java deleted file mode 100644 index d98bc61..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/elements/RangeCaseElement.java +++ /dev/null @@ -1,43 +0,0 @@ -package bjc.rgens.parser.elements; - -public class RangeCaseElement extends CaseElement { - public final int begin; - public final int end; - - public RangeCaseElement(int beg, int en) { - super(ElementType.RANGE); - - begin = beg; - end = en; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = super.hashCode(); - result = prime * result + begin; - result = prime * result + end; - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (!super.equals(obj)) - return false; - if (getClass() != obj.getClass()) - return false; - RangeCaseElement other = (RangeCaseElement) obj; - if (begin != other.begin) - return false; - if (end != other.end) - return false; - return true; - } - - @Override - public String toString() { - return String.format("[%d..%d]", begin, end); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java b/RGens/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java deleted file mode 100644 index f4d3512..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java +++ /dev/null @@ -1,7 +0,0 @@ -package bjc.rgens.parser.elements; - -public class RuleCaseElement extends StringCaseElement { - public RuleCaseElement(String vl) { - super(vl, false); - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/elements/StringCaseElement.java b/RGens/src/main/java/bjc/rgens/parser/elements/StringCaseElement.java deleted file mode 100644 index 0e64fd3..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/elements/StringCaseElement.java +++ /dev/null @@ -1,41 +0,0 @@ -package bjc.rgens.parser.elements; - -public class StringCaseElement extends CaseElement { - public final String val; - - protected StringCaseElement(String vl, boolean isLiteral) { - super(isLiteral ? ElementType.LITERAL : ElementType.RULEREF); - - val = vl; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = super.hashCode(); - result = prime * result + ((val == null) ? 0 : val.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (!super.equals(obj)) - return false; - if (getClass() != obj.getClass()) - return false; - StringCaseElement other = (StringCaseElement) obj; - if (val == null) { - if (other.val != null) - return false; - } else if (!val.equals(other.val)) - return false; - return true; - } - - @Override - public String toString() { - return val; - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java b/RGens/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java deleted file mode 100644 index 920445a..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java +++ /dev/null @@ -1,60 +0,0 @@ -package bjc.rgens.parser.elements; - -public class VariableCaseElement extends CaseElement { - /** - * The name of the variable this element defines. - */ - public final String varName; - - /** - * The definition of the variable this element defines. - */ - public final String varDef; - - public VariableCaseElement(String name, String def, boolean isExp) { - super(isExp ? ElementType.EXPVARDEF : ElementType.VARDEF); - - varName = name; - varDef = def; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = super.hashCode(); - result = prime * result + ((varDef == null) ? 0 : varDef.hashCode()); - result = prime * result + ((varName == null) ? 0 : varName.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (!super.equals(obj)) - return false; - if (getClass() != obj.getClass()) - return false; - VariableCaseElement other = (VariableCaseElement) obj; - if (varDef == null) { - if (other.varDef != null) - return false; - } else if (!varDef.equals(other.varDef)) - return false; - if (varName == null) { - if (other.varName != null) - return false; - } else if (!varName.equals(other.varName)) - return false; - return true; - } - - @Override - public String toString() { - if (type == ElementType.VARDEF) { - return String.format("{%s:=%s}", varName, varDef); - } else { - return String.format("{%s=%s}", varName, varDef); - } - } -} diff --git a/RGens/src/main/java/bjc/rgens/parser/new-syntax.txt b/RGens/src/main/java/bjc/rgens/parser/new-syntax.txt deleted file mode 100644 index f6578b4..0000000 --- a/RGens/src/main/java/bjc/rgens/parser/new-syntax.txt +++ /dev/null @@ -1,13 +0,0 @@ -[grammar] → ([block] ( / \n\.\n ? / [block])*) ? - -[block] → [pragma - block] -→ [rule - block] -→ [where - block] - -[pragma - block] → [pragma] ( / \n( ? !\t) / [pragma])* - -[rule - block] → [rule - decl] [rule - case] ( / \n\t / [rule - case])* - -[where - block] → where / \n\t / ([rule - block] / \n\t / ) + in / \n\t / [rule - block] - -[pragma] → pragma [pragma - name] [pragma - body] diff --git a/RGens/src/main/java/bjc/rgens/text/markov/Markov.java b/RGens/src/main/java/bjc/rgens/text/markov/Markov.java deleted file mode 100644 index e21d60f..0000000 --- a/RGens/src/main/java/bjc/rgens/text/markov/Markov.java +++ /dev/null @@ -1,208 +0,0 @@ -package bjc.rgens.text.markov; - -import java.util.Map.Entry; -import java.util.*; - -/** - * Represents a k-character substring. - * - * Can give a pseudo-random suffix character based on probability. - * - * @author Daniel Friedman (Fall 2011) - */ -public class Markov { - String substring; - int count = 0; - - TreeMap map; - - /** - * Constructs a Markov object from a given substring. - * - * @param substr - * The given substring. - */ - public Markov(String substr) { - this.substring = substr; - - map = new TreeMap<>(); - - add(); - } - - /** - * Constructs a Markov object from a given substring and suffix - * character. - * - * Suffix characters are stored in a TreeMap. - * - * @param substr - * The specified substring. - * - * @param suffix - * The specified suffix. - */ - public Markov(String substr, Character suffix) { - this.substring = substr; - - map = new TreeMap<>(); - - add(suffix); - } - - /** - * Increments the count of number of times the substring appears in a - * text. - */ - public void add() { - count++; - } - - /** - * Adds a suffix character to the TreeMap. - * - * @param c - * The suffix character to be added. - */ - public void add(char c) { - add(); - - if (map.containsKey(c)) { - int frequency = map.get(c); - map.put(c, frequency + 1); - } else { - map.put(c, 1); - } - } - - /** - * Gives the frequency count of a suffix character; that is, the number - * of times the specified suffix follows the substring in a text. - * - * @param c - * The specified suffix. - * - * @return - * The frequency count. - */ - public int getFrequencyCount(char c) { - if (!map.containsKey(c)) { - return -1; - } - - return map.get(c); - } - - /** - * Gives a percentage of frequency count / number of total suffixes. - * - * @param c - * The character to look for the frequency for. - * - * @return - * The ratio of frequency count of a single character to the total - * number of suffixes. - */ - public double getCharFrequency(char c) { - if (getFrequencyCount(c) == -1) { - return -1; - } - - return (double) getFrequencyCount(c) / (double) count; - } - - /** - * Finds whether or not the given suffix is in the TreeMap. - * - * @param c - * The given suffix. - * - * @return - * True if the suffix exists in the TreeMap, false otherwise. - */ - public boolean containsChar(char c) { - if (!map.containsKey(c)) { - return false; - } - - return true; - } - - /** - * Gives the number of times this substring occurs in a text. - * - * @return - * Said number of times. - */ - public int count() { - return count; - } - - /** - * Gives the TreeMap. - * - * @return - * The TreeMap. - */ - public TreeMap getMap() { - return map; - } - - /** - * Using probability, returns a pseudo-random character to follow the - * substring. - * - * Character possibilities are added to an ArrayList (duplicates - * allowed), and a random number from 0 to the last index in the - * ArrayList is picked. Since more common suffixes occupy more indices - * in the ArrayList, the probability of getting a more common suffix is - * greater than the probability of getting a less common suffix. - * - * @return - * The pseudo-random suffix. - */ - public char random() { - Character ret = null; - - Set> s = map.entrySet(); - - Iterator> it = s.iterator(); - - ArrayList suffixes = new ArrayList<>(); - - while (it.hasNext()) { - Entry tmp = it.next(); - - for (int i = 0; i < tmp.getValue(); i++) { - suffixes.add(tmp.getKey()); - } - } - - Random rand = new Random(); - - int retIndex = rand.nextInt(suffixes.size()); - ret = suffixes.get(retIndex); - - return ret; - } - - /** - * Gives a String representation of the Markov object. - * - * @return - * Said String representation. - */ - @Override - public String toString() { - String ret = "Substring: " + substring + ", Count: " + count; - ret += "\n" + "Suffixes and frequency counts: "; - - for (Entry entry : map.entrySet()) { - char key = entry.getKey(); - int value = entry.getValue(); - ret += "\n" + "Suffix: " + key + ", frequency count: " + value; - } - - return ret; - } -} diff --git a/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java b/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java deleted file mode 100644 index cebf2bc..0000000 --- a/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java +++ /dev/null @@ -1,70 +0,0 @@ -package bjc.rgens.text.markov; - -import java.util.Map; - -/** - * A standalone Markov generator. - * - * @author bjculkin - */ -public class StandaloneMarkov { - /* The order of the generator. */ - private int ord; - - /* The generators to use. */ - private Map hash; - /* The initial string. */ - private String first; - - /** - * Create a new standalone Markov generator. - * - * @param order - * The order of this generator. - * - * @param markovHash - * The generators to use. - * - * @param firstSub - * The string to start out with. - */ - public StandaloneMarkov(int order, Map markovHash, String firstSub) { - ord = order; - hash = markovHash; - first = firstSub; - } - - /** - * Generate random text from the markov generator. - * - * @param charsToGenerate - * The number of characters of text to generate. - * - * @return - * The randomly generate text. - */ - public String generateTextFromMarkov(int charsToGenerate) { - StringBuilder text = new StringBuilder(); - - for (int i = ord; i < charsToGenerate; i++) { - if (i == ord) { - text.append(first); - - if (text.length() > ord) i = text.length(); - } - - String sub = text.substring(i - ord, i); - Markov tmp = hash.get(sub); - - if (tmp != null) { - Character nextChar = tmp.random(); - - text.append(nextChar); - } else { - i = ord - 1; - } - } - - return text.toString(); - } -} diff --git a/RGens/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java b/RGens/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java deleted file mode 100644 index 339e8d5..0000000 --- a/RGens/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java +++ /dev/null @@ -1,76 +0,0 @@ -package bjc.rgens.text.markov; - -import java.io.IOException; -import java.io.Reader; -import java.util.HashMap; -import java.util.Map; - -/** - * Create a Markov generate from a provided source. - * - * @author bjculkin - */ -public class StandaloneTextGenerator { - /** - * Build a markov generator from a provided source. - * - * @param order - * The markov order to use. - * - * @param reader - * The source to seed the generator from. - * - * @return - * The markov generator for the provided text. - */ - public static StandaloneMarkov generateMarkovMap(int order, Reader reader) { - Map hash = new HashMap<>(); - - Character next = null; - - try { - next = (char) reader.read(); - } catch (IOException e1) { - System.out.println("IOException in stepping through the reader"); - - e1.printStackTrace(); - - System.exit(1); - } - - StringBuilder origFileBuffer = new StringBuilder(); - - while (next != null && Character.isDefined(next)) { - Character.toString(next); - origFileBuffer.append(next); - - try { - next = (char) reader.read(); - } catch (IOException e) { - System.out.println("IOException in stepping through the reader"); - - e.printStackTrace(); - } - - } - - String origFile = origFileBuffer.toString(); - String firstSub = origFile.substring(0, order); - - for (int i = 0; i < origFile.length() - order; i++) { - String sub = origFile.substring(i, i + order); - Character suffix = origFile.charAt(i + order); - - if (hash.containsKey(sub)) { - Markov marvin = hash.get(sub); - marvin.add(suffix); - hash.put(sub, marvin); - } else { - Markov marvin = new Markov(sub, suffix); - hash.put(sub, marvin); - } - } - - return new StandaloneMarkov(order, hash, firstSub); - } -} diff --git a/RGens/src/main/java/bjc/rgens/text/markov/TextGenerator.java b/RGens/src/main/java/bjc/rgens/text/markov/TextGenerator.java deleted file mode 100644 index f629d49..0000000 --- a/RGens/src/main/java/bjc/rgens/text/markov/TextGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package bjc.rgens.text.markov; - -import java.io.*; - -/** - * Generate text from a markov model of an input text - * - * @author ben - * - */ -public class TextGenerator { - /** - * Main method. - * - * @param args - * When used with three arguments, the first represents the k-order - * of the Markov objects. The second represents the number of - * characters to print out. The third represents the file to be - * read. - * - * When used with two arguments, the first represents the k-order - * of the Markov objects, and the second represents the file to be - * read. The generated text will be the same number of characters - * as the original file. - */ - public static void main(String[] args) { - int k = 0; - int M = 0; - - String file = ""; - StringBuilder text = new StringBuilder(); - - if (args.length == 3) { - k = Integer.parseInt(args[0]); - M = Integer.parseInt(args[1]); - - file = args[2]; - } else if (args.length == 2) { - k = Integer.parseInt(args[0]); - - file = args[1]; - } else { - System.out.println("\n" + "Usage: java TextGenerator k M file"); - System.out.println("where k is the markov order, M is the number"); - System.out.println("of characters to be printed, and file is the"); - System.out.println("name of the file to print from. M may be left out." + "\n"); - System.exit(1); - } - - StandaloneMarkov markov = null; - - try (FileReader reader = new FileReader(file)) { - markov = StandaloneTextGenerator.generateMarkovMap(k, reader); - - String generatedText = markov.generateTextFromMarkov(M); - String desiredText = generatedText.substring(0, Math.min(M, text.length())); - - System.out.println(desiredText); - } catch (FileNotFoundException e) { - System.out.println("File not found."); - - e.printStackTrace(); - - System.exit(1); - } catch (IOException ioex) { - System.out.println("IOException"); - - ioex.printStackTrace(); - - System.exit(1); - } - } -} diff --git a/RGens/src/main/sql/db_schema.sql b/RGens/src/main/sql/db_schema.sql deleted file mode 100644 index 553c7a8..0000000 --- a/RGens/src/main/sql/db_schema.sql +++ /dev/null @@ -1,15 +0,0 @@ -create table Rules ( - ruleid serial, - name varchar(255) not null, - casecount int, - primary key(id) -); - -create index Rules_name on Rules(name); - -create table RuleCases ( - ruleid serial, - cse varchar(255) array -); - -create index RuleCase_id on RuleCases(ruleid); diff --git a/RGens/todos.txt b/RGens/todos.txt deleted file mode 100644 index e4e39cd..0000000 --- a/RGens/todos.txt +++ /dev/null @@ -1,56 +0,0 @@ -@TODO 10/11/17 Ben Culkin :GrammarReorg - Better organize the provided sample grammars. - -@TODO 10/11/17 Ben Culkin :Determinism - Add a way to get the grammar to pick rules in a deterministic fashion, - so as to be able to iterate all of the rules. - -@TODO 10/11/17 Ben Culkin :ExportSanity - Figure out a way to organize exports instead of just sticking them all - into the global namespace. Maybe use the @ symbol for 'foreign rule - references' (FRRs) - - ADDENDA: 10/26/17 - We now have the '^' syntax to avoid shadowing issues, but this - doesn't avoid the issue with duplicate exports. - -@TODO 10/23/17 Ben Culkin :Casing - Provide some way to convert rules into different cases. - -@TODO 10/23/17 Ben Culkin :Spacing - Find a saner way to do spacing. + rules work well for some things, but - what is needed is some way to do it only one level deep. Possibly some - kind of pragma to convert a rule to a single-level spacer? - - ADDENDA: 10/24/17 - We now have a partial solution in 'despace-rule'. Now, grammars need to - be adapted to use it. - -@TODO 10/23/17 Ben Culkin :Pluralizing - Add some way to say to pluralize the contents of a rule - -@TODO 10/23/17 Ben Culkin :Extensions - Add some soft of pragmas to allow the loading of extensions that provide - custom rules/case types/pragmas and things like that - -@TODO 10/30/17 Ben Culkin :RegexPragma - Add a pragma that applies a regex substitution to the generated version - of a rule. - -@TODO 4/25/18 Ben Culkin :Debugging - Add a way to print out the rules as a tree format, so as to perform - better debugging of rules. - - Once this has been done, consider doing a CLI interface that allows - manipulating and using grammars. - -@TODO 5/10/18 Ben Culkin :Despace - Add a generalized form of despace-rule that allows inserting arbitray - text between rule bits. Maybe call it 'intersperse-rule'? - -@TODO 5/10/18 Ben Culkin :RuleInclusion - Add some way to sort of 'import' a rules body into another rule so as to - not throw off probability by splitting. - -@TODO 5/18/18 Ben Culkin :PragmaErrors - Give better error messages for malformed pragmas diff --git a/data/misc/700000items.gram b/data/misc/700000items.gram new file mode 100644 index 0000000..4158dcb --- /dev/null +++ b/data/misc/700000items.gram @@ -0,0 +1,99 @@ +[item-name] [noun] + +pragma prefix-with [item-name] [post] +pragma prefix-with [item-name] [adj] +pragma prefix-with [item-name] [adj] +pragma prefix-with [item-name] [pre] + +pragma suffix-with [item-name] [end] + +pragma initial-rule [item-name] + +[noun] Boy + Kid + Tears + Head + Bag + Brain + Box + Eye + Sack + Meat + Paw + Ring + Poop + Acid + Liquid + Shield + Money + Friend + Aura + Battery + Milk + +[end] of Secrets + of Flies + da Whoop + of Shadows + of Meat + Baby + of Pills + of Cards + Fetus + Worm + 2.0 + is Power + in a jar + +[adj] Gross + Smelly + Holy + Dead + Small + Rotten + Tiny + Magic + Mysterious + Lost + Little + Sacred + Cursed + Evil + Demonic + Sad + Turdy + Sticky + Ultra + Super + Satanic + Sulfuric + Epic + Explosive + Powerful + Charged + Electric + Bloody + Charmed + Burning + Charred + Poison + Rainbow + Soy + +[post] Bomb + Coin + Spider + Fly + Cube of + Book of + Halo of + Trinity + Bum + Revenge + +[pre] Bob's + Guppy's + Mr. + My + Mom's + Mama diff --git a/data/misc/nimble.gram b/data/misc/nimble.gram new file mode 100644 index 0000000..3567777 --- /dev/null +++ b/data/misc/nimble.gram @@ -0,0 +1,30 @@ +[nimble-bimble] [bimble] + +pragma prefix-with [nimble-bimble] [nimble-plural] +pragma suffix-with [nimble-bimble] [nimble-plural] + +pragma initial-rule [nimble-bimble] + +[nimble-plural] [nimble-art] [nimble] + +[bimble] bimble + nimble + bimble + nimble + bimble + nimble + dindle + symbol + frindle + kindle + titties + +[nimble-art] the + my + her + all over + this + while they + a + +[nimble] [bimble] diff --git a/data/new-sample-grammars/cbs.gram b/data/new-sample-grammars/cbs.gram new file mode 100644 index 0000000..8d05dd1 --- /dev/null +++ b/data/new-sample-grammars/cbs.gram @@ -0,0 +1,86 @@ +where + [boss+codirector] → [boss-co] Director + . + [boss+cochief] → [boss-co] Chief + . + [boss+cohead] → [boss-co] Head + . + [boss+copresident] → [boss-co] President + . + [boss+comanager] → [boss-co] Manager + . + [boss-managing] → Managing + Acting + General + . + [boss-vice] → Vice + Vice + Vice + Corporate Vice + {empty} + . + [boss-co] → Co- + {empty} + . +in + [boss-title] → [boss-vice] [boss+codirector] + [boss+cochief] + [boss+cohead] + [boss-vice] [boss+copresident] + Supervisor + [boss+comanager] +end + +[boss-age] → Senior + {empty} + +[boss-exec] → Executive + Principal + {empty} + {empty} + +[boss-groupal] → Group + Global + {empty} + {empty} + +[boss-department] → Human Resources + Controlling + Internal Audit + Legal + Operations + Management Office + Customer Relations + Client Leadership + Client Relationship + Business Planning + Business Operations + IT Strategy + IT Operations + Marketing + Strategic Planning + Facilities Management + Innovation + Identity + Branding + Diversity and Exclusion + +[boss-departmentrole] → [boss-department] + [boss-department] + [boss-department] + [boss-department] + [boss-department] + Visionary + Digital + Technical + Manifesto + +[boss-catalyst] → Catalyst + Futurist + Officer + Officer + +[boss] → [boss-managing] [boss-age] [boss-exec] [boss-title] of +[boss-department] + [boss-groupal] Chief [boss-departmentrole] [boss-catalyst] + diff --git a/data/new-sample-grammars/drakensang/armor.gram b/data/new-sample-grammars/drakensang/armor.gram new file mode 100644 index 0000000..d559761 --- /dev/null +++ b/data/new-sample-grammars/drakensang/armor.gram @@ -0,0 +1,142 @@ +[ds-armor] [spellweaver-armor] + [ranger-armor] + [dragonknight-armor] + +pragma initial-rule [ds-armor] + +[dragonknight-armor] [dragonknight-armortype] + [dragonknight-armorprefix] [dragonknight-armortype] + [dragonknight-armorprefix] [dragonknight-armortype] + [dragonknight-armorprefix] [dragonknight-armortype] + +[dragonknight-armortype] jackboots + cloak + gloves + pauldrons + bandana + coat + gauntlets + cap + armor + shirt + cowl + helmet + fists + +[dragonknight-armorprefix] cloth + fur + leather + hard-leather + studded + scaled + chain + chainmail + iron + steel + soldier + duria + plated + winged + black steel + obsidian steel + +[ranger-armor] [ranger-armortype] + [ranger-armorprefix] [ranger-armortype] + [ranger-armorprefix] [ranger-armortype] + [ranger-armorprefix] [ranger-armortype] + +[ranger-armortype] shoes + shirt + hand wraps + shoulder guards + mask + jerkin + fingerless gloves + cap + vest + head + skull + armor + bracers + pauldrons + gloves + claws + mail + mitts + jerkin + +[ranger-armorprefix] [ranger-armorprefix-1] + [ranger-armormaterial] + [ranger-armorprefix-combo] + +[ranger-armorprefix-prefix] grim + fearsome + spirit + cave + +pragma prefix-with [ranger-armorprefix] [ranger-armorprefix-prefix] + +[ranger-armorprefix-combo] [ranger-armormaterial] [ranger-armorprefix-1] + [ranger-armorprefix-1] [ranger-armormaterial] + +[ranger-armorprefix-1] stalkers + hunters + wolf + ramhorn + stag + bear + dragon-brood + +[ranger-armormaterial] linen + leather + wolfskin + grimwolf-skin + rams hide + ram skin + buckskin + bearskin + bearclaw + drakescale + dragonscale + fireleather + sunleather + +[spellweaver-armor] [spellweaver-armortype] + [spellweaver-armorprefix] [spellweaver-armortype] + [spellweaver-armorprefix] [spellweaver-armortype] + [spellweaver-armorprefix] [spellweaver-armortype] + +[spellweaver-armortype] cloak + gloves + collar + shoes + coronet + cap + robes + helmet + fist + mask + +[spellweaver-armorprefix] [spellweaver-armorprefix-1] + [spellweaver-armormaterial] + +[spellweaver-armorprefix-combo] [spellweaver-armormaterial] [spellweaver-armorprefix-1] + [spellweaver-armorprefix-1] [spellweaver-armormaterial] + +[spellweaver-armorprefix-1] apprentice + acolyte + travel + journeyman + spellweaver + arkan + elemental + duria + myrdosch magus + myrdosch mystic + mystic + +[spellweaver-armormaterial] linen + leather + silver + silk + brocade diff --git a/data/new-sample-grammars/drakensang/gems.gram b/data/new-sample-grammars/drakensang/gems.gram new file mode 100644 index 0000000..655bdcb --- /dev/null +++ b/data/new-sample-grammars/drakensang/gems.gram @@ -0,0 +1,91 @@ +[ds-gem] [gem-type] + [gem-type] + [gem-type] of qaizah + [unique-gem] + +pragma initial-rule [ds-gem] + +[gem-quality] [gem-quality-normal] + [gem-quality-normal] + [gem-quality-alt] + +[gem-quality-normal] flawed + splintered + simple + polished + radiant + flawless + sacred + royal + +[gem-quality-alt] [gem-quality-alt-1] + +[gem-quality-alt-1] lesser + cut + cruciate + astral + +[gem-quality-alt-2] lesser + small + large + huge + +[gem-adjective] crystal + festive + solstice + +pragma prefix-with [ds-gem] [gem-adjective] +pragma prefix-with [ds-gem] [gem-quality] + +[gem-type] ruby + onyx + sapphire + cyanite + diamond + amethyst + peridot + +[gem-category] gem + jewel + star + moon + stone + snowflake + crystal + skull + +[gem-descr] timeless + concentrated + fortified + powerful + +pragma prefix-with [gem-type] [gem-descr] +pragma suffix-with [gem-type] [gem-category] + +[unique-gem] [gem-category] of [unique-trail] + [unique-lead] [gem-category] + [unique-type] + [gem-category] of [unique-trail] + [unique-lead] [gem-category] + [unique-type] + [gem-category] + +[unique-trail] insight + immunity + rage + acceleration + shadows + willpower + +[unique-lead] solstice + fluorite + shadow + accelerating + equipment fortifying + +[unique-type] bloodstone + moonstone + +pragma prefix-with [unique-type] [gem-descr] +pragma prefix-with [unique-lead] [gem-descr] +pragma prefix-with [unique-trail] [gem-descr] diff --git a/data/new-sample-grammars/drakensang/runes.gram b/data/new-sample-grammars/drakensang/runes.gram new file mode 100644 index 0000000..28c12f0 --- /dev/null +++ b/data/new-sample-grammars/drakensang/runes.gram @@ -0,0 +1,29 @@ +[ds-rune] [rune-type] rune + rune of [rune-type] + +pragma initial-rule [ds-rune] + +[rune-quality] lesser + standard + mighty + supreme + grand + +pragma prefix-with [ds-rune] [rune-quality] + +[rune-type] devestation + celerity + persistence + regeneration + vitality + vigor + relentlessness + acceleration + fortitude + focus + resilience + materi blessing + wisdom seeker + vanquisher + +pragma prefix-with [rune-type] [rune-quality] diff --git a/data/new-sample-grammars/repinsult.gram b/data/new-sample-grammars/repinsult.gram new file mode 100644 index 0000000..30ac89d --- /dev/null +++ b/data/new-sample-grammars/repinsult.gram @@ -0,0 +1,196 @@ +[rep-insult] [rude-scapegoat] + +pragma prefix-with [rep-insult] [rude-phrase] +pragma prefix-with [rep-insult] [brag-verb] + +pragma initial-rule [rep-insult] + +[brag-verb] abolish + ban + bash + beat + blast + bomb + bury + clobber + demolish + drive SUVs over + flatten + glassify + kill + napalm + nuke + outlaw + overwhelm + screw + shoot + silence + steam-roller + wipe + +[rude-phrase] AIDS-infested + America-hating + Arab + ass-pounding + bleeding heart + boy-fucking + camel-fucking + camel-humping + camel-raping + cocksucking + bullshitting + Bush-hating + butt-banging + Chomsky-loving + Christ-hating + clueless + communist + cornholing + crazy + crying + dammed + DemocRAT + Democrat + disgusting + disobedient + disrespectful + fat + fat-assed + feel-goog + flag-hating + flag-burning + flaming + freedom-hating + French + Hitler-loving + holocaust-denying + homo + illegal + impractical + insane + Jesus-hating + koran-owning + left-wing + limp-wristed + lying + mendacious + moonbat + moronic + queer + rebellious + Saddam-loving + sick + skinny-assed + socialist + spamming + stupid + teflon + tin hat + unemployed + whining + wimpoid + +[rude-scapegoat] alien + America-hater + animal + Arab + assclown + asshole + atheist + bastard + black + bullshitter + bum biter + Bush-hater + Canadian + camel jockey + camel humper + camel kisser + Canuck + Canukistani + cheesehead + cheese-eater + child molester + chink + Chomskyite + Clinton-lover + Clintonite + cock sucker + commie + communist + conspiracy theorist + crackpot + creep + cum-drinker + dog-fucker + environmentalist + European + faggot + fart + fruitcake + gay boy + girlie-man + hate monger + homo idiot + Jew + Jew-boy + ketchup-eater + koran reader + leftie + liar + Liberal + LIEberal + loon + loser + luser + maggot + maroon + Mexican + Mooseslime + moron + Muslim + newbie + nigger + nutbar + pedophile + person with AIDS + pervert + piece of trash + pinko + pond sucker + queer + raghead + retard + Saddam-lover + Saddamocrat + sand monkey + sand nigger + scumbag + SOB + socialist + sock puppet + spammer + terrorist + trailer park scum + traitor + tree-hugger + vulture sock puppet + wannabe + welfare bum + wetback + whacko + wing nut + woman + +[rude-scapegoat] → AIDS carriers + Arabs + atheists + Bill Clinton + Bill + Billary + blacks + baby-killer + Bush-haters + Canadians + Canucks + Can diff --git a/data/rpg-tools-cd/wands.gram b/data/rpg-tools-cd/wands.gram new file mode 100644 index 0000000..2bf7cd8 --- /dev/null +++ b/data/rpg-tools-cd/wands.gram @@ -0,0 +1,119 @@ +[wand] a wand + a [material] wand + a [wand-tip] wand + a [material] [wand-tip] wand + +pragma suffix-with [wand] [tipped] +pragma suffix-with [wand] [ornament] +pragma suffix-with [wand] [inscription] + +pragma initial-rule [wand] + +[material] + ivory + glass + ash + bone + [material-metal] + [material-wood] + +[tipped] tipped with a [tip] + +[wand-tip] [tip] -tipped + +pragma despace-rule [wand-tip] + +[ornament] decorated with [ornaments] + +[inscription] inscribed with [inscriptions] + with a [inscriptions] inscribed on it + +[material-wood] teak + ironwood + bamboo + willow + bronze + cedar + darkwood + ebony + birch + oak + ash + pine + reed + +[material-metal] bronze + copper + mithril + steel + silver + +[tip] tuning fork + crystal lens + dragon tooth + dessicated eye + pentagram + crescent moon + [tip-jewel] + [tip-metal] + +[tip-jewel] diamond + amethyst + amber + emerald + onyx disc + ruby + uncut quartz + sapphire + +[tip-metal] golden orb + iron spike + copper sun + silver star + tin thimble + +[ornaments] ribbons + chains + feathers + glitter + leather braids + [ornaments-sigils] + [ornaments-creatures] + [ornaments-elements] + +[ornaments-sigils] lucky charms + hieroglyphs + alchemy signs + holy symbols + unholy symbols + arcane sigils + +[ornaments-elements] waves + lightning + flames + whirlwinds + +[ornaments-creatures] serpents + dragons + spiders and insects + +[inscriptions] unreadable + gnomish + aboleth + abyssal + aquan + dwarven + draconic + lost tongue + sphinx + ignan + orcish + elven + dreemspeech + celestial + runes + auran + sylvan + terran + druidic + infernal diff --git a/data/sample-grammars/24hr-rpg.gram b/data/sample-grammars/24hr-rpg.gram new file mode 100755 index 0000000..e372256 --- /dev/null +++ b/data/sample-grammars/24hr-rpg.gram @@ -0,0 +1,215 @@ +[rpg-name] → [rpg-part] , [rpg-part] and [rpg-part] + [rpg-part] and [rpg-part] + [rpg-part] / [rpg-part] + [rpg-part] the [rpg-part] + [rpg-part] : [rpg-part] the [rpg-part] + [rpg-part] : [rpg-part] [rpg-part] + +[rpg-name-phrase] [quote-rpg-name] was just released + [quote-rpg-name] vs [quote-rpg-name] : which is better? + [quote-rpg-name] : will it live up to the hype? + [quote-rpg-name] released its [ordinal] edition today + +[quote-rpg-name] ( [rpg-name] ) + +pragma initial-rule [rpg-name-phrase] +pragma export-rule [rpg-name] + +[rpg-part] → tits + teeth + claws + fluff + crunch + tools + guns + treachery + post-apocalyptic + underwater + terror + fast food + military + fortress + pirates + metalhead + genies + insects + environmentalism + voodoo + pitchforks + inventors + bomb technicians + zombies + vampires + the 70s + ninjas + cards + rebellion + cannibals + beast men + dancing + monty python + energy crisis + orchestra + summer + trolls + medical + time manipulation + hitchhiking + meteors + the meaning of life + literary figures + wrestlers + tournament + imaginary friends + world leaders + exploration + fish + gods + trading + rap battles + creation + blurring boundaries + animals + bounty hunters + organized crime + high school + cybernetics + aliens + contemporary world + urban fantasy + Nazis + robots + surfers + gentlemen + haberdashery + zeppelins + demons + rapscallions + memory loss + repetition + martial arts + conquistadors + winter + mummies + orcs + reinterpreted myths + machinery + harmony + motorcycles + horses + limited time + ancient + sleepovers + submarines + ambition + colors + marshmallows + the 90s + neckbeards + unicorns + clothing + hunting + world war I + trees + magical girls + game show + dragons + recursion + musicians + construction + plants + cats + drugs + surgery + politics + cartoons + athletics + disease + computers + cowboys + cars + cooking + samurai + spaceships + dinosaurs + candy + krakens + chainsaws + fists + crowbars + lava + elf + emperor + loch ness monster + knights + celebrities + video games + elves + the 2000s + rush hour traffic + spandex + stand-up comedy + nano-machines + mutation + dice + soft drinks + labyrinth + totalitarianism + prostitutes + cell phones + death + the line at the DMV + office + mars + the sun + survival + autumn + portals + world war II + the internet + brewing + alternate universe + tanks + jewelry + marketplace + dungeon building + business + coins + crustaceans + plumbing + parasites + rockets + electricity + speed + reincarnation + theatrics + storm chasers + curiosity + horror + tragedy + big damn heroes + SCIENCE! + transhumanism + spring + scandal + desert + laboratory + hipsters + obscure + dwarves + outer space + trains + religion + espionage + small scale + unicycles + airplanes + werewolves + fashion + JUSTICE! + suburbs + art + skies + madness + economy + the 60s diff --git a/data/sample-grammars/acronym.gram b/data/sample-grammars/acronym.gram new file mode 100644 index 0000000..ed18cfc --- /dev/null +++ b/data/sample-grammars/acronym.gram @@ -0,0 +1,27 @@ +[acronym] [acronym-part] + [acronym-part] + [acronym-part] + [acronym-part] + [acronym-phrase] + +pragma initial-rule [acronym] + +pragma despace-rule [acronym] + +[acronym-phrase] [acronym-part] / [acronym-part] + [acronym-part] - [acronym-part] + +[acronym-part] [join-acronym] + [dot-acronym] + +pragma export-rule [acronym-part] + +[join-acronym] [consonant] [vowel] [consonant] + [consonant-group] [consonant] [consonant] + [consonant] [consonant] [consonant] [consonant] + [consonant] [vowel] [consonant] [vowel] + [letter] [vowel-group] [letter] [consonant] + +[dot-acronym] [consonant] . [vowel] . [consonant] + [consonant] . [consonant] . [consonant] . [consonant] + [consonant] . [vowel] . [consonant] . [vowel] diff --git a/data/sample-grammars/address.gram b/data/sample-grammars/address.gram new file mode 100644 index 0000000..44475c4 --- /dev/null +++ b/data/sample-grammars/address.gram @@ -0,0 +1,133 @@ +[us-postal-address] [street-address] + +pragma initial-rule [us-postal-address] + +[address-prefix] [address-prefix-body] , + +[address-prefix-suffix] mail at + contact at + visit us at + located at + +pragma suffix-with [address-prefix] [address-prefix-suffix] + +[address-prefix-prefix] [full-name] + [full-name-and-title] + [person] + +[address-prefix-body] [address-prefix-prefix] + [address-prefix-prefix] + [company] + +[city-post-zip] , [city] , [us-postalstate] [zipcode] + +pragma prefix-with [us-postal-address] [address-prefix] +pragma suffix-with [us-postal-address] [city-post-zip] + +[com-company] , [company] + , [work-type] [company] + +[work-type] works for + works at + works with + contractor for + president of + interning at + +pragma suffix-with [address-prefix-prefix] [com-company] + +[street-address] [medium-number] [street] + p.o. box [medium-number] + [medium-number] [street] , apartment [small-number] [letter] + route [digit] box [medium-number] + [small-number] [street] + +pragma export-rule [street-address] + +[street] [tree] + [color] [tree] + [last-name] + [first-name] + route [small-number] + route [small-number] + county road [small-number] + [ordinal] street + [ordinal] ave. + [ordinal-number] st. + [ordinal-number] ave. + [letter] st. + [city] + [us-state] + [canada-province] + [nation] + [full-name] + [street-generic-standalone] + [street-generic] + [us-president] + [us-president-common] + +pragma prefix-with [street] [street-prefix] +pragma suffix-with [street] [street-suffix] + +[street-prefix] n. + s. + e. + w. + [cardinal] + +[street-suffix] street + st. + road + rd. + way + boulevard + blvd. + avenue + ave. + place + plaza + court + drive + highway + hwy. + parkway + pkwy. + pike + bypass + +[street-generic] main + main + high + independence + division + center + m. l. king + Washington + Lincoln + college + university + stadium + riverside + water + park + shore + airport + grand + sunset + telegraph + railroad + El Paseo + market + church + mill + highland + woodland + Hillcrest + Lakeview + central + [geographic-thing] + +[street-generic-standalone] Broadway + avenue of the Americas + Kingshighway + El Camino real diff --git a/data/sample-grammars/anime.gram b/data/sample-grammars/anime.gram new file mode 100755 index 0000000..85cc7db --- /dev/null +++ b/data/sample-grammars/anime.gram @@ -0,0 +1,102 @@ +[anime-name] [short-anime-name] + [short-anime-name] + [long-anime-name] + +[short-anime-name] [first-name] + [second-name] + [third-name] + +[long-anime-name] [short-anime-name] + +pragma initial-rule [anime-name] + +pragma suffix-with [short-anime-name] [first-name] +pragma suffix-with [short-anime-name] [second-name] +pragma suffix-with [short-anime-name] [third-name] + +pragma prefix-with [long-anime-name] [third-name] +pragma prefix-with [long-anime-name] [second-name] +pragma prefix-with [long-anime-name] [first-name] + +[first-name] Vampire + Cat + Death + Mermaid + Infinite + Quantum + Endless + Bravo + Magical + Neon + Omega + Robo + Gothic + Peach + Ghost + Rhinestone + Mini + Blood + Bubblegum + Tokyo + Lucky + Soul + Cowboy + Awkward + Lucid + Space + +[second-name] Princess + Planet + Blade + Bride + Squad + Soldier + Waitress + Handkerchief + Goddess + Sushi + Star + [planet] + Moon + Zombie + Banana + Dragon + Rocket + Fist + Chef + Robot + Psychic + Boogie + Power + Hamster + Tennis + Ballerina + Blackout + Phantom + +[third-name] Forever + Detectives + Memories + Outlaw + Chaos + Go! + Overture + 9000 + Super! + Zero + Genesis + Eternal + X + Revolution + Cowboy + Academy + Jellyfish + Club + Girl + Hunter + Arcade + Fantasy + Ultimate + Sudoku + Alchemy + Champion diff --git a/data/sample-grammars/art-objects.gram b/data/sample-grammars/art-objects.gram new file mode 100755 index 0000000..c824958 --- /dev/null +++ b/data/sample-grammars/art-objects.gram @@ -0,0 +1,142 @@ +[art-treasure-group] [art-treasure] + a choice between [art-treasure] and [art-treasure] + a choice between [quote-treasure] , [quote-treasure] and [quote-treasure] + [art-treasure] as well as [art-treasure] + [quote-treasure] ; [quote-treasure] as well as [quote-treasure] + [art-treasure] atop [art-treasure] + [art-treasure] hidden under [art-treasure] + [art-treasure] lying next to [art-treasure] + [art-treasure] hiding in [art-treasure] + [quote-treasure] hidden among [quote-treasure] and [quote-treasure] + +pragma initial-rule [art-treasure-group] + +[quote-treasure] ( [art-treasure] ) + +pragma despace-rule [quote-treasure] + +[art-treasure] [unowned-art-treasure] + [unowned-art-treasure] + [unowned-art-treasure] + [unowned-art-treasure] + [owned-art-treasure] + +pragma export-rule [art-treasure] +pragma prefix-with [art-treasure] a(n) + +[unowned-art-treasure] [gemstones] + [art-objects] + +[owned-art-treasure] [possesive-title] [unowned-art-treasure] + +[possesive-title] [full-name-and-title] 's + +[art-objects] [art-object] + +pragma export-rule [art-objects] +pragma prefix-with [art-objects] [art-object-pref] +pragma prefix-with [art-objects] [size] + +[art-object-pref] counterfeit + ancient + legendary + lost + holy + blessed + cursed + demonic + +[art-object] [common-art] + [uncommon-art] + [rare-art] + [legendary-art] + [epic-art] + [mythic-art] + +pragma export-rule [art-object] + +[size] tiny + miniscule + small + medium + large + huge + titanic + +[common-art] [common-goldring] + [statuette-mat] statuette + gold bracelet + silver necklace + bronze crown + silver-plated sword + silk robe + +[statuette-mat] bone + ivory + +[common-goldring] gold ring + gold ring with a [common-gem] + gold ring with [common-gem] inlay + gold ring with [common-gem] setting + +[uncommon-art] [uncommon-goldring] + [necklace-mat] necklace + gold bracelet studded with [rare-gem] + gold necklace adorned with [common-gem] + silver [tiaracrown] decorated with [common-gem] + ivory comb with embedded [rare-gem] + gold vestments + +[necklace-mat] gold + silver + +[tiaracrown] tiara + crown + +[uncommon-goldring] gold ring with [legendary-gem] inlay + gold ring with a [legendary-gem] + gold ring with [legendary-gem] setting + gold ring with [rare-gem] and [rare-gem] decorations + +[rare-art] [ring-mat] ring with a [legendary-gem] + [rare-statuette] statuette adorned with [rare-gem] + gold necklace adorned with [rare-gem] + gold crown with [rare-gem] + gold chalice dusted with [common-gem] + ceremonial gold chest-plate + enormous [common-gem] + +[ring-mat] gold + platinum + +[rare-statuette] gold + silver + +[legendary-art] platinum ring with [epic-gem] + gold statuette with [legendary-gem] + mithril necklace with [legendary-gem] + adamantine crown with many [legendary-gem] + adamantine box containing [art-element] + black tunic woven of pure [art-element] + enormous [rare-gem] + +[epic-art] mithril ring with an astral diamond + gold statuette with eyes of [epic-gem] + gold necklace adorned with [epic-gem] + mithril tiara studded with [epic-gem] + cup of celestial gold that glows with inner light + silvery cloak of astral thread + enormous [legendary-gem] + +[mythic-art] bracelet formed of cold elemental [art-element] + gown woven of elemental [art-element] + brass ring with bound elemental [art-element] + celestial gold statuette with astral diamonds + royal attire of astral thread loaded with [epic-gem] + enormous [epic-gem] + +[art-element] shadow + lightning + flame + fire + water diff --git a/data/sample-grammars/awe-names.gram b/data/sample-grammars/awe-names.gram new file mode 100755 index 0000000..ea27ce1 --- /dev/null +++ b/data/sample-grammars/awe-names.gram @@ -0,0 +1,43 @@ +[awesome-name] [part] + +pragma prefix-with [awesome-name] [part] +pragma prefix-with [awesome-name] [part] +pragma suffix-with [awesome-name] [part] +pragma suffix-with [awesome-name] [part] + +pragma initial-rule [awesome-name] + +[part] battle + blade + blast + blood + claw + cold + cyber + dark + death + far + fire + force + hammer + hunt + ice + max + over + pain + shard + shot + siege + spike + star + storm + strike + stroke + sun + sword + ultra + war + wave + whip + wild + wolf diff --git a/data/sample-grammars/buzzword.gram b/data/sample-grammars/buzzword.gram new file mode 100644 index 0000000..d25331f --- /dev/null +++ b/data/sample-grammars/buzzword.gram @@ -0,0 +1,280 @@ +[buzzword-phrase] [buzzwords] + [buzzwords] to [buzzwords] + [buzzwords] while [buzzwords] + [buzzwords] in order to [buzzwords] + [buzzwords] in the process of [buzzwords] + +pragma initial-rule [buzzword-phrase] + +[buzzwords] [buzzword] + [buzzword] [buzzword] + [buzzword] and [buzzword] + [buzzword] , [buzzword] and [buzzword] + +pragma export-rule [buzzwords] + +[buzzword] [buzzword-verb] + [buzzword-noun] + [buzzword-adjective] + [buzzword-job] + [buzzword-fused] + +pragma export-rule [buzzword] + +[buzzword-verb] aggregate + benchmark + brand + capitalize + conceptualize + deliver + deploy + drive + embrace + empower + enable + engage + engineer + enhance + envision + evolve + expedite + exploit + extend + facilitate + generate + harness + implement + incentivize + incubate + innovate + integrate + leverage + maximize + mesh + monetize + morph + necessitate + optimize + orchestrate + productize + reformulate + reintermediate + reinvent + repurpose + revolutionize + scale + spearhead + strategize + streamline + syndicate + synergize + synthesize + take ownership + target + touch base + transform + trivialize + unleash + utilize + visualize + +pragma export-rule [buzzword-verb] + +[buzzword-noun] action items + architectures + asset management + bandwidth + channels + communities + content + content management + convergence + core competency + deliverables + dimension crossover + e-business + e-commerce + empowerment + end-users + eyeballs + face time + functionalities + infomediaries + infrastructures + initiatives + interfaces + intermediaries + key players + knowledge transfer + management by objective + markets + metrics + middleware + mindshare + multilevel perspective + networks + non-issues + niches + objectives + paradigms + paradigm shifts + partnerships + platforms + portals + quality-circles + reality checks + relationship corridors + relationships + resources + return on investment + synergies + schemas + skill sets + solutions + strategic alliances + supply-chains + synergical connectivity + tangents + technologies + total quality management + version control + vision + +pragma export-rule [buzzword-noun] + +[buzzword-adjective] asp + b2b + b2c + p2p + back-end + best-of-breed + bilateral + bleeding-edge + bricks-and-clicks + client-centered + cross-platform + cross-media + customer-centric + customized + cutting-edge + distributed + dot-com + dynamic + efficient + effort-intensive + end-to-end + enterprise + evolutionary + extensible + forward-thinking + frictionless + front-end + future-proof + global + granular + innovative + integrated + interactive + intuitive + just-in-time + killer + leading-edge + legacy + magnetic + marketable + massively-parallel + mission-critical + multilevel + next-generation + object-oriented + off-the-shelf + one-to-one + open-source + pragmatic + proactive + productized + real-time + revolutionary + robust + scalable + seamless + strategic + synergistic + transparent + turn-key + two-tier + ubiquitous + universal + user-centric + value-added + vertical + viral + virtual + visionary + wireless + world-class + +pragma export-rule [buzzword-adjective] + +[buzzword-job] customizer + dothead + enabler + engineer + facilitator + forward-thinker + incubator + innovator + intergrator + liason + manager + marketer + strategist + synergizer + visionary + +pragma export-rule [buzzword-job] + +[buzzword-fused] [act+buzzword-fused] + +[act+buzzword-fused] [buzzword-stem] [buzzword-suffix] + +pragma export-rule [buzzword-fused] + +[buzzword-stem] aggregat + benchmark + conceptual + empower + enhanc + exploit + generat + harness + implement + leverag + monet + morph + orchestr + product + reformul + reinvent + revolution + spearhead + synerg + synthes + trivial + util + visual + +pragma export-rule [buzzword-stem] + +[buzzword-suffix] age + ivize + ivize + ivate + ilate + [buzzword+consonant] + acity + ocity + +[buzzword+consonant] i [consonant] ate + +pragma export-rule [buzzword-suffix] diff --git a/data/sample-grammars/career.gram b/data/sample-grammars/career.gram new file mode 100644 index 0000000..63142f5 --- /dev/null +++ b/data/sample-grammars/career.gram @@ -0,0 +1,135 @@ +[career-tech-desc] [career-tech] + +pragma initial-rule [career-tech-desc] + +pragma prefix-with [career-tech-desc] [career-tech-desc-pref] + +pragma suffix-with [career-tech-desc] [career-tech-descsuff] +pragma suffix-with [career-tech-desc] [career-tech-descsuff] +pragma suffix-with [career-tech-desc] [career-tech-descsuff] + +[career-tech-desc-pref] [career-prefsuf] of the + +[career-tech-descsuff] (reports to the [career-techname] ) + (boss of [career-techname] ) + (subordinate of [career-techname] ) + (co-worker of [career-techname] ) + (office rival of [career-techname] ) + (secretly [career-techname] ) + +[career-techname] [career-tech] + [career-tech] , [full-name-and-title] + +pragma export-rule [career-techname] + +[career-tech] [career-tech2] + [career-tech2] + [career-tech2] + [career-tech2] + [career-tech2] + [career-tech2] + [quote-career-tech] and [quote-career-tech] + [quote-career-tech] , [quote-career-tech] and [quote-career-tech] + +pragma prefix-with [career-tech] [career-tech-desc-pref] + +pragma export-rule [career-tech] + +[quote-career-tech] [ [career-tech2] ] + +pragma despace-rule [quote-career-tech] + +[career-tech2] [act-career-tech] (reports to the [career-tech] ) + [act-career-tech] (reports to [full-name-and-title] ) + +[act-career-tech] paper pusher + computer [software-career-type] + sheet spreader + data entry [career-suffix] + webpage [software-career-type] + button pusher + bug [bug-term] + problem [bug-term] + help desk + software [software-career-type] + system [software-career-type] + bastard operator from hell + webmaster + dead chicken waver + information technology + four-color glossy publisher + corporate spy + trade show booth bunny + evil human resources + internet [software-career-type] + network [software-career-type] + +pragma prefix-with [act-career-tech] [career-prefix] +pragma suffix-with [act-career-tech] [career-sufsuf] + +pragma export-rule [act-career-tech] + +[bug-term] terminator + exterminator + hunter + killer + eradicator + incinerator + +[software-career-type] reinstaller + engineering + engineer + design + designer + administrator + programmer + programming + publisher + publishing + +[career-prefsuf] [career-suffix] + [career-prefix] [career-suffix] + +[career-sufsuf] , [career-prefsuf] of [career-department] + +[career-department] engineering + design + administration + programming + publishing + operations + HR + networking + accounting + management + +[career-prefix] executive + assistant + junior + senior + associate + sub-adjunct + part-time + interim + substitute + department + head + section + +[career-suffix] manager + supervisor + flunkie + intern + secretary + boss + janitor + foreman + director + chief + section chief + superintendent + chairman + overseer + honcho + administrator + [generic-title] diff --git a/data/sample-grammars/city.gram b/data/sample-grammars/city.gram new file mode 100644 index 0000000..b344d3b --- /dev/null +++ b/data/sample-grammars/city.gram @@ -0,0 +1,54 @@ +[city] [real-city] + [town-name] + [other-city] + +pragma initial-rule [city] + +# @TODO 11/01/17 Ben Culkin :SuffixIssues +# Figure out why suffixes aren't properly getting attached to +# things. +# + +[other-city] [act-other-city] + [act-other-city] [town-suffix] + +pragma despace-rule [other-city] +pragma prefix-with [other-city] [town-prefix] + +[act-other-city] [town-name] + [sw-color-phrase] + [sw-color-phrase] [geographic-thing] + [sw-color-phrase] [tree] + [tree] + [geographic-thing] + [gen-name] + [gen-name] - [gen-name] + [gen-name] [geographic-thing] + +pragma despace-rule [act-other-city] + +[gen-name] [last-name] + [first-name] + [random-name] + +[town-prefix] [cardinal] + new + new + old + little + fort + lower + upper + san + la + van + +[town-suffix] burg + ton + ville + opolis + field + boro + dale + +pragma despace-rule [town-suffix] diff --git a/data/sample-grammars/college.gram b/data/sample-grammars/college.gram new file mode 100644 index 0000000..33b45e3 --- /dev/null +++ b/data/sample-grammars/college.gram @@ -0,0 +1,723 @@ +[college-announcement] next [course-time] , [university] will offer [quote-course] to [students] + the [university] class [quote-course] has been cancelled due to [lack-reason] + starting next [course-time] , incoming [students] at [university] will [all-req] to take [quote-course] + [students] will [all-req] to take [quote-course] + [quote-course] will no longer be offered at [university] next [course-time] due to [lack-reason] + [quote-course] is the most popular [course-level] class at [university] + due to overwhelming [popularity] , [add-sec] of [quote-course] will be offered at [university] next [course-time] + not one single [student] signed up for [plural-univ] [quote-course] last [course-time] + a [poll] of [students] at [university] revealed [quote-course] is the [popular] popular [class-type] offered + +pragma initial-rule [college-announcement] + +[all-req] be [required] + no longer be [required] + +[students] students + +pragma prefix-with [students] [course-level] +pragma prefix-with [students] [course-adj] + +[student] student + +pragma prefix-with [student] [course-level] +pragma prefix-with [student] [course-adj] + +[popularity] popularity + popularity among [students] + +[plural-univ] [university] 's + +pragma despace-rule [plural-univ] + +[lack-reason] lack of interest + lack of interest among [students] + lack of teachers + lack of space + +[quote-course] ' [college-course] ' + +pragma despace-rule [quote-course] +pragma export-rule [quote-course] + +[required] required + strongly encouraged + mildly encourage + mildly discouraged + strongly discouraged + forbidden + +[add-sec] an additional section + [2..6] additional sections + +[course-time] fall + spring + winter + summer + +pragma suffix-with [course-time] [course-time-type] + +[course-time-type] year + semester + trimester + +[course-level] [course-level1] + [class-year] + +[course-level1] graduate + undergraduate + liberal arts + engineering + stem + +pragma suffix-with [course-level1] [class-year] + +[class-year] freshmen + sophmore + junior + senior + super-senior + +[poll] poll + survey + questionnaire + +[popular] least + second-least + most + second-most + +[class-type] class + course + lecture + lab + practical + +[college-course] [course-adjnoun] + [course-adjnoun-group] + [course-life-phrase] + [course-group] [course-life-phrase] + [course-group2] [course-adjnoun-group] [course-life-phrase] + [course-group2] [course-life-phrase] + contemporary [course-group2] [course-life-phrase] + transforming the [course-group] experience + the [course-group] [course-movement] + [course-adj] [course-life-phrase] + [course-adjnoun-group] in [course-nounprefix] [course-medium] + the [course-adj] dimension of [course-group] [course-medium] + [course-topic] in [course-group2] [course-medium] + [course-topic] and [course-topic] + [course-group2] [course-medium] interpretation + [course-group2] [course-medium] as a [course-adj] genre + [course-group] [course-medium] + [course-popculture] + [course-adjnoun-group] and [theory] + [course-action] + [course-nounprefix] [course-group] [course-medium] + ethnicity + masterpieces of [course-group] [course-medium] + [quote-buzzword] , [quote-buzzword] and [quote-buzzword] + [quote-buzzword] , [quote-buzzword] and [quote-buzzword] in [course-group2] [course-medium] + [course-event] + [course-event] as [course-explored] in [course-group] [course-medium] + [university-subject] as [course-explored] in [course-group] [course-medium] + [course-impactof] + [course-static] + [course-static] + +[quote-buzzword] ( [course-buzzword2] ) + +pragma despace-rule [quote-buzzword] + +pragma prefix-with [college-course] [course-prefix] + +[course-colonending] : [course-ending] + +pragma suffix-with [college-course] [course-colonending] +pragma suffix-with [college-course] [course-suffix] + +pragma export-rule [college-course] + +[course-adjnoun-group] [quote-adjnoun] + [quote-adjnoun] and [quote-adjnoun] + [quote-adjnoun] , [quote-adjnoun] and [quote-adjnoun] + +[course-disjoin-adjnoungroup] [quote-adjnoun] or [quote-adjnoun] + [quote-adjnoun] , [quote-adjnoun] or [quote-adjnoun] + +[quote-adjnoun] ( [course-adjnoun] ) + +[course-adjnoun] [course-prefixednoun] + +pragma prefix-with [course-adjnoun] [course-adj] +pragma prefix-with [course-adjnoun] [course-adj] + +[condition] condition + experience + +[course-static] [course-env1] + [course-env3] + the meaning of life as [course-explored] in [course-group] [course-medium] + the [course-impact] of [course-group2] [thinker-type] on [course-nounprefix] [university-subject] + the [rise] of [course-group2] [thinker-type] in [course-nounprefix] [university-subject] + [course-group] [course-medium] as the [roots] of [course-nounprefix] [university-subject] + [quote-buzzword] , [quote-buzzword] and [quote-buzzword] as [course-explored] in [course-nounprefix] [films] + the history of [course-group2] [course-life-phrase] + the [archetype] of the [quest] in [course-group] [course-medium] + [cross-cultural] [studies] [course-group2] [course-life-phrase] + +[course-event] the African diaspora + the Harlem renaissance + the civil rights movement + the Italian renaissance + westward expansion + manifest destiny + women's suffrage + world war I + world war II + the war of 1812 + the American revolution + the french revolution + the Russian revolution + the American civil war + the Franco-Prussian war + the JFK Assassination + +[thinker-type] researchers + thinkers + scientists + +[rise] rise + emergence + success + empowerment + +[roots] roots + foundations + +[films] film + fiction + television + cinema + theater + +[archetype] archetype + symbolism + +[quest] quest paradigm + journey + awakening + rite of passage + +[cross-cultural] cross-cultural + multi-ethnic + +[studies] studies in + perspectives on + +[course-env1] saving the world + the end of the word + the sky is falling + here come the mass extinctions + +[course-env2] modern environmentalism + environmental biology + environmental activism + +[course-env3] the greenhouse effect + planetwide climatic change + global warning + +[course-action] basketweaving + aquatic ballet + synchronized swimming + professional sports + the [course-adj] pottery experience + home economics + cardplaying + [sportship] + the culinary [experience] + +[sportship] sportspersonship + sportsmanship + +[experience] arts + experience + +[course-prefixednoun] [course-noun] + post- [course-noun] + pre- [course-noun] + +pragma despace-rule [course-prefixednoun] + +[course-noun] diversity + globalism + equality + feminism + sexuality + self-actualization + political correctness + environmentalism + Marxism + socialism + communism + Darwinism + activism + queer theory + romanticism + dadaism + cubism + realism + paganism + homosexuality + sexuality + evolution + poverty + fundamentalism + intellectualism + multiculturalism + +pragma prefix-with [course-noun] [course-nounprefix] + +[course-nounprefix] early + middle + late + classical + historical + modern + [course-contemporary] + [course-adj] + +[course-adj] progressive + liberal + aesthetic + postmodern + feminist + radical + populist + humanist + reformist + liberated + +[course-prefix] ad-hoc investigation of + ad-hoc investigation of + the potential of + foundations of + literature of + the history of + principles of + exploration of + philosophy of + psychology of + meta-physics of + dynamic exploration of + symbolism of + topics in + advanced topics in + selected topics in + special topics in + survey of + the universe of + the meaning of + theories of + perspectives in + topics in + special studies in + introduction to + research capstone in + quantitative methods in + colloquium in + senior seminar in + critical perspectives in + brief survey of + concepts in + the highlights of + +[course-suffix] in the [course-nounprefix] era + in the [course-nounprefix] world + in the [course-nounprefix] age + in [course-nounprefix] society + in [course-nounprefix] America + in today's society + in the American landscape + in the united states + in the 21st century + in recent times + in the real world + +[course-ending] ideas in conflict + ideas in transition + critical issues facing the [course-nounprefix] [course-person] + a process approach + [course-buzzword] , [course-buzzword] and [course-buzzword] + a [course-metaphor] of [course-adjnoun-group] [course-suffix] + a [course-metaphor] of [course-group] [course-suffix] + a [course-metaphor] [course-explored] in American [course-medium] + a [course-metaphor] [course-explored] in [course-nounprefix] [course-medium] + what is to be learned from it? + an interdisciplinary [study] + from [last-name] to [last-name] + [theory] at work + policy [course-suffix] + different points of view + [course-buzzword] and [course-buzzword] + the big picture + a paradigm shift + [course-nounprefix] [theories] + myth and reality + the untold story + [journey] [discovery] + the [course-group] [condition] + [course-prefix] [course-env2] + policy + +[theories] ideas + theories + +[journey] a journey of + a quest for + an odyssey of + +[discovery] discovery + exploration + thought + self-actualization + +[study] study + approach + +[course-group] [quote-groups] + [quote-groups] + [quote-groups] + [quote-groups] + [quote-political] + +[quote-political] " [org-political] " + +pragma despace-rule [quote-political] + +[quote-groups] ( [course-groups] ) + +pragma despace-rule [quote-groups] + +[course-groups] [course-gengroup] + +[course-gengroup] [course-group1] + [course-group2] + [course-ancient] + +pragma prefix-with [course-groups] [course-gengroup] +pragma suffix-with [course-groups] [course-gengroup] + +[course-group1] gay and lesbian + homosexual + bisexual + transgender + inner city + rural + suburban + urban + southern + western + eastern + liberated + upper class + middle class + [course-adj] + +[course-group2] African-American + Hispanic + European + Latino + native American + pacific islander + Australian + Latvian + Elbonian + Italian + African + American + Asian + Chinese + Japanese + french + German + Russian + middle eastern + Scandinavian + Mexican + female + female + female + neo-pagan + atheist + polytheistic + minority + multi-ethnic + +[course-ancient] roman + Etruscan + Greek + byzantine + Mayan + Incan + Aztec + viking + Babylonian + Egyptian + Sumerian + Hittite + renaissance + Chinese + native American + +[course-life-phrase] [quote-lifephrase] + [quote-lifephrase] since [700..2010] + [quote-lifephrase] as influenced by [course-life-influence] + [quote-lifephrase] as viewed through the lens of [course-life-influence] + +[quote-lifephrase] ( [act-course-lifephrase] ) + +pragma despace-rule [quote-lifephrase] + +[influence-type] as influenced by + as viewed through the lens of + +[act-course-lifephrase] [course-lives] + +pragma suffix-with [act-course-lifephrase] [of-group] + +[of-group] of + +pragma suffix-with [of-group] [course-group] +pragma suffix-with [of-group] [course-adjnoun] + +[course-life-influence] [course-event] + [course-adjnoun-group] + +[course-lives] [quote-life] + [quote-life] and [quote-life] + [quote-life] , [quote-life] and [quote-life] + +[quote-life] ( [course-life] ) + +pragma despace-rule [quote-life] + +[course-life] life + literature + music + art + issues + perspectives + lifestyles + thought + ethics + values + landscapes + culture + society + images + ideas + endeavors + expression + affairs + morals + retrospectives + symbols + religion + traditions + civilization + +pragma suffix-with [course-life] [course-group] +pragma suffix-with [course-life] [course-adjnoun] + +[course-metaphor] metaphor + study + presentation + collage + figure + symbol + +[course-explored] explored + expressed + analyzed + interpreted + seen + +[course-person] individual + American + person + citizen + student + well-rounded person + woman + minority + liberal + +[course-buzzword] understanding + understanding + analysis + synthesis + synergy + practice + the human condition + development + cross-cultural awareness + cross-cultural perspectives + evaluation + interpretation + abstraction + decision-making + perspectives + context + paradigms + critical thinking + relationships + discovery + empowerment + +[course-buzzword2] race + class + status + gender + age + sex + work + family + community + culture + politics + struggle + conflict + +[course-movement] movement + revolution + evolution + transformation + metamorphosis + campaign + +[course-medium] art + paintings + literature + folklore + mythology + poetry + sculptures + music + architecture + dance + drama + +[course-topic] sex + death + suicide + trauma + drama + life + mythology + crime + love + hate + anger + passion + infidelity + horror + +[course-popculture] 'star wars' + 'star trek' + cyberpunk literature + harlequin romances + 'the Simpsons' + 'the x-files' + daytime soap operas + radio talk shows + Shakespeare's [comedy] + 'the scarlet letter; + 'Seinfeld' + [course-nounprefix] American literature + [course-nounprefix] [course-group] [literature] + political cartoons + pornography + 'the jerry springer show' + +[comedy] comedies + tragedies + +[literature] literature + art + +[course-contemporary] contemporary + modern + 21st century + 20th century + +[course-impactof] the [course-impact] of [course-group] [course-medium] on [course-group] [course-medium] + the [course-impact] of [course-group] [course-medium] on [course-nounprefix] [university-subject] + the [course-impact] of [course-group] [course-medium] on [course-nounprefix] [course-adjnoun-group] + the [course-impact] of [course-group] [course-medium] on [university-subject] + +[course-impact] impact + effect + consequences + influence + +[university] [university-body] [university-suffix] + +pragma export-rule [university] + +[university-body] [us-state] + [us-president] + [city] + [real-city] + [last-name] + [person] + [full-name-and-title] + +pragma prefix-with [university-body] [cardinal] + +[university-suffix] university + college + community college + state university + state college + ivy league college + +[university-subject] [hard-science] + [soft-science] + [college-major-tech] + +pragma export-rule [university-subject] + +[hard-science] quantum mechanics + planar geometry + vector calculus + theoretical physics + microbiology + abstract mathematics + oceanography + extraterrestrial biology + fractal geometry + quantum string theory + linear algebra + computer science + +[soft-science] abnormal psychology + anthropology + legal theories + [soft-type] sociology + microeconomics + political science + +[soft-type] urban + suburban + rural + +[college-major-tech] computer science + information technology + computer technology + mathematics + advanced mathematics nobody ever uses + applied physics + information systems + software engineering diff --git a/data/sample-grammars/company.gram b/data/sample-grammars/company.gram new file mode 100644 index 0000000..40ea83b --- /dev/null +++ b/data/sample-grammars/company.gram @@ -0,0 +1,187 @@ +[company] [gen-name] + [gen-name] [company-name] + [plural-name] [company-name] + [gen-name] , [gen-name] and [gen-name] [company-name] + [gen-name] - [gen-name] [company-name] + [gen-name] - [gen-name] + [gen-name] & [gen-name] + [gen-name] & [gen-name] [company-name] + [gen-name] [gen-name] + [gen-name] [gen-name] [company-name] + [acronym] [company-name] + [company-root-acronym] + [full-name] [company-name] + [company-root-name] + [letter+group] [company-name] + [city] [company-name] + [company-root-city] + [us-state] [company-name] + [buzzword-adjective] [buzzword-noun] + [media-company] + [newspaper] + [real-company] + +pragma suffix-with [company] [company-suffix] +pragma export-rule [company] + +[plural-name] [gen-name] 's + +pragma despace-rule [plural-name] + +[gen-name] [last-name] + [first-name] + +[company-root-acronym] [acronym] [company-root-suffix] + +pragma despace-rule [company-root-acronym] + +[company-root-city] [city] [company-root-suffix] + +pragma despace-rule [company-root-city] + +[company-root-name] [gen-name] [company-root-suffix] + +pragma despace-rule [company-root-name] + +[letter+group] [letters] + [letters] & [letters] + [letters] & [letters] & [letters] + +[letters] [letter] + [letter] + [letter] + [letter] [letter] + [letter] [letter] + [letter] [letter] [letter] + +pragma despace-rule [letters] + +[company-suffix] [company-suffix1] + [company-suffix2] + +[company-suffix1] Inc. + Incorporated + Ltd. + Corp. + Corporation + Co. + Company + Cooperative + Amalgamated + +[company-suffix2] , Inc. + , Incorporated + , Ltd. + , LLC + +[company-name] associated + united + brothers + associates + gizmos + industries + products + widgets + farms + technology + electronics + communications + media + network + networking + software + computers + general store + stores + restaurants + design + construction + retail + manufacturing + ranch + ambulance chasers + attorneys at law + polluters + real estate + bank + railroad + consultants + publishing + holdings + services + utilities + and company [company-name] + and company + and co. [company-name] + and co. + of [city] + +[company-root-suffix] .com + .net + dot com + ware + soft + way + Co + co + tech + +[dotcom-company] [actual+dotcom-company] + +[actual+dotcom-company] [buzzword-adjective] .com + [acronym] .com + [dotcom-start] [newspaper-pair2] .com + [trademark] .com + +[tech-company] microsoft + america online + yahoo! + ebay + amazon.com + sun microsystems + va linux + red hat + oracle + corel + ibm + lucent technologies + earthlink + verio + lycos + altavista + cnet + citrix systems + intuit + exodus communications + verisign + inktomi + qualcomm + cisco systems + dell computers + gateway + jds uniphase + at&t + mci + apple + be, inc. + caldera + compaq + intel + amd + cyrix + motorola + sgi + transmeta + inprise + hewlett-packard + +pragma export-rule [tech-company] + +[corp-job-title] president + vice president + chief executive officer + chief financial officer + public relations director + chief technology officer + board chairman + director diff --git a/data/sample-grammars/computer.gram b/data/sample-grammars/computer.gram new file mode 100644 index 0000000..a3a7814 --- /dev/null +++ b/data/sample-grammars/computer.gram @@ -0,0 +1,53 @@ +[computer-language] c + c + c++ + c++ + objective c + perl + python + java + javascript + basic + visual basic + awk/sed + bash + x86 assembly + pascal + cobol + forth + scheme + lisp + tcl/tk + ada + dos batch files + jcl + rexx + scheme + clojure + ruby + python + apl + k + opencomal + [esoteric-language] + [esoteric-language] + +[esoteric-language] magenta + brainfuck + whitespace + befunge + malbolge + +pragma export-rule [computer-language] +pragma export-rule [computer-skill] + +[computer-skill] html + xml + css + cgi scripting + cgi scripting with [computer-language] + photoshop + autocad + sql + asp + php diff --git a/data/sample-grammars/congress.gram b/data/sample-grammars/congress.gram new file mode 100644 index 0000000..cffe469 --- /dev/null +++ b/data/sample-grammars/congress.gram @@ -0,0 +1,35 @@ +[congress-critter] [critter-type] [critter-name] + +pragma initial-rule [congress-critter] + +[critter-type] senator + representative + +[critter-name] [last-name] + [critter-name2] + +[critter-name2] fattecat + becon + p. ork + g. raft + phil e. buster + phil t. rich + iva gottalot + erna bigcheque + billy o'naire + c. a. pitalist + noah morals + lucy morrals + buford fatbacke + c. r. pette-bagger + k. ickbach + lobb e. ist + p. orkbarrel + phil e. buster + p. urgery + l. ibel + s. lander + i. b. fersaile + pettie k. ash + c. l. inton + dee septive diff --git a/data/sample-grammars/dates.gram b/data/sample-grammars/dates.gram new file mode 100644 index 0000000..1ed0daa --- /dev/null +++ b/data/sample-grammars/dates.gram @@ -0,0 +1,20 @@ +[day-of-week] sunday + monday + tuesday + wednesday + thursday + friday + saturday + +[month] january + february + march + april + may + june + july + august + september + october + november + december diff --git a/data/sample-grammars/diablo-ii/diabloii.gram b/data/sample-grammars/diablo-ii/diabloii.gram new file mode 100755 index 0000000..df45482 --- /dev/null +++ b/data/sample-grammars/diablo-ii/diabloii.gram @@ -0,0 +1,64 @@ +[base-treasures] [base-treasure] + [quote-treasure] as well as [quote-treasure] + [quote-treasure] or [quote-treasure] + [quote-treasure] , and [quote-treasure] as well as [quote-treasure] + [quote-treasure] , [quote-treasure] or [quote-treasure] + +pragma initial-rule [base-treasures] + +[quote-treasure] ( [base-treasure] ) + +pragma despace-rule [quote-treasure] + +[base-treasure] a [item] + a [item] + a [item] + [non-item] + +[non-item] [money] + [money] + [money] + [money] + nothing + +[money] [diablo-amount] [money-type] + +[diablo-amount] 1 + 5 + 10 + 20 + 50 + 100 + 200 + 500 + 1000 + +pragma export-rule [diablo-amount] + +[money-type] coins + +pragma prefix-with [money-type] [metal-type] + +[metal-type] copper + silver + gold + platinum + +[item] [item-types] + [item-types] + [item-types] + [item-types] + [item-types] [d2-suffix] + [item-types] [d2-suffix] + [d2-prefix] [item-types] + [d2-prefix] [item-types] + [d2-prefix] [item-types] [d2-suffix] + +[item-types] [d2-item-type] + [d2-item-type] + [ds-items] + [^item] + +[ds-items] [ds-gem] + [ds-rune] + [ds-armor] diff --git a/data/sample-grammars/diablo-ii/diabloiiitems.gram b/data/sample-grammars/diablo-ii/diabloiiitems.gram new file mode 100755 index 0000000..5fa174b --- /dev/null +++ b/data/sample-grammars/diablo-ii/diabloiiitems.gram @@ -0,0 +1,262 @@ +[d2-item-type] [armor] + [headgear] + [accoutrements] + [shields] + [knives] + [swords] + [clubs] + [spears] + [polearms] + [axes] + [bows] + [crossbows] + [wands] + [staves] + [accessories] + [gems] + [inscriptions] + [perishables] + +pragma export-rule [d2-item-type] + +[armor] [light-armor] + [medium-armor] + [heavy-armor] + +pragma prefix-with [armor] [armor-prefix] + +[light-armor] cape + rags + cloak + robe + +[medium-armor] quilted armor + leather armor + studded leather armor + ringmail + scalemail + chainmail + +[heavy-armor] breastplate + plate + splint mail + platemail + field plate + +[armor-prefix] light + heavy + hard + reinforced + full + Gothic + ancient + +[headgear] cap + [helm] + [mask] + crown + +pragma prefix-with [headgear] [headgear-kind] + +[helm] helm + helmet + +[mask] mask + masque + +[headgear-kind] full + great + bone + +[accoutrements] gloves + sash + boots + bracers + belt + gauntlets + girdle + +pragma prefix-with [accoutrements] [acc-kind] + +[acc-kind] leather + chain + plate + +[shields] buckler + shield + +pragma prefix-with [shields] [shield-type] +pragma prefix-with [shields] [shield-size] + +[shield-size] small + large + huge + +[shield-type] kite + spiked + bone + tower + Gothic + +[knives] dagger + knife + kris + +pragma prefix-with [knives] throwing + +[swords] sword + sabre + blade + scimitar + falchion + claymore + +pragma prefix-with [swords] [sword-kind] + +[sword-kind] long + broad + short + bastard + two-handed + +[clubs] club + mace + morning star + flail + maul + +pragma prefix-with [clubs] [club-prefix] + +[club-prefix] spiked + war + +[spears] javelin + spear + pilum + glaive + trident + pike + brandistock + +[polearms] bardiche + scythe + poleaxe + halberd + +[axes] axe + hatchet + +pragma prefix-with [axes] [axe-type] +pragma prefix-with [axes] [axe-size] + +[axe-size] small + large + giant + +[axe-type] throwing + broad + battle + great + hand + +[bows] [act-arrow] [quote-count] + [act-bow] + [act-bow] + [act-bow] + [act-bow] + +[act-arrow] arrow + [gem-type] -tipped arrow + +[act-bow] bow + +pragma prefix-with [act-bow] [bow-type] +pragma prefix-with [act-bow] [bow-size] + +[bow-size] short + long + +[bow-type] hunter’s + composite + battle + war + +[crossbows] [act-bolt] [quote-count] + [act-crossbow] + [act-crossbow] + [act-crossbow] + [act-crossbow] + +[act-bolt] bolt + [gem-type] -tipped bolt + +[act-crossbow] crossbow + +pragma prefix-with [act-crossbow] [crossbow-type] +pragma prefix-with [act-crossbow] [crossbow-weight] + +[crossbow-type] repeating + double + +[crossbow-weight] light + heavy + hand + +[wands] wand + torch + scepter + +pragma prefix-with [wands] [wand-type] + +[wand-type] bone + [tree] + +[staves] staff + +pragma prefix-with [staves] [staff-type] +pragma prefix-with [staves] [tree] +pragma prefix-with [staves] [staff-length] + +[staff-type] gnarled + composite + battle + war + +[staff-length] short + long + +[accessories] charm + ring + flag + orb + amulet + +[gems] [gem-type] + +pragma prefix-with [gems] [gem-size] +pragma prefix-with [gems] [gem-quality] + +[gem-quality] chipped + flawed + flawless + perfect + +[gem-size] tiny + small + large + huge + +[gem-type] amethyst + diamond + emerald + ruby + sapphire + topaz + +[inscriptions] scroll + rune + book + +[quote-count] ( [diablo-amount] count ) + +pragma despace-rule [quote-count] diff --git a/data/sample-grammars/diablo-ii/diabloiiperish.gram b/data/sample-grammars/diablo-ii/diabloiiperish.gram new file mode 100755 index 0000000..af6c9ec --- /dev/null +++ b/data/sample-grammars/diablo-ii/diabloiiperish.gram @@ -0,0 +1,132 @@ +[perishables] [perishable-type] of [perishable-effect] + [perishable-effect] [perishable-type] + [bodypart] of [perishable-effect] + +pragma export-rule [perishables] + +[bodypart] heart + brain + jawbone + eye + ear + horn + tail + fang + quill + scalp + spleen + soul + bone + skull + blood + ribcage + viscera + flesh + claw + +[perishable-type] potion + oil + herb + elixir + resin + flask + spice + salve + +pragma prefix-with [perishable-type] [bodypart] + +[perishable-degree] light + medium + full + +[perishable-effect] [perishable-effect-1] + [perishable-effect-1] + [perishable-effect-1] + [perishable-effect-1] + [perishable-degree] [perishable-effect-1] + +[perishable-effect-1] [restore-effect] + detox + restoration + flaming + explosive + fulminating + [gas-type] gas + acidity + energizing + strengthening + empowering + artful + skillful + adroit + sturdiness + hardy + robust + sage + shrewd + vivid + indigo + cerulean + russet + vermilion + crackling + forked + swart + atramentous + vital + enduring + urgent + fleet + brisk + swift + dazzling + fascinating + bright + solar + omniscience + mystical + arcane + strength + dexterity + vitality + intelligence + chi + spectralness + fire + ice + lightning + magic + psionic + poison + energy + accuracy + damage + defense + life + power + accuracy + precision + mastery + sharpness + pain + savagery + death + hardening + imperviousness + immunity + skill + fortitude + blacksmith’s + blacksmithing + permanence + enchantment + enchanting + +[restore-effect] healing + mana + rejuvenation + chi + +[gas-type] rancid + choking + strangling diff --git a/data/sample-grammars/diablo-ii/diabloiiprefixes.gram b/data/sample-grammars/diablo-ii/diabloiiprefixes.gram new file mode 100755 index 0000000..5157115 --- /dev/null +++ b/data/sample-grammars/diablo-ii/diabloiiprefixes.gram @@ -0,0 +1,182 @@ +[d2-prefix] [d2-prefix-part] + [d2-prefix-part] + [d2-prefix-chain] + +pragma export-rule [d2-prefix] + +[d2-prefix-chain] [d2-prefix-part] [d2-prefix-part] + [d2-prefix-part] [d2-prefix-part] + [d2-prefix-part] and [d2-prefix-part] + [d2-prefix-part] and [d2-prefix-part] + [d2-prefix-part] [d2-prefix-part] [d2-prefix-part] + +[d2-prefix-part] [armor-class] + [saving-throw] + [foe-reaction] + [skill-improve] + [cursed] + [visibility] + [castability] + [magical-effect] + [personal-stat] + [to-hit] + [extra-damage] + [to-hit-damage] + [item-charges] + +[armor-class] sturdy + fine + strong + grand + valiant + glorious + blessed + awesome + saintly + holy + godly + +[saving-throw] tawny + azure + crimson + ocher + pearl + beryl + coal + jasmine + lapis + burgundy + tangerine + ivory + jade + jet + pyrite + cobalt + garnet + coral + crystal + viridian + ebony + crysolite + sapphire + ruby + amber + diamond + emerald + obsidian + topaz + prismatic + bond + +[foe-reaction] subduing + wearying + phasing + depleting + howling + chaotic + subjugating + fatiguing + exhausting + overwhelming + +[skill-improve] fletcher’s + slayer’s + summoner’s + monk’s + angel’s + archer’s + berserker’s + necromancer’s + priest’s + arch-angel’s + +[cursed] rusted + vulnerable + glass + hyena’s + frog’s + pitch + brass + tin + crystalline + weak + bent + useless + dull + clumsy + +[visibility] glowing + oracular + unseen + hidden + veiled + stalking + +[castability] lizard’s + spider’s + raven’s + snake’s + serpent’s + drake’s + dragon’s + worm’s + hydra’s + devious + fortified + vulpine + +[magical-effect] extending + chrono + augmenting + catalyzing + +[personal-stat] blue + red + orange + white + black + tough + swift + brilliant + mighty + vibrant + forceful + resilient + silver + muscular + healthy + +[to-hit] bronze + iron + silver + steel + gold + platinum + mithril + meteoric + weird + +[extra-damage] jagged + deadly + vicious + heavy + brutal + massive + savage + ruthless + merciless + +[to-hit-damage] sharp + fine + warrior’s + soldier’s + knight’s + master’s + doppelganger’s + lord’s + champion’s + king’s + +[item-charges] plentiful + jester’s + bountiful diff --git a/data/sample-grammars/diablo-ii/diabloiisuffixes.gram b/data/sample-grammars/diablo-ii/diabloiisuffixes.gram new file mode 100755 index 0000000..f6deea0 --- /dev/null +++ b/data/sample-grammars/diablo-ii/diabloiisuffixes.gram @@ -0,0 +1,230 @@ +[d2-suffix] of [suffix-part] + of [suffix-part] + of [suffix-chain] + +[suffix-chain] [suffix-part] and [suffix-part] + [suffix-part] and [suffix-part] + [suffix-part] and of [suffix-part] + [suffix-part] and of [suffix-part] + [suffix-part] , [suffix-part] and [suffix-part] + +pragma export-rule [d2-suffix] + +[suffix-part] [damage-reduction] + [defense-effect] + [durability] + [hitpoints] + [ability-scores] + [cursed] + [recovery] + [memorization] + [combat-action] + [treasure-finder] + [light-source] + [hazard-reduction] + [damage-increase] + [min-damage] + [attack-speed] + [attack-effect] + [attack-restore] + [item-damage] + [weapon-proficency] + [weapon-use] + [spell-casting] + +pragma prefix-with [suffix-part] the + +[damage-reduction] health + protection + absorption + life + deflection + +[defense-effect] thorns + spikes + blocking + +[durability] sturdiness + structure + ages + bonding + unity + +[hitpoints] [hitpoints-act] + +[hitpoints-act] jackal + fox + jaguar + wolf + eagle + tiger + lion + mammoth + whale + colossus + +[ability-scores] vitality + dexterity + magic + strength + lynx + zest + skill + mind + might + leopard + vim + accuracy + brilliance + power + jaguar + vigor + precision + sorcery + giant + tiger + life + perfection + wizardry + titan + lion + sky + moon + stars + heavens + zodiac + +[cursed] tears + pain + brittleness + decay + fragility + vulture + disease + atrophy + dyslexia + weakness + cat + pit + illness + paralysis + draining + frailty + rat + trouble + pox + corruption + infection + ruin + exposed + discord + night + dark + void + passivity + snail + fool + +[recovery] regeneration + regrowth + +[memorization] warding + sentinel + guarding + negation + osmosis + +[combat-action] apprentice + magus + balance + stability + harmony + +[treasure-finder] greed + chance + wealth + fortune + +[light-source] light + radiance + sun + +[hazard-reduction] thief + warmth + remedy + amelioration + defiance + purging + +[damage-increase] craftsmanship + quality + maiming + slaying + gore + devastation + jester + carnage + slaughter + +[min-damage] measure + worth + excellence + performance + +[attack-speed] readiness + alacrity + swiftness + quickness + speed + haste + +[attack-effect] frost + flame + shock + blight + ice + fire + lightning + venom + glacier + burning + thunder + pestilence + vileness + crusaders + destruction + peril + bear + grizzly + +[attack-restore] leech + claw + bat + blood + talon + vampire + lamprey + +[item-damage] piercing + breaking + puncturing + smashing + bashing + +[weapon-proficency] ease + simplicity + +[weapon-use] many + plenty + +[spell-casting] [spell-number] level magic + +[spell-number] 1st + 2nd + 3rd + 4th + 5th + 6th + 7th + 8th + 9th diff --git a/data/sample-grammars/dungeon-enviroment.gram b/data/sample-grammars/dungeon-enviroment.gram new file mode 100755 index 0000000..0080b9a --- /dev/null +++ b/data/sample-grammars/dungeon-enviroment.gram @@ -0,0 +1,140 @@ +[dungeon-enviroment] [man-made] + [cave] + [natural] + [aquatic] + [aerial] + [supernatural] + +pragma initial-rule [dungeon-enviroment] + +[man-made] a stone room + a spiral staircase surrounding a giant pit + an old dusty library + an aging unadorned altar + a power plant full of gears and pistons + a giant stone staircase + a room made of large timbers + a factory with neglected machines + an ancient battlefield littered with skeletons and rusted weapons + a stone bathroom + a kitchen with a tall ceiling + a room whose walls are covered with drawings + an abandoned theatre + a garbage dump filled with trash + a colossal statue that was abandoned before it was completed + a great hall decorated with murals and tapestries + a metro khan railway + a gallery displaying paintings and busts + a tomb lined with stone sarcophagi + a gate whose door is covered in rust + an abandoned prison + +[cave] a cave with nothing but bare rock + a cave filled with bats and flying bugs + an abandoned mineshaft + somebody's campsite + a cave filled with so many boulders they obscure vision + a cave that belches smoke + a limestone grotto echoing with the sound of running water + a cavern filled with faint, eerie starlight + a cave full of quicksand + smooth tunnels dug out by some kind of animal + a cave filled with cold water + a crack between giant boulders + a cave whose walls are covered with paintings of animals and hunters + a natural bridge spanning a vast chasm + a cave that has been filled in almost to the ceiling + a precipice overlooking a bottomless pit + a cavern whose walls are obscured by swarms of crawling bugs + a cave with numerous fossils buried in it + a cave filled with hot, flowing lava + a cavern made of crystal + the lair of some creature, scattered with skeletons + +[natural] a room covered in moss + a secret forest reverberating with the calls of animals + a corridor made of vines + a field of flowers filled with hollows + a room with tree branches growing through the walls + farmland stretching across an entire cave + a forest overgrown with weeds + a tall cavern with a giant tree whose trunk twists and turns + a cave with a seal breeding ground spread through it + a room whose walls are covered in mold + a room dotted in cacti + a patch of giant mushrooms + a cave with a giant tree growing in the middle of it + corridors filled with roaming herds of horse lizards + a room with piles of fallen leaves + a hedge maze + an overgrown bamboo grove + a room with suddenly falling pine trees + a room filled with tall, overgrown grass + a withered forest + rooms and corridors that feel like the inside of a giant tree + +[aquatic] a bridge crossing a roaring river + the inside of a rainbow colored coral reef + a room filled with waist high water + a water fountain and watering hole + a boiling lake + a room whose floor has turned into a tidal flat + a cistern thats filling with water + a room obscured by hot steam + a swamp that spreads throughout a cave + a ship whose rigging and hull have been neglected + an aquarium filled with tanks + a foul smelling sewer + a submerged cavern with ruins at the bottom + a pier and harbor + a lake with rafts and barges + a giant pit and waterfall + an incomplete aqueduct + a frozen lake swarming with penguins + a steamy hot spring + an old well covered with strange engravings + a room whose walls are covered with shellfish and barnacles + +[aerial] a room where its raining + a cave made of cheese + gardens piled up towards the sky + clotheslines covered in pristine white clothing that stretch forever + a giant beanstalk stretching towards the ceiling + a giant pit with dangling rope ladders and chains + a room where a fierce wind blows + on top of a cloud + a cave obscured by thick mist + a room with zero gravity + a room where snowfall is quickly accumulating + a skyway where space-time is warped + a corridor where you can hear the sounds of a windmill for keeping monsters away + a cave with ruins on its ceiling + a massive, roaring ventilation shaft + a room with occasional lightning flashes + a room where bird feathers flutter to the ground + a cave whose walls are painted to look like the sky + a room where one wall is a mirror + a cave with a shimmering aurora + a room with variable gravity + +[supernatural] an old six tatami mat room + a cramped karaoke box + a town where time has stopped + a gymnasium with a single ball rolling around + a room covered in hair + some sort of waiting room + the inside of a living creature + a small park with swings and a slide + a cheap-looking prefabricated bathroom + a room with a noisy upstairs neighbor + a room made of human bones + a room that breathes + a room built on an angle + a room in a love hotel + a room where someone is spying on you + a room where you can hear voices talking loudly + a room growing tentacles + an interrogation room with a table and chair + an empty classroom + a room whose ceiling is a giant human + a room that is constantly swaying diff --git a/data/sample-grammars/dungeondressing/abandoned.gram b/data/sample-grammars/dungeondressing/abandoned.gram new file mode 100644 index 0000000..c9ed653 --- /dev/null +++ b/data/sample-grammars/dungeondressing/abandoned.gram @@ -0,0 +1,24 @@ +[abandoned] while exploring the abandoned [abandon-place] , a [abandon-person] sneaks up on you [abandon-motion] . + +pragma initial-rule [abandoned] + +[abandon-place] shopping mall + amusement park + military complex + junkyard + hospital + insane asylum + +[abandon-person] pedophile + investment banker + cyborg prostitute + vampire + trio of dogs in a trench coat + undead wizard + +[abandon-motion] on a jetpack + in a spooky van + on roller skates + on horseback + in a rickshaw + in a palanquin diff --git a/data/sample-grammars/dungeondressing/bedroom.gram b/data/sample-grammars/dungeondressing/bedroom.gram new file mode 100644 index 0000000..8bb9449 --- /dev/null +++ b/data/sample-grammars/dungeondressing/bedroom.gram @@ -0,0 +1,255 @@ +[bedroom] you enter the [bedroom-type] and see a(n) [bedroom-bed] with a(n) [bedroom-person] [bedroom-lying] + +pragma initial-rule [bedroom] + +[bedroom-type] cheap hotel room + penthouse suite + secret passage + bear's den + captain's cabin + hospital ward + damp cave + mountain glen + deserted clearing + desert island + abandoned crypt + [fantasy-location-name] + [fantasy-location-name] + [fantasy-location-name] + +[bedroom-bed] king bed with luxury sheets + messy pile of wet hay + flea-infested sleeping bag + luxurious sleeping bag + pentagram with candles + freshly unearthed coffin + tropical rope hammock + altar + +pragma prefix-with [bedroom-bed] [bed-prefix] +pragma prefix-with [bedroom-bed] [sacred-type] + +[bed-prefix] ruined + ancient + legendary + pristine + +[sacred-type] unholy + holy + blessed + dammed + cursed + demonic + hallowed + unhallowed + sacred + infernal + angelic + +[bedroom-person] [bed-bones] + [bed-bones] + jug of moonshine + [bed-aliveperson] + [bed-aliveperson] + [bed-aliveperson] + [bed-aliveperson] + [bed-aliveperson] + [bed-aliveperson] + [bed-aliveperson] + [bed-aliveperson] + [bed-aliveperson] + [bed-aliveperson] + +[bedroom-lying] lying [onin] it + draped atop it + prostrated before it + [tied] to it + [tied] to it + trapped in it + +[bed-aliveperson] [bed-arist] + [bed-doll] + [bed-prost] + [bed-slave] + [humanoid] + [bed-inhuman] + +[bed-inhuman] [creature] + [monster] + [creature-epic] + +pragma prefix-with [bed-aliveperson] [bed-status] +pragma prefix-with [bed-aliveperson] [bed-name] + +[bed-name] [full-name] , a(n) + [fantasy-name] , a(n) + +[bed-status] [bed-status1] + [bed-status2] + [bed-status1] [bed-status2] + [bed-status2] [bed-status1] + +[bed-status1] dead + decapitated + [status-alive] + [status-alive] + [status-alive] + [status-alive] + +[status-alive] unconcious + sleeping + normal + fainted + +[bed-status2] bleeding + badly wounded + uninjured + pale + burnt + trembling + scared + aroused + +[tied] chained + tied + bound + secured + fastened + handcuffed + roped + shackled + +[onin] on + in + +[bed-bones] [pile] of [bone-status] [bones] + [pile] of [bone-status] [bones] + [pile] of [bone-status] [part-human] [bones] + [pile] of [bone-status] [part-human] [bones] + [blood-puddle] + +[pile] pair + couple + group + pile + hoard + collection + set + +[blood-puddle] puddle of blood + puddle of [part-human] blood + +[bones] bones + flesh + viscera + skulls + claws + hearts + brains + jawbones + eyes + ears + horns + tails + fangs + quills + scalps + spleens + souls + +[bone-status] clean + old + fresh + moldy + dusty + bloody + ancient + +[bed-arist] [aristocrat] + [part-human] [aristocrat] + [part-human] + +pragma prefix-with [bed-arist] kidnapped + +[aristocrat] aristocrat + prince + princess + king + queen + mercenary + merchant + [generic-title] + +[bed-doll] [doll] + [doll] of a [part-human] + +[doll] doll + mannequin + puppet + +pragma prefix-with [bed-doll] [sex] +pragma prefix-with [bed-doll] [realism] + +[sex] sex + sexy + +[realism] realistic + unrealistic + [realism-beauty] + +[realism-beauty] [beauty] + unrealistic [beauty] + realistic [beauty] + +[beauty] beautiful + pretty + cute + attractive + normal + ugly + unattractive + +pragma prefix-with [realism] creepily + +[bed-prost] prostitute + wench + +pragma prefix-with [bed-prost] [part-human] + +[bed-slave] slave + escaped slave + +pragma prefix-with [bed-slave] [part-human] + +[bed-gender] male + female + +[part-human] [humanoids] + [part-human2] + +pragma prefix-with [part-human] [bed-gender] + +[part-human2] [half-humans] + [quarter-humans] + +[half-humans] [half-human] + [half-human] , [half-human] + +[quarter-humans] [quarter-human] + [quarter-human] , [half-human] + [quarter-human] , [quarter-human] + [quarter-human] , [quarter-human] , [quarter-human] + [quarter-human] , [quarter-human] , [quarter-human] , [quarter-human] + +[half-human] half- [humanoids] + +[quarter-human] quarter- [humanoids] + +[humanoids] [humanoid] + [humanoid] + [humanoid] + [humanoid] + [bed-inhuman] + +pragma despace-rule [half-human] +pragma despace-rule [quarter-human] diff --git a/data/sample-grammars/dungeondressing/dragonencounter.gram b/data/sample-grammars/dungeondressing/dragonencounter.gram new file mode 100644 index 0000000..5c299c3 --- /dev/null +++ b/data/sample-grammars/dungeondressing/dragonencounter.gram @@ -0,0 +1,24 @@ +[dragon-encounter] The [dragon-desc] dragon has a lair in [dragon-lair] where it guards a massive hoard of [dragon-hoard] + +pragma initial-rule [dragon-encounter] + +[dragon-desc] obese + syphilitic + convict + terrorist + college-educated + moronic + +[dragon-lair] an inner-city slum + a lunar base + a penthouse apartment + a floating ghost ship + an open-air sewer + an abandoned church + +[dragon-hoard] drugs and alcohol + 11 herbs and spices + erotic sculpture + stock market advice + graffiti stencils + canned food diff --git a/data/sample-grammars/dungeondressing/kitchen.gram b/data/sample-grammars/dungeondressing/kitchen.gram new file mode 100644 index 0000000..23abda4 --- /dev/null +++ b/data/sample-grammars/dungeondressing/kitchen.gram @@ -0,0 +1,25 @@ +[kitchen] You enter the [kitchen-desc] kitchen. There is a [kitchen-book] cookbook nearby. Over the hearth, a [kitchen-food] gently simmers in a saucepan. + +pragma initial-rule [kitchen] + +[kitchen-desc] poorly lit + dirty and insect infested + blood-soaked + built for a studio audience + well-stocked + papier-mache + +[kitchen-book] troll + orcish + demonic + braille + animated, speaking + floating + [creature] + +[kitchen-food] chicken with herb butter + charred human heart + glittering pixie carcass + pound of thick-cut bacon + dragon-egg omelette + dozen tiny hands diff --git a/data/sample-grammars/dungeondressing/monster.gram b/data/sample-grammars/dungeondressing/monster.gram new file mode 100644 index 0000000..47e1417 --- /dev/null +++ b/data/sample-grammars/dungeondressing/monster.gram @@ -0,0 +1,51 @@ +[monster] [monster-kind] + [monster-prefix] [monster-kind] + +pragma initial-rule [monster] + +[monster-prefix] were- + half- + quarter- + vampire + giant + diseased + magic + clockwork + cybernetic + rabid + ancient + eldritch + ghostly + alien + +[monster-kind] orc + goblin + dragon + zombie + wizard + ogre + pegasus + witch + spider + harpy + minotaur + chupacabra + chimera + mermaid + kraken + sasquatch + jackalope + hydra + wyvern + gorgon + cyclops + medusa + genie + dwarf + elf + banshee + gremlin + angel + demon + troll + centaur diff --git a/data/sample-grammars/eastern-sun/easternsunsocketing.gram b/data/sample-grammars/eastern-sun/easternsunsocketing.gram new file mode 100644 index 0000000..3585220 --- /dev/null +++ b/data/sample-grammars/eastern-sun/easternsunsocketing.gram @@ -0,0 +1,17 @@ +[es-socketable] [es-gem] + [es-gem] + [es-rune] + +[gem-quality] chipped + flawed + blemished + flawless + extraordinary + perfect + +[es-gem] [gem-1 + [gem-1] + [gem-2] + [gem-2] + [gem-quality] [gem-1] + [gem-quality] [gem-1] diff --git a/data/sample-grammars/elementals.gram b/data/sample-grammars/elementals.gram new file mode 100644 index 0000000..30d256f --- /dev/null +++ b/data/sample-grammars/elementals.gram @@ -0,0 +1,237 @@ +[elemental] elemental + elemental + elemental + [other-elementalcreatures] + [rs-elementype] + +pragma prefix-with [elemental] [elemental-types] +pragma prefix-with [elemental] [elemental-age] +pragma prefix-with [elemental] [great-less] +pragma suffix-with [elemental] [sgreat-less] + +pragma initial-rule [elemental] + +[other-elementalcreatures] archonmental + grue + weird + elementite swarm + genasi + half-elemental + elemental [creature] + [creature] + unraveler + necromental + archon + phantom + facet + wyrm + fiend + spirit + crystalle + spawn + minion + horror + horde + reactionals + elemental dragon + elemental knight + +[great-less] lesser + greater + advanced + +[sgreat-less] , [great-less] + +[rs-elementype] essling + esshound + esswraith + +[elemental-age] small + medium + large + huge + titanic + elder + monolithic + great + primal + eldritch + +[elemental-types] [nhelemental-types] + [nhelemental-types] + [nhelemental-types] + [nhelemental-types] + [nhelemental-types] + [nhelemental-types] + [hybrid-type] + +[nhelemental-types] [quote-type] + [quote-type] + [quote-type] / [quote-type] + [quote-type] / [quote-type] / [nhelemental-types] + +pragma export-rule [elemental-types] + +[hybrid-type] hybrid [hybrid-open] and [hybrid-close] + hybrid [hybrid-open] , [nhelemental-types] and [hybrid-close] + +[hybrid-open] ( [nhelemental-types] + +pragma despace-rule [hybrid-open] + +[hybrid-close] [nhelemental-types] ) + +pragma despace-rule [hybrid-close] + +[quote-type] ( [elemental-type] ) + +pragma despace-rule [quote-type] + +[elemental-type] [bare-elemental-type] + [bare-elemental-type] + [bare-elemental-type] + [bare-elemental-type] + [elemental-adv] [bare-elemental-type] + [elemental-adv] [bare-elemental-type] + [elemental-adv] [elemental-adv] [bare-elemental-type] + +[bare-elemental-type] [common-element] + [common-element] + [runescape-elemental] + [runescape-elemental] + [paraquasi-elemental] + [paraquasi-elemental] + [other-elemental] + +pragma export-rule [elemental-type] +pragma export-rule [bare-elemental-type] + +[common-element] fire + earth + water + air + +[elemental-adv] shadowy + clockwork + spacious + ethereal + blessed + cursed + ruined + stormy + tainted + chaotic + natural + deathly + astral + cosmic + bloody + soul- + icy + oozing + smoking + ashy + dusty + salty + steaming + forceful + radiant + empty + crystallized + frosted + silty + volcanic + sparking + fuming + blazing + grave + primal + rainy + sunny + angelic + demonic + devilish + sandy + dreaming + demonically-fused + wooden + sonic + decaying + growing + diseased + metallic + null + divine + oily + eldritch + +pragma export-rule [elemental-adv] + +[other-elemental] shadow + time + space + ether + light + storm + taint + ruin + darkness + grave + mist + pyre + rain + sun + sand + dream + wood + sonic + titanium + decay + growth + disease + crystal + metal + null + oil + +[runescape-elemental] mind + body + cosmic + chaos + nature + law + death + astral + blood + soul + +[paraquasi-elemental] [para-elemental] + [para-elemental] + [quasi-elemental] + [quasi-elemental] + [quasi-elemental] + [quasi-elemental] + [paraquasi-elemental] + +[para-elemental] ice + magma + ooze + smoke + +[quasi-elemental] ash + dust + salt + vacuum + mineral + radiance + steam + force + +[paraquasi-elemental] crystal + frost + clay + silt + obsidian + pumice + spark + fumes diff --git a/data/sample-grammars/fantasy-locations.gram b/data/sample-grammars/fantasy-locations.gram new file mode 100755 index 0000000..1190d68 --- /dev/null +++ b/data/sample-grammars/fantasy-locations.gram @@ -0,0 +1,230 @@ +[fantasy-location-name] [name2] + +pragma prefix-with [fantasy-location-name] [name1] +pragma prefix-with [fantasy-location-name] [name1] + +pragma initial-rule [fantasy-location-name] + +[name1] amber + angry + ardent + azure + bittersweet + black + blasted + brass + brilliant + broken + bronze + burnt + cornsilk + crimson + cold + dagger + dark + diamond + dreaming + drowsy + dry + dusty + [black-color] + emerald + fleet + fire + [gold-color] + good + grace + grand + gray + great + green + hammer + hasty + hazy + helm + high + holy + honey + hot + [ice-type] + iron + ivory + lilac + little + kings + maple + mighty + night + [oak-type] + onyx + peaceful + pearl + prancing + quartz + queens + [rain-type] + red + [rose-type] + royal + ruby + sable + sacred + sage + sand + sapphire + screaming + shale + shining + short + [silk-type] + silver + sleeping + small + snow + solid + steel + sterling + storm + strong + summer + swift + sword + tawny + thunder + topaz + tranquil + vast + verdant + vile + violet + virgin + whisper + white + wicked + wild + wind + winter + xanthous + [complete-color] + +[name2] beach + bear + boar + bluff + brook + butte + castle + cave + circle + cliff + crag + creek + crescent + crevasse + crow + crown + coast + dale + dark + dragon + dunes + eagle + elk + field + fist + ford + forest + fountain + fox + gale + gauntlet + glade + goose + griffin + grove + gulf + hall + hedge + hill + hold + hole + isle + keep + lake + light + lion + lord + maiden + march + marsh + mare + maze + meet + mark + mine + mirror + oasis + orchard + owl + path + peak + plain + point + pony + pool + prison + quest + reach + reef + ridge + ring + river + road + rock + rush + sea + serpent + shell + shield + shore + sky + square + stag + star + steed + stone + stream + sun + tear + tiger + tower + unicorn + vale + valley + wall + wash + water + way + wolf + wood + +[silk-type] silk + silken + +[rose-type] rose + rosy + +[rain-type] rain + rainy + +[oak-type] oak + oaken + +[ice-type] ice + icy + +[black-color] ebon + ebony + +[gold-color] gold + golden diff --git a/data/sample-grammars/fortune.gram b/data/sample-grammars/fortune.gram new file mode 100644 index 0000000..8bfce32 --- /dev/null +++ b/data/sample-grammars/fortune.gram @@ -0,0 +1,123 @@ +[fortune-cookie] you will buy a new set of clothes + you will be hit over the head with a piano falling from a [ordinal] floor window + you will be audited by the irs + you will be audited by the irs because of your activity in the [org-political] + you will be held hostage by the radical [org-political] + you will be run over by a [bus] + you will find yourself as the victim of a bizarre practical joke + you will contract a rare form of [plural+last-name] disease + you will grow fat and bald + you will lose your present job and have to become a [job] + you will run for public office and only receive [half-digit+percent] of the vote + your spouse will eventually find out about you-know what + you will accidentally run over your neighbor's pet [animal] and be sued for [1..5] million dollars. + you will arrive late at work only to realize that it's a federal holiday + you will write a perl script to spit out random text + your family will grow suspicious of your newly acquired tattoo + you will receive a promotion, only to be terminated a month later by failing a random drug test + you will spend the next [2..7] days fighting a flaw in a microsoft product + you will become the leader of the [org-political] + you will lose your job because of your involvement in the [org-political] + you will find the perfect joke to play on your [relative] on april fool's day, only to discover that it's actually april 2nd + your television will explode while the [big-game] is on + you will receive a [large+bill] [bill-type] dollar bill by mistake + you will find a counterfeit [counter-bill] dollar bill on the ground + you will discover that everybody really is out to get you + you will become successful in business -- unfortunately, that business will violate the laws of [30..49] states + you will inherit [40..80] acres of worthless swampland from your relative + along with [5..9] billion cockroaches, you will be the only survivor of world war II + you will save the world -- Bob's Auto World that is + you will move into a mobile home park and then a tornado will strike the very next day + you will set a record high golf score + a black cat will run across your path today, but thankfully you aren't superstitious (at least not until you get run over by a bus this evening + the engine in your [vehicle] will explode precisely [10..35] seconds after your warranty expires + while on a business trip to [real-city] you will get lost and wind up in [real-city] + you will shoot your eye out with a BB gun, just as your mother said you would + you will run out of gas on Interstate [4..99] in the vicinity of nowhere, [us-state] , population [1..25] + your website will be hit with the dreaded slashdot effect, causing your webserver to die a painful death + you will be abducted by aliens and taken to the secret planet [random-name] [roman-numeral] for extensive probing + you will become the editor for a tabloid newspaper + you will soon realize that your life is completely indistinguishable from "Dilbert" cartoons + you will hurt your hand while thumping a Bible + you will discover the meaning of life at the bottom of a beer bottle, but you won't remember what it is after you sober up in the morning + you will receive a blank fortune cookie at a chinese restaurant, an event regarded by most superstition experts as a "bad omen" + you will be falsely accused of jaywalking + you will suffer a nosebleed during a speech in front of [speech+num] people + you will receive [50..100] credit card offers in the mail during the next week + you will receive [speech+num] pieces of spam email during the next year + your favorite tv show will be cancelled and replaced with an infomercial + you will lose your life savings in las vegas + you will sign a contract requiring you to hand over your first born son to a large multinational corporation + your [progeny] will lose a spelling bee after misspelling [quote+name] + you will be declared a "town drunk" by your local city council + you will be responsible for an international incident + medical studies will reveal that your favorite [food] causes [bad-thing] + you will be deported to [nation] + you will realize that your life really is completely meaningless + you will appear on "who wants to be a millionaire?" and fail to answer the first $100 question + you will be sued by major league baseball for taping the world series on your vcr without prior written consent + you will be at the losing end of a [300..500] dollar lawsuit + you will receive a [100..500] dollar parking ticket from [real-city] even though you have never been there + every single time you visit the doctor's office, the doctor will be out playing golf + until the day you die, you will never understand what the saying "Life is like a bowl of cherries" actually means + your hometown baseball team will never win the world series + your brand-new [comp+amount] dollar computer will be struck by lightning [3..6] hours after you first plug it in + you will send the author of this fortune [hundred+amount] in plain, unmarked bills with the next week + you will be excommunicated from your church after you accidentally fall asleep and start snoring during services + your personal information will be in the hands of [100..500] large, evil multinational corporations by the time you finish reading this fortune + +pragma initial-rule [fortune-cookie] + +[vehicle] car + truck + suv + minivan + +[bus] cross-town bus + beer truck + police car + +[big-game] super bowl + world series + big game + +[bill-type] hospital + car repair + credit card + +[counter-bill] 3 + 5 + 10 + 13 + 20 + 50 + 100 + +[plural+last-name] [last-name] 's + +[half-digit+percent] [1..5] % + +[large+bill] [digit-nonzero] [digit] [digit] , [digit] [digit] [digit] + +[digit+digit] [digit] . [digit] + +[speech+num] [5..10] , [digit] [digit] [digit] + +[progeny] son + daughter + +[quote+name] " [random-name] " + +[food] food + beverage + snack + +[bad-thing] cancer + heart disease + insanity + +[comp+amount] [2..4] , [digit] [digit] [digit] + +[hundred+amount] $ [digit-nonzero] 00 + +[job] 'WRITE ME' diff --git a/data/sample-grammars/gemstones.gram b/data/sample-grammars/gemstones.gram new file mode 100644 index 0000000..8f8a579 --- /dev/null +++ b/data/sample-grammars/gemstones.gram @@ -0,0 +1,143 @@ +[gemstones] [gemstone] + [gemstone] + [gemstone] + [gemstone-group] + +[gemstone-group] pair of [gemstone] + [gemstone-sizedesc] pile of [gemstone] + [gemstone-sizedesc] hoard of [gemstone] + +pragma initial-rule [gemstones] +pragma suffix-with [gemstones] jewels + +[gemstone] [gemstone-1] + [gemstone-1] + [gemstone-1] + [gemstone-1] + [ds-gem] + +[gemstone-1] [common-gem] + [rare-gem] + [legendary-gem] + [epic-gem] + +pragma export-rule [gemstone] + +[gemstone-sizedesc] [size] + [gemstone-desc] + [size] [gemstone-desc] + [gemstone-desc] [size] + +pragma prefix-with [gemstone] [gemstone-sizedesc] + +[size] tiny + miniscule + small + medium + large + huge + titanic + +[gemstone-desc] flawless + flawed + cracked + faceted + cut + uncut + fake + +[common-gem] amber + amethyst + garnet + moonstone + jade + pearl + peridot + turquoise + [quote-raregem] of poor [extra-deficit] + +pragma export-rule [common-gem] + +[rare-gem] alexandrite + aquamarine + black pearl + topaz + [rare-gem-misc] + +[rare-gem-misc] [quote-commongem] of extraordinary [extra-quality] + [quote-commongem] and [quote-commongem] + [quote-commongem] mixed with [quote-commongem] + [quote-commongem] and [quote-commongem] fused together + [quote-legendarygem] of poor [extra-deficit] + +[extra-deficit] [extra-qualities] + [extra-qualities] + [extra-qualities] + [extra-qualities] + [extra-qualities] but excellent [extra-qualities] + +[extra-quality] [extra-qualities] + [extra-qualities] + [extra-qualities] + [extra-qualities] + [extra-qualities] but poor [extra-qualities] + +[extra-qualities] [extra-quality-part] + [extra-quality-part] + [extra-quality-part] + [extra-quality-phrase] + +[extra-quality-phrase] [extra-quality-part] and [extra-quality-part] + [extra-quality-part] and [extra-quality-part] + [extra-quality-part] , [extra-quality-part] and [extra-quality-part] + +[extra-quality-part] size + color + cut + quality + clarity + brilliance + +[quote-commongem] ( [common-gem] ) + +pragma despace-rule [quote-commongem] +pragma export-rule [rare-gem] + +[legendary-gem] emerald + fire opal + sapphire + [legendary-gem-misc] + +[legendary-gem-misc] [quote-raregem] of extraordinary [extra-quality] + [quote-raregem] and [quote-raregem] + [quote-raregem] mixed with [quote-raregem] + [quote-raregem] and [quote-raregem] fused together + [quote-epicgem] of poor [extra-deficit] + +[quote-raregem] ( [rare-gem] ) + +pragma despace-rule [quote-raregem] +pragma export-rule [legendary-gem] + +[epic-gem] [epic-gem-1] + [epic-gem-1] + [epic-gem-1] + [epic-gem-1] + [ds-gem] + +[epic-gem-1] diamond + jacinth + ruby + [epic-gem-misc] + +[epic-gem-misc] [quote-legendarygem] of extraordinary [extra-quality] + [quote-legendarygem] and [quote-legendarygem] + [quote-legendarygem] mixed with [quote-legendarygem] + [quote-legendarygem] and [quote-legendarygem] fused together + +[quote-legendarygem] ( [legendary-gem] ) + +[quote-epicgem] ( [epic-gem] ) + +pragma despace-rule [quote-legendarygem] +pragma export-rule [epic-gem] diff --git a/data/sample-grammars/genre-fiction.gram b/data/sample-grammars/genre-fiction.gram new file mode 100755 index 0000000..92437d7 --- /dev/null +++ b/data/sample-grammars/genre-fiction.gram @@ -0,0 +1,167 @@ +[genre-fict] in a [setting] a young [person] stumbles across a(n) [place] [genre-fict2] + +# Uncomment me when we're done testing, because this rule takes a while to +# generate +pragma initial-rule [genre-fict] +pragma export-rule [genre-fict] + +[genre-fict2] which spurs him into conflict with [antagonist] [genre-fict3] + +[genre-fict3] with the help of a [female] and her [gear] culminating in [genre-fict4] + +[genre-fict4] culminating in [climax] . This is [title] + +[setting] [setting-adj] [setting-dest] + +[setting-adj] néo-noir + alternate-history + ancient + dystopian + metaphorical + anachronistic + leather-clad + coal-powered + dragon-filled + shrill + +[setting-dest] America + japan + soviet Russia + Victorian Britain + medieval Europe + Aztec empire + Atlantis + Terraformed mars + Antarctica + one-way spaceflight + outer rim world + set from road warrior + +[person] flying message courier + student of metaphysics + milquetoast office drone + schlub with mild OCD + farm boy with dreams + techno-obsessed geek + brooding loner + wisecracking mercenary + idealistic revolutionary + journeyman inventor + collector of oddities + author self-insert + +[place] [place-pref] [place-suff] + +[place-pref] magic + arcane + dusty + crazy + alien + enchanted + otherworldly + dream-inducing + encrypted + time-traveling + exiled + talking + +[place-suff] diadem + prophecy + tome + old man + artifact + sword + portal + drug + data feed + soldier + angel + fish + +[antagonist] a megalomaniacal dictator + a government conspiracy + a profit-obsessed corporation + a sneering wizard + supernatural monsters + computer viruses made real + murderous robots + an army led by a sadist + forces that encourage conformity + a charismatic politician on the rise + humanity’s selfish nature + his own insecurity vis-a-vis girls + +[female] [female] + [female] [fem-suffix] + [fem-prefix] [female] + [fem-prefix] [female] [fem-suffix] + +[fem-prefix] sarcastic + tomboyish + shape-shifting + leather-clad + bookish + cherubic + +[female] female + girl + +[fem-suffix] techno-geek + mechanic + assassin + in shades + who’s always loved him + scholar with mousy brown hair + with pigtails and spunk + who inexplicably becomes attracted to the damaged protagonist for unstated reasons + +[gear] wacky pet + welding gear + closet full of assault rifles + reference book + cleavage + facility with magic + condescending tone + discomfort in formal wear + propensity for being captured + +[climax] a fistfight atop a tower + a daring rescue preceding a giant explosion + a heroic sacrifice that no one will ever remember + a philosophical argument punctuated by violence + a false victory with the promise of future danger + the invocation of a spell at the last possible moment + eternal love professed without irony + the land restored to health + authorial preaching through the mouths of the characters + convoluted nonsense that squanders the reader’s goodwill + wish-fulfillment solutions to real-world problems + a cliffhanger for the sake of prompting a series + +[title] [tit-1] [tit-2] + +[tit-1] chrono + neuro + aero + cosmo + reve + necro + cyber + astro + psycho + steam + meta + black + +[tit-2] punk + mech + noiac + (o)poli + naut + phage + droid + bot + blade + tron + cancer + War diff --git a/data/sample-grammars/horror.gram b/data/sample-grammars/horror.gram new file mode 100644 index 0000000..07d84de --- /dev/null +++ b/data/sample-grammars/horror.gram @@ -0,0 +1,33 @@ +[horror-movie] [first] [second] [third] + +pragma initial-rule [horror-movie] + +[first] attack of the + invasion of the + day of the + beware! The + terror of the + death by + curse of the + earth vs. the + return of the + +[second] disco + massive + worrying + flying + flesh eating + windy + mutant + hairy + overly keen + +[third] vampires + swamp beasts + boy bands + muffins + werewolves + zombies + sock puppets + death bots + snuggle badgers diff --git a/data/sample-grammars/insults.gram b/data/sample-grammars/insults.gram new file mode 100644 index 0000000..98a7a8e --- /dev/null +++ b/data/sample-grammars/insults.gram @@ -0,0 +1,160 @@ +[shakesphere-insult] Thou [insult-1] [insult-2] [bang-insult] + +pragma initial-rule [shakesphere-insult] + +[bang-insult] [insult-3] ! + +pragma despace-rule [bang-insult] + +[insult-1] artless + bawdy + beslubbering + bootless + churlish + cockered + clouted + craven + currish + dankish + dissembling + droning + errant + fawning + fobbing + froward + frothy + gleeking + goatish + gorbellied + impertinent + infectious + jarring + loggerheaded + lumpish + mammering + mangled + mewling + paunchy + pribbling + puking + puny + qualling + rank + reeky + roguish + ruttish + saucy + spleeny + spongy + surly + tottering + unmuzzled + vain + venomed + villainous + warped + wayward + weedy + yeasty + +[insult-2] base-court + bat-fowling + beef-witted + beetle-headed + boil-brained + clapper-clawed + clay-brained + common-kissing + crook-pated + dismal-dreaming + dizzy-eyed + doghearted + dread-bolted + earth-vexing + elf-skinned + fat-kidneyed + fen-sucked + flap-mouthed + fly-bitten + folly-fallen + fool-born + full-gorged + guts-griping + half-faced + hasty-witted + hedge-born + hell-hated + idle-headed + ill-breeding + ill-nurtured + knotty-pated + milk-livered + motley-minded + onion-eyed + plume-plucked + pottle-deep + pox-marked + reeling-ripe + rough-hewn + rude-growing + rump-fed + shard-borne + sheep-biting + spur-galled + swag-bellied + tardy-gaited + tickle-brained + toad-spotted + unchin-snouted + weather-bitten + +[insult-3] apple-john + baggage + barnacle + bladder + boar-pig + bugbear + bum-bailey + canker-blossom + clack-dish + clotpole + coxcomb + codpiece + death-token + dewberry + flap-dragon + flax-wench + flirt-gill + foot-licker + fustilarian + giglet + gudgeon + haggard + harpy + hedge-pig + horn-beast + hugger-mugger + joithead + lewdster + lout + maggot-pie + malt-worm + mammet + measle + minnow + miscreant + moldwarp + mumble-news + nut-hook + pigeon-egg + pignut + puttock + pumpion + ratsbane + scut + skainsmate + strumpet + varlet + vassal + whey-face + wagtail diff --git a/data/sample-grammars/linux.gram b/data/sample-grammars/linux.gram new file mode 100644 index 0000000..ad18d65 --- /dev/null +++ b/data/sample-grammars/linux.gram @@ -0,0 +1,988 @@ +[linux-domain] [actual+linux-domain] + +pragma initial-rule [linux-domain] + +[actual+linux-domain] [linux-domainname] . [big-tld] + +[linux-domainname] [linux-domain1] [linux-domain2] + [linux-domain1] [linux-domain2] + [linux-domain1] [linux-domain2] + [linux-domain1] [linux-domain1] + [linux-domain1] [linux-domain1] + [linux-domain1] [linux-domain1] [linux-domain2] + [linux-domain1] [linux-domain1] - [linux-domain2] + [linux-domain1] - [linux-domain2] + [linux-domain0] [linux-domain1] + [linux-domain0] [linux-domain1] [linux-domain2] + [linux-domain0] [linux-domain2] + [linux-domain1] . [domain-name] + +[linux-domain0] cmdr + captain + super + major + taco + cool + phat + burrito + coffee + mega + meta + slash + dot + colon + grok + about + 1st + just + everything + project + os + techno + source + the + open + free + new + colonel + go + wow + hot + uber + [first-name] + +[linux-domain1] linux + geek + nerd + hack + unix + bsd + freebsd + solaris + apache + gnu + opensource + penguin + tux + daemon + linus + hacker + root + kernel + perl + python + programming + bitbucket + null + +[linux-domain2] news + week + today + tommorrow + day + newbie + ware + cheesymerchandise + headlines + stuff + portal + power + shell + hack + fest + web + site + forum + community + dotcom + dotorg + fun + help + advice + world + network + net + humor + rules + warez + rulez + kiddie + geek + nerd + hacker + moneymakingportal + here + planet + city + place + chat + grok + one + central + plaza + 2000 + search + find + finder + links + directory + apps + business + biz + archives + island + software + bandwagon + life + howto + mag + month + minute + chix + meat + women + docs + games + focus + [newspaper-pair2] + start + now + future + universe + galaxy + key + party + jobs + tech + +[linux-distro] red hat linux + debian gnu/linux + suse linux + turbolinux + stampede linux + caldera openlinux + slackware linux + linux mandrake + corel linux + +[linux-company] red hat + suse + caldera + corel + linuxcare + va linux + internet.com + cobalt networks + applix + +[linux-personality] linux torvalds + eric s. raymond + richard m. stallman + alan cox + bernharn rosenkraenzer + rik van riel + larry wall + bruce perens + miguel de icaza + +[microsoft-personality] bill gates + steve ballmer + ed muth + nathan myrrhvold + raymond chen + +[pundit-personality] jesse berst + fred moody + bob metcalfe + +[tech-columnist] [pundit-personality] + robert x. cringely + jon katz + nicholas petreley + john dvorak + +[linux-publication] linuxtoday + lwn + linuxworld + linux.com + +[linux-expo] [expo-body] [expo-suffix] + +pragma export-rule [linux-expo] + +[expo-body] [real-city] linux + [us-state] linux + linux + linuxworld + linuxexpo + linuxcon + +[expo-suffix] showcase + expo + conference + convention + show + money-making expo + phb get-together + +[tech-lawsuit-target] decss + napster + mp3.com + 2600 + +[techgeek-target] dmca + microsoft + echelon + carnivore + "know your customer" + geek profiling + software patents + +[techgeek-enemy] microsoft + riaa + mpaa + dvd cca + network solutions + +[geek-people] hackers + geeks + nerds + kids + teenagers + [teen-type] teens + anonymous cowards + lurkers + flamers + +[teen-type] angst-ridden + troubled + +[geek-enemy] bible-thumpers + congresscritters + [parent-type] parents + recording industry executives + media tycoons + bureaucrats + soccer moms + prohibitionists + lawyers + attorneys + lobbyists + pointy haired bosses + school administrators + thought police + +[parent-type] paranoid + clueless + hysterical + +[geek-badguys] script kiddies + hackers + crackers + spammers + +[geek-political-problem] censorship + software patents + carnivore + echelon + geek profiling + "know your customer" + domain snatching + +[tech-problem] script kiddies + spammers + crackers + backhoes + network outages + system crashes + +[linux-error] lp1 on fire + kernel panic + signal 11 + security hole found between chair and monitor + user needs a cluestick + this ain't windows + bus error + black hole imminent + segmentation fault + +[tech-topic] bogus patents + artificial intelligence + embedded systems + dotcom meltdown + hackers/crackers + spam + windows [windows-version] security exploits + +[geek-entertainment] star wars + star wars + the matrix + star trek: [trek-type] + star tek + the simpsons + x-files + babylon 5 + mst3k + +[trek-type] tos + tng + ds9 + voyager + +[geek-scifi-book] the [geek-scifi-people] of the [geek-scifi-alien] [geek-scifi-place] + the [geek-scifi-people] of [geek-scifi-alien] + [geek-scifi-event] of the [geek-scifi-alien] [geek-scifi-place] + [geek-scifi-event] of the [geek-scifi-place] of the [geek-scifi-people] + the [geek-scifi-thing] of the [geek-scifi-alien] [geek-scifi-place] + [geek-scifi-people] of the [geek-scifi-thing] + [geek-scifi-place] [geek-scifi-thing] + the [geek-scifi-enemy] [awaits] + [geek-scifi-thing] of the [geek-scifi-enemy] + [geek-scifi-event] of the [geek-scifi-enemy] + [geek-scifi-thing] [balance] + [geek-scifi-event] of the [geek-scifi-thing] of [geek-scifi-alien] + [geek-scifi-adj] [geek-scifi-place] + [geek-scifi-adj] [geek-scifi-place] of [geek-scifi-alien] + [geek-scifi-adj] [geek-scifi-alien] [geek-scifi-thing] + [last-name] [effect] + +pragma export-rule [geek-scifi-book] + +[awaits] awaits + comes + awakens + returns + +[balance] in the balance + on hold + in limbo + vanishes + +[effect] effect + equation + +[geek-scifi-place] planet + star + sun + universe + galaxy + solar system + world + realm + asteroid + comet + outpost + matrix + constellation + continuum + cluster + quasar + nebula + +[geek-scifi-thing] [techno+clysm] + federation + future + community + civilization + spaceship + union + alliance + foundation + conspiracy + amulet + black hole + anomaly + underground + empire + +[geek-scifi-enemy] menace + monster + machine + beast + devil + +[geek-scifi-people] explorer + pioneer + guardian + time traveler + astrophysicist + stonecutter + mystic + fortuneteller + philosopher + king + god + goddess + [dictator] + aristocrat + mathematician + scientist + wizard + +[geek-scifi-event] revenge + return + rise + fall + destruction + implosion + annihilation + victory + defeat + end + +[dictator] dictator + tyrant + despot + monarch + +[techno+clysm] [techno] clysm + +[techno] techno + cyber + lawyer + chrono + +[geek-scifi-adj] expanding + collapsing + imploding + derelict + abandoned + lost + triumphant + victorious + doomed + forbidden + unknown + null + infinite + +[geek-scifi-element] time travel + artificial intelligence + a sentient [animal] + galactic civilizations + faster-than-light travel + parallel universes + anti-gravity cars + mind-reading aliens + scientific techno-babble + teleportation + +[geek-scifi-alien] [random-name] + [geek-scifi-alien2] + +[geek-scifi-alien2] [planet] + orion + andromeda + gaia + alpha centauri + betelguese + alpha + beta + gamma + epsilon + +[geek-scifi-author] robert heinlein + neal stephenson + arthur c. clarke + isaac asimov + orson scott card + +[bogus-patent] server side includes + weblog-style sites + random poetry generators + [beige] computer cases + rectangular computer cases + dancing software assistants + command-line interfaces + floppy diskettes + hypertext documents + interpreted scripting languages + [num+click] shopping + rot13 encoding + xor encoding + the quadratic formula + cgi scripting + spell checking + pull-down menus + [dir] scroll bars + +[dir] horizontal + vertical + +[beige] beige + rectangular + translucent + +[num+click] [click-num] -click + +[click-num] double + zero + triple + +[pundit-flame] linux is communistic + linux will fail + linux is the worst operating system ever + could you get fired for choosing linux + unix is 1960s technology + the gpl is even more restrictive than a microsoft eula + the gnu project is holding back the open source movement + open source projects are uncreative and unoriginal + linux doesn't contain any innovations + microsoft is the most innovative company in the history of mankind + windows [windows-version] is much better than linux + iunix sucks + windows is the only gui with a consistent interface + why do end-users need source code anyways + linux users all behave like immature [7..16] year olds + linux = linsux + linux is only free if your time is worthless + security through obscurity is the only way to go + attack of the snot-nosed linux zealots + linux advocacy: a dangerous brainwashing religious cult + microsoft will win + +[peripheral] digital camera + [peripheral-interface] infrared video camera + [peripheral-interface] scanner + software modem + cable modem + video card + [monitor-type] capture card + [peripheral-interface] [wireless+type] wireless adapter + 3d accelerator card + [peripheral-interface] time travel card + [peripheral-interface] coffee machine + [15..99] inch [monitor] + [15..99] inch widescreen [monitor] + uninterruptible power supply + [peripheral-interface] cd-recorder + beowulf-cluster-in-a-box + [cable-type] extender + [cable-type] to [cable-type] converter + [cable-type] hub + [cable-type] splitter + +[wireless+type] 802.11 [wireless-postfix] + +[wireless-postfix] a + b + g + n + ac + ad + af + ah + ai + aj + aq + ax + ay + +[cable-type] [monitor-type] + [peripheral-interface] + +[monitor] monitor + +pragma prefix-with [monitor] [monitor-resolution] +pragma prefix-with [monitor] [monitor-type] + +[monitor-resolution] 4k + 1080p + 720p + 480p + 360p + 240p + 144p + +[monitor-type] vga + dvi-d + hdmi + display-port + mini display-port + micro display-port + +[peripheral-interface] scsi + ide + parallel + [usb] + firewire 400 + firewire 800 + serial + thunderbolt + +[usb] usb + usb type A + usb type B + usb 3.0 + usb 2.0 + micro-usb + mini-usb + usb (type C) + +pragma export-rule [peripheral] + +[tech-hardware-company] ibm + dell + compaq + maxtor + seagate + western digital + transmeta + hewlett packard + +[opensource-project] linux + freebsd + netbsd + openbsd + apache + sendmail + gnome + kde + x11 + mozilla + +[unix-tool] awk + sed + bison + gcc + vi + emacs + +[linux-event] linuxworld expo + atlanta linux showcase + linuxfest + linuxexpo + +[linux-usergroup] [linux+usergroup] + +[linux+usergroup] [letter] [letter] lug + [us-postal-state] lug + [letter] lug + +[freshmeat-url] [freshmeat+url] + +pragma export-rule [freshmeat-url] + +[freshmeat+url] http://freshmeat.net/news/ [digit] / [digit] / [freshmeat-group1] / [freshmeat-group2] .html + +[freshmeat-group1] [digit] [digit] [digit] [digit] + +[freshmeat-group2] [digit] [digit] [digit] [digit] [digit] [digit] [digit] [digit] [digit] + +[freshmeat-desc] [app-type] [app-suffix] + [app-type] [app-suffix] for [freshmeat-for] + [app-type] [app-suffix] written in [computer-language] + [buzzword-adjective] [buzzword-noun] written in [computer-language] + [buzzword-adjective] [buzzword-noun] for the [career-tech] + [buzzword-adjective] [buzzword-noun] [buzzword-job] + [freshmeat-prefix] [app-type] [app-suffix] + [computer-language] [app-suffix] + [freshmeat-prefix] [buzzword-noun] + clone of [app-name-simple] + [freshmeat-prefix] implementation of microsoft [ms-product] + +pragma export-rule [freshmeat-desc] + +[freshmeat-prefix] open source + free + libre + updated + revamped + upgraded + shareware + freeware + public domain + +[freshmeat-for] linux + [linux-distro] + unix + freebsd + beos + bsd unix + perl/tk + tcl/tk + kde + gnome + qt + gtk + x11 + +[freshmeat-app] [app-name] [app-version] + +[app-name] [app-name-simple] + [app-name-simple] + [app-name-simple] + [app-name-complex] + +pragma export-rule [app-name] + +[app-name-simple] [app-name+simple] + +[app-name+simple] [acronym] + [acronym] + [acronym] + [app-prefix] [acronym] + [app-prefix] [syllable] [letter] + [app-prefix] [syllable] 2 [syllable] + [acronym] + [letter] [acronym] + [random-name] + [last-name] + [syllable] [syllable] + [letter] [syllable] + [letter] [letter] [letter] + [letter] [letter] [letter] [letter] + [letter] [letter] [letter] [letter] + [letter] [letter] [letter] [letter] + [letter] [letter] [letter] [number-word] + [app-prefix] [acronym] + [app-prefix] [random-name] + [app-prefix] [letter] [letter] [letter] [letter] + [app-common] + +[app-name-complex] [plural+first] [app-type] [app-suffix] + [plural+first] [app-suffix] + [acronym] [app-type] + [acronym] [app-type] [app-suffix] + [app-type] [app-suffix] + [2+syllable] [app-type] [app-suffix] + [random-name] [app-suffix] + [app-prefix+letter] [app-suffix] + [app-prefix+syllable] [app-type] [app-suffix] + [app-common] [app-type] [app-suffix] + [tech-company] [peripheral] [device-type] + [buzzword-adjective] [app-suffix] + [plural+first] [buzzword-adjective] [buzzword-noun] [buzzword-job] + [acronym] [buzzword-noun] + [app-prefix+name] [buzzword-adjective] [buzzword-job] [app-suffix] + [random-name] [buzzword-job] + [buzzword-adjective] [buzzword-noun] [app-suffix] + [linux-distro] + +[device-type] 'WRITE ME' + +[app-prefix+name] [app-prefix] [random-name] + +[app-prefix+letter] [app-prefix] [letter] [letter] [letter] [letter] + +[app-prefix+syllable] [app-prefix] [syllable] [syllable] + +[2+syllable] [syllable] [syllable] + +[plural+first] [first-name] 's + +[app-prefix] gnu/ + gnu + gnu + gtk- + gtk + kde + x + k + x11 + perl + java + php_ + php + py + gpl + linux + linux + my + qt + qt_ + lib + lib + mod + mod_ + wx + cgi + web + net + html + phat + cool + wm + free + news + bsd + +[app-suffix] viewer + browser + client + server + proxy + agent + editor + database + object + programming language + shell + hack + window manager + user interface + front-end + back-end + interface + module + library + parser + generator + compiler + linker + plug-in + applet + project + office + enviroment + processor + parser + tools + toolkit + electron waster + simulator + clone + filesystem + device manager + thingamajig + +[app-type] web + internet + object-oriented + buzzword-enhanced + tcp/ip + html + http + xml + graphics + ascii + unicode + threaded + cool + cgi + scripting + online + c + perl + java + python + modern + postmodern + new and improved + +[app-common] [app+common] + +[app+common] [letter] spell + [letter] mail + [letter] edit + [last-name] fs + [random-name] lib + [letter] find + [random-name] x + [letter] grep + [letter] tools + +[app-version] [app+version] + +[app+version] 0.0. [1..20] [version-suffix] + 0. [digit-nonzero] . [0..30] + 1.0. [0..30] + 1. [digit-nonzero] . [0..30] [version-suffix] + 2. [digit] . [0..30] + 2. [digit] . [0..30] [version-suffix] + [3..9] . [digit] . [0..30] + 0.0 [digit] [version-suffix] + 0. [digit] + 0. [1..99] + 1.0 [version-suffix] + 1.00 + 1. [1..99] + 1. [1..99] [version-suffix] + [2..20] . [1..99] [version-suffix] + +[version-suffix] pl [digit] + alpha + beta + - [1..30] + [letter] + -ac [digit] + -pre [digit] + +[linux-kernel-version] [linux-kernel+version] + +[linux-kernel+version] 2.2. [30..40] + 2.3. [50..99] + 2.4.0-pre [1..30] + 2.4.0-ac [1..30] + 2.4. [digit] + 2.5. [0..99] + [2..4] . [6..9] . [0..99] + +[windows-version] 3.1 + 95 + 98 + 98 second edition + millenium edition + nt 4.0 + 2000 + ce + xp + xp service pack 2 + vista + 7 + 8 + 10 + 10 anniversary edition + 10 creators update + +[ms-product] office + word + excel + access + powerpoint + bob + visual basic + visual c++ + iis + frontpage + +[software-product] coreldraw + wordperfect + microsoft office + microsoft word + borland delphi + oracle + interbase + autocad + +[microsoft-slogan] making it all make cents + over [5..20] years of innovation + wintel inside + your windows and gates to the world + fighting the department of injustice since day one + because anti-trust laws are obsolete + real people use our software, not nerds and geeks + crashes are normal + embracing and extending for over [20..30] years + this motto is not anti-competitive + got windows? you have to! + one microsoft way. it's much more than an address + +[opensource-license] gnu general public license + gnu lesser general public license + bsd licences + artistic license + mozilla public license + x11 license + apache license + +[rfc-document] [over+ip] + ip datagrams carried by [carrier] + PORN over real-time networks + +[over+ip] [ip-stuff] -over-ip + +[ip-stuff] electricity + water + pizza + beer diff --git a/data/sample-grammars/long-data/animal.gram b/data/sample-grammars/long-data/animal.gram new file mode 100644 index 0000000..8ce3b9d --- /dev/null +++ b/data/sample-grammars/long-data/animal.gram @@ -0,0 +1,17 @@ +[animal] dog + cat + horse + cow + chicken + penguin + turkey + eagle + llama + camel + deer + bear + elk + giraffe + elephant + +pragma initial-rule [animal] diff --git a/data/sample-grammars/long-data/canada-province.gram b/data/sample-grammars/long-data/canada-province.gram new file mode 100644 index 0000000..8210d42 --- /dev/null +++ b/data/sample-grammars/long-data/canada-province.gram @@ -0,0 +1,16 @@ +[canada-province] Alberta + British Columbia + Manitoba + New Brunswick + Newfoundland + Labrador + Northwest Territories + Nova Scotia + Nunavut + Ontario + Prince Edward island + Quebec + Saskatchewan + Yukon + +pragma initial-rule [canada-province] diff --git a/data/sample-grammars/long-data/cards.gram b/data/sample-grammars/long-data/cards.gram new file mode 100644 index 0000000..51a86d4 --- /dev/null +++ b/data/sample-grammars/long-data/cards.gram @@ -0,0 +1,261 @@ +[card] [playing-card] + [tarot-card] + [complete-many-things] + [harrowed-many-things] + +pragma initial-rule [card] + +[playing-card] [playing-rank] of [playing-suit] + +pragma export-rule [playing-card] + +[playing-suit] hearts + clubs + spades + diamonds + +[playing-rank] [rank-two] + [rank-three] + [rank-four] + [rank-five] + [rank-six] + [rank-seven] + [rank-eight] + [rank-nine] + [rank-ten] + jack + king + queen + ace + +[rank-two] 2 + deuce + two + +[rank-three] 3 + three + +[rank-four] 4 + four + +[rank-five] 5 + five + +[rank-six] 6 + six + +[rank-seven] 7 + seven + +[rank-eight] 8 + eight + +[rank-nine] 9 + nine + +[rank-ten] 10 + ten + +[tarot-card] [minor-arcana] + [major-arcana] + +pragma prefix-with [tarot-card] inverse + +pragma export-rule [tarot-card] + +[minor-arcana] [minor-rank] of [arcana-suit] + +[arcana-suit] [playing-suit] + [arcana-suit] + [alt-arcana-suit] + +[major-arcana] [major-arcana1] + [major-arcana2] + +pragma export-rule [major-arcana] + +[minor-rank] ace + [rank-two] + [rank-three] + [rank-four] + [rank-five] + [rank-six] + [rank-seven] + [rank-eight] + [rank-nine] + [rank-ten] + knave + page + jack + knight + king + queen + +[arcana-suit] swords + staves + cups + coins + pentacles + +[alt-arcana-suit] stones + books + bells + candles + +[major-arcana1] the magician + the high priestess + the empress + the emperor + the hierophant + the lovers + the chariot + justice + the hermit + the wheel of fortune + the strength + the hanged man + death + temperance + the devil + the tower + the star + the moon + the sun + judgment + the world + the fool + the excuse + +pragma export-rule [major-arcana1] + +[major-arcana2] the witch + the sorceror + the temple + balance + the dragon + the die + diligence + life + courage + the angel + day + dusk + night + the rainbow + void + the demon + +pragma export-rule [major-arcana2] + +[complete-many-things] fates + donjon + balance + patient zero + metamorphosis + frog + dwarf + crone + tongue + coin + rogue + euryale + ruin + talons + idiot + burdned man + bleeding man + cripple + nymph + leper + acid + blind man + hermaphrodite + skull + flames + void + god-king + wizard + titan + chicken soup + ballerina + sage + demagogue + armor + guide + heart + knight + moon + throne + vizier + gem + envy + sea + shoes + nose + giant + maiden + gift + comet + star + key + sun + jester + fool + +pragma export-rule [complete-many-things] + +[harrowed-many-things] the avalanche + the bear + the beating + the betrayal + the big sky + the brass dwarf + the carnival + the courtesan + the cricket + the crows + the cyclone + the dance + the demon's lantern + the desert + the fiend + the foreign trader + the forge + the eclipse + the empty throne + the hidden truth + the idiot + the inquisitor + the joke + the juggler + the keep + the liar + the locksmith + the lost + the marriage + the mountain man + the mute hag + the owl + the paladin + the peacock + the publican + the queen mother + the rabbit prince + the rakshasa + the sickness + the snakebite + the survivor + the tangled briar + the teamster + the theater + the trumpet + the twin joker + the tyrant + the unicorn + the uprsing + the vision + the wanderer + the waxworks + the winged serpent + +pragma export-rule [harrowed-many-things] diff --git a/data/sample-grammars/long-data/color.gram b/data/sample-grammars/long-data/color.gram new file mode 100644 index 0000000..c71d04d --- /dev/null +++ b/data/sample-grammars/long-data/color.gram @@ -0,0 +1,16 @@ +[color] orange + purple + brown + grey + [natural-color] + +pragma export-rule [color] + +[natural-color] red + black + blue + green + white + yellow + +pragma export-rule [natural-color] diff --git a/data/sample-grammars/long-data/first-name-female.gram b/data/sample-grammars/long-data/first-name-female.gram new file mode 100644 index 0000000..0bdfc8b --- /dev/null +++ b/data/sample-grammars/long-data/first-name-female.gram @@ -0,0 +1,534 @@ +[first-name-female] Abigail + Ada + Adrienne + Agnes + Alberta + Alexandra + Alexis + Alice + Alicia + Alison + Allison + Alma + Alyssa + Amanda + amber + Amelia + Amy + Ana + Andre + Andrea + angel + Angela + angelica + Angelina + Angie + Anita + Ann + Anna + Anne + Annette + Annie + Antoinette + Antonia + April + Ariane + Ariel + Arlene + Ashley + Audrey + Barbara + Beatrice + Becky + Belinda + Bernadette + Bernice + Bertha + Bessie + Beth + Bethany + Betsy + Betty + Beulah + Beverly + Billie + Blanca + Blanche + Bobbie + Bonnie + Brandi + Brandy + Brenda + Brianna + Bridget + Brittany + Brooke + Caitlin + Camille + Candace + Candice + Carla + Carmen + Carol + Carole + Caroline + Carolyn + Carrie + Casey + Cassandra + Catherine + Cathy + Cecelia + Cecilia + Celia + Charlene + Charlotte + Chelsea + Cheryl + Chloe + Christian + Christie + Christina + Christine + Christy + Cindy + Claire + Clara + Claudia + Colleen + Connie + Constance + Cora + Courtney + Cristina + Crystal + Cynthia + Daisy + Dana + Danielle + Darla + Darlene + Dawn + Deanna + Debbie + Deborah + Debra + Delia + Della + Delores + Denise + Desiree + Diana + Diane + Dianna + Dianne + Dion + Dixie + Dolores + Dominique + Donna + Dora + Doreen + Doris + Dorothy + Ebony + Edith + Edna + Eileen + Elaine + Eleanor + Elena + Elisa + Elizabeth + Ella + Ellen + Eloise + Elsa + Elsie + Elvira + Emily + Emma + Erica + Erika + Erin + Erma + Ernestine + Essie + Estelle + Esther + Ethel + Eula + Eunice + Eva + Evelyn + Faith + Fannie + Faye + Felicia + Felicity + Flora + Florence + Frances + Francis + Freda + Gabriel + Gabrielle + Gail + Gayle + Geneva + Genevieve + Georgia + Geraldine + Gertrude + Gina + Ginger + Gladys + Glenda + Gloria + Grace + Gretchen + Guadalupe + Gwen + Gwendolyn + Haley + Hannah + Harriet + Hattie + Hazel + Heather + Heidi + Helen + Henrietta + Hilda + Hillary + Holly + Hope + Ida + Inez + Irene + Iris + Irma + Isabel + Isabella + Jackie + Jacqueline + Jacquelyn + Jade + Jaime + Jamie + Jan + Jana + Jane + Janet + Janice + Janie + Janis + Jasmine + Jean + Jeanette + Jeanne + Jeannette + Jeannie + Jenna + Jennie + Jennifer + Jenny + Jessica + Jessie + Jill + Jo + Joan + Joann + Joanna + Joanne + Jodi + Jody + Johanna + Johnnie + Josefina + Josephine + Joy + Joyce + Juana + Juanita + Judith + Judy + Julia + Julie + June + Kaitlyn + Kara + Karen + Kari + Karla + Kate + Katelyn + Katherine + Kathleen + Kathryn + Kathy + Katie + Katrina + Kay + Kayla + Kelley + Kelli + Kellie + Kelly + Kelsey + Kendra + Kerry + Kim + Kimberly + Krista + Kristen + Kristi + Kristie + Kristin + Kristina + Kristine + Kristy + Krystal + Lana + Latoya + Laura + Lauren + Laurie + Laverne + Leah + Lee + Leigh + Lela + Lena + Leona + Leslie + Leticia + Lila + Lillian + Lillie + Linda + Lindsay + Lindsey + Lisa + Lois + Lola + Lora + Lorena + Lorene + Loretta + Lori + Lorraine + Louise + Lucia + Lucille + Lucy + Lula + Luz + Lydia + Lynda + Lynette + Lynn + Lynne + Mabel + Mable + Mackenzie + Madeline + Madison + Mae + Magdalena + Maggie + Mamie + Mandy + Marcella + Marcia + Margaret + Margarita + Marge + Margie + Marguerite + Maria + Mariah + Marian + Marianne + Marie + Marilyn + Marion + Marjorie + Marlene + Marsha + Marta + Martha + Mary + Maryann + Mattie + Maureen + Maxine + May + Megan + Meghan + Melanie + Melba + Melinda + Melissa + Melody + Mercedes + Meredith + Michele + Michelle + Mildred + Mindy + Minnie + Miranda + Miriam + Misty + Molly + Mona + Monica + Monique + Morgan + Muriel + Myra + Myrtle + Nadine + Nancy + Naomi + Natalie + Natasha + Nellie + Nettie + Nichole + Nicole + Nina + Nora + Norma + Olga + Olive + Olivia + Ollie + Opal + Ora + Paige + Pam + Pamela + Pat + Patricia + Patsy + Patti + Patty + Paula + Paulette + Pauline + Pearl + Peggy + Penny + Phyllis + Priscilla + Rachael + Rachel + Ramona + Raquel + Raven + Rebecca + Regina + Renee + Rhonda + Rita + Roberta + Robin + Robyn + Rochelle + Rosa + Rosalie + Rose + Rosemarie + Rosemary + Rosie + Roxanne + Ruby + Ruth + Sabrina + Sadie + Sally + Samantha + Sandra + Sandy + Sara + Sarah + Shannon + Shari + Sharon + Shawna + Sheila + Shelia + Shelley + Shelly + Sheri + Sherri + Sherry + Sheryl + Shirley + Silvia + Sonia + Sonja + Sonya + Sophia + Sophie + Stacey + Stacy + Stella + Stephanie + Sue + Susan + Susie + Suzanne + Sydney + Sylvia + Tabitha + Tamara + Tami + Tammy + Tanya + Tara + Tasha + Taylor + Teresa + Teri + Terri + Terry + Thelma + Theresa + Tiffany + Tina + Toni + Tonya + Tracey + Traci + Tracy + Tricia + Valerie + Vanessa + Velma + Vera + Verna + Veronica + Vicki + Vickie + Vicky + Victoria + Viola + Violet + Virginia + Vivian + Wanda + Wendy + Whitney + Willie + Wilma + Winifred + Yasmine + Yolanda + Yvette + Yvonne + Zoe + +pragma initial-rule [first-name-female] diff --git a/data/sample-grammars/long-data/first-name-male.gram b/data/sample-grammars/long-data/first-name-male.gram new file mode 100644 index 0000000..5642f9a --- /dev/null +++ b/data/sample-grammars/long-data/first-name-male.gram @@ -0,0 +1,626 @@ +[first-name-male] Aaron + Abel + Abraham + Adam + Adolph + Adrian + Al + Alan + Albert + Alberto + Alejandro + Alex + Alexander + Alfonso + Alfred + Alfredo + Allan + Allen + Alonzo + Alton + Alvin + Amos + Andre + Andreas + Andres + Andrew + Andy + Angel + Angelo + Angus + Anthony + Antoine + Anton + Antonio + Archie + Armando + Arnold + Art + Arthur + Arturo + Aubrey + Aubrie + Austin + Barry + Bart + Bayard + Ben + Benjamin + Bennie + Benny + Benoit + Bernard + Bernhard + Bert + Bill + Billy + Blake + Bob + Bobby + Boris + Boyd + Brad + Bradford + Bradley + Brandon + Brendan + Brent + Brett + Brian + Bruce + Bruno + Bryan + Bryant + Bryce + Byron + Caleb + Calvin + Cameron + Carl + Carlos + Carlton + Carroll + Cary + Casey + Cecil + Cecilie + Cedric + Cesar + Chad + Charles + Charlie + Chester + Chris + Christian + Christopher + Clarence + Clark + Claude + Clay + Clayton + Cliff + Clifford + Clifton + Clint + Clinton + Clyde + Cody + Cole + Colin + Connor + Conrad + Corey + Cornelius + Cory + Courtney + Craig + Crispin + Curtis + Dale + Dallas + Damon + Dan + Dana + Daniel + Danny + Darin + Darnell + Darrel + Darrell + Darren + Darrin + Darryl + Daryl + Dave + David + Dean + Delbert + Dennis + Derek + Derrick + Deven + Devin + Dewey + Dexter + Dick + Diego + Dieter + Dimitri + Dimitrius + Domingo + Dominic + Dominick + Dominique + Don + Donald + Donnie + Doug + Douglas + Doyle + Drazen + Drew + Duane + Dustin + Dwayne + Dwight + Dylan + Earl + Earnest + Ed + Eddie + Edgar + Edmond + Edmund + Eduardo + Edward + Edwin + Elbert + Elias + Elijah + Ellis + Elmer + Emanuel + Emilio + Emmett + Enrico + Enrique + Eric + Erick + Erik + Ernest + Ernesto + Ervin + Ethan + Eugene + Evan + Everett + Felipe + Felix + Fernando + Floyd + Forrest + Fox + Francis + Francisco + Frank + Frankie + Franklin + Franky + Fred + Freddie + Freddy + Frederic + Frederick + Fredrick + Fredrik + Gabe + Gabriel + Garrett + Garry + Garth + Gary + Gavin + Gene + Geoff + Geoffrey + George + Gerald + Gerard + Gerardo + Gilbert + Gilberto + Glen + Glenn + Gordon + Grady + Graham + Grant + Greg + Gregg + Gregor + Gregory + Guadalupe + Guillermo + Gunnar + Gustavo + Guy + Hans + Harold + Harry + Harvey + Hector + Henrik + Henry + Herald + Herb + Herbert + Herman + Homer + Horace + Howard + Hubert + Hugh + Hugo + Hunter + Iain + Ian + Ignacio + Igor + Ira + Irvin + Irving + Isaac + Ismael + Israel + Ivan + Jack + Jackie + Jacob + Jacques + Jaime + Jake + James + Jamie + Jan + Jared + Jarret + Jason + Javier + Jay + Jean + Jeff + Jeffery + Jeffrey + Jerald + Jeremiah + Jeremy + Jermaine + Jeroen + Jerome + Jerry + Jesse + Jessie + Jesus + Jim + Jimmie + Jimmy + Jody + Joe + Joel + Joey + Johan + John + Johnathan + Johnnie + Johnny + Jon + Jonathan + Jonathon + Jordan + Jorge + Jose + Joseph + Josh + Joshua + Juan + Julian + Julio + Julius + Justin + Karl + Karlo + Kasper + Keith + Kelly + Kelvin + Ken + Kenneth + Kenny + Kent + Kerry + Kevin + Kim + Kirk + Klaus + Kris + Kristian + Kristopher + Kurt + Kyle + Lamar + Lance + Larry + Lars + Lauren + Laurence + Laurie + Lawrence + Lee + Leland + Lenny + Leo + Leon + Leonard + Leonardo + Leroy + Leslie + Lester + Levi + Lewis + Lex + Liam + Lindsay + Linus + Lionel + Lloyd + Logan + Lonnie + Loren + Lorenzo + Louis + Lowell + Lucas + Luigi + Luis + Luke + Luther + Lyle + Lynn + Mack + Magnus + Malcolm + Manuel + Marc + Marcelo + Marco + Marcos + Marcus + Marek + Mario + Marion + Mark + Marlon + Marshall + Martin + Marty + Marvin + Mathew + Matt + Matthew + Matthias + Maurice + Max + May + Mel + Melvin + Merle + Michael + Micheal + Miguel + Mike + Miles + Milton + Mitch + Mitchell + Morris + Morten + Moses + Muhammed + Myron + Nathan + Nathaniel + Neal + Ned + Neil + Nelson + Neville + Nic + Nicholas + Nick + Nicola + Nicolas + Niels + Nigel + Nils + Noah + Noel + Norbert + Norm + Norman + Oliver + Omar + Orion + Orlando + Orville + Oscar + Otis + Owen + Pablo + Pat + Patrick + Paul + Paulo + Pedro + Percy + Perry + Pete + Peter + Phil + Philip + Philippe + Phillip + Pierre + Preston + Rafael + Ralph + Ramiro + Ramon + Randal + Randall + Randolph + Randy + Rasmus + Raul + Ray + Raymond + Reginald + Reinhard + Rene + Rex + Rhys + Ricardo + Richard + Rick + Rickey + Ricky + Rob + Robbie + Robert + Roberto + Robin + Rod + Roderick + Rodney + Rodolfo + Rodrigo + Roel + Roelof + Rogelio + Roger + Roland + Rolando + Rolf + Roman + Ron + Ronald + Ronnie + Roosevelt + Rory + Ross + Roy + Ruben + Rudolph + Rudy + Rufus + Russ + Russell + Ryan + Salvador + Salvatore + Sam + Sammy + Samuel + Sander + Santiago + Santos + Saul + Scott + Sean + Sergei + Sergio + Seth + Shane + Shannon + Shaun + Shawn + Sheldon + Sherman + Sid + Sidney + Simon + Skip + Slobodan + Sonny + Spencer + Stan + Stanley + Stefan + Stein + Stephan + Stephano + Stephen + Steve + Steven + Stewart + Stuart + Sulaiman + Sunny + Susie + Sven + Sylvester + Taylor + Ted + Terence + Terrance + Terrell + Terrence + Terry + Thad + Theodore + Thomas + Tim + Timmy + Timothy + Toby + Todd + Tom + Tomas + Tommie + Tommy + Tony + Tracy + Travis + Trevor + Trey + Tristan + Troy + Tyler + Tyrone + Vernon + Victor + Vince + Vincent + Virgil + Wade + Wallace + Walter + Warren + Wayne + Wendell + Wesley + Wilbert + Wilbur + Wilfred + Will + Willard + William + Willie + Willis + Wilson + Winston + Woodrow + Xavier + Yuri + Zachary + +pragma initial-rule [first-name-male] diff --git a/data/sample-grammars/long-data/geographic-thing.gram b/data/sample-grammars/long-data/geographic-thing.gram new file mode 100644 index 0000000..178bd7f --- /dev/null +++ b/data/sample-grammars/long-data/geographic-thing.gram @@ -0,0 +1,26 @@ +[geographic-thing] mountain + hill + lake + plains + river + valley + hollow + beach + bay + harbor + grove + bridge + station + glade + forest + gulch + swamp + bend + springs + creek + falls + ridge + pass + meadow + +pragma initial-rule [geographic-thing] diff --git a/data/sample-grammars/long-data/greek-letters.gram b/data/sample-grammars/long-data/greek-letters.gram new file mode 100644 index 0000000..5976bd1 --- /dev/null +++ b/data/sample-grammars/long-data/greek-letters.gram @@ -0,0 +1,26 @@ +[greek-letter] alpha + beta + gamma + delta + epsilon + zeta + eta + theta + iota + kappa + lambda + mu + nu + xi + omicron + pi + rho + sigma + tau + upsilon + phi + chi + psi + omega + +pragma initial-rule [greek-letter] diff --git a/data/sample-grammars/long-data/japanese-writing.gram b/data/sample-grammars/long-data/japanese-writing.gram new file mode 100644 index 0000000..f18c6bc --- /dev/null +++ b/data/sample-grammars/long-data/japanese-writing.gram @@ -0,0 +1,107 @@ +[japanese-syll] a + i + u + e + o + ka + ki + ku + ke + ko + sa + shi + su + se + so + ta + chi + tsu + te + to + na + ni + nu + ne + no + ha + hi + fu + he + ho + ma + mi + mu + me + mo + ya + yu + yo + ra + ri + ru + re + ro + wa + wi + we + wo + ga + gi + gu + ge + go + za + ji + zu + ze + zo + da + zu + de + do + ba + bi + bu + be + bo + pa + pi + pu + pe + po + +[japanese-yoon] kya + kyu + kyo + sha + shu + sho + cha + chu + cho + nya + nyu + nyo + hya + hyu + hyo + mya + myu + myo + rya + ryu + ryo + gya + gyu + gyo + ja + ju + jo + bya + byu + byo + pya + pyu + pyo + +pragma initial-rule [japanese-syll] diff --git a/data/sample-grammars/long-data/last-name.gram b/data/sample-grammars/long-data/last-name.gram new file mode 100644 index 0000000..b99a40c --- /dev/null +++ b/data/sample-grammars/long-data/last-name.gram @@ -0,0 +1,3379 @@ +[last-name] Abbey + Abbott + Abel + Abrams + Acar + Acosta + Acs + Adair + Adams + Adamson + Adkins + Adler + Adrian + Agius + Agnew + Aguilar + Akers + Albers + Alberts + Albrecht + Albright + Aldredge + Aldrich + Alexander + Allan + Allen + Alley + Allison + Althouse + Alvarado + Alvarez + Anderson + Andreasson + Andrews + Angelos + Anglin + Anstead + Anstrom + Anthony + Arak + Aral + Arbuckle + Archer + Armstrong + Arnett + Arnold + Arruda + Arthur + Ashbridge + Ashcroft + Asher + Ashley + Ashton + Assler + Atchley + Atkins + Atkinson + Atwood + Auger + Austin + Avila + Ayala + Ayers + Babcock + Bach + Backer + Bacon + Bailey + Baird + Baker + Baldwin + Ball + Ballard + Bane + Bang + Banke + Banks + Barber + Barbosa + Barger + Barker + Barnes + Barnett + Barr + Barrenechea + Barrett + Barrick + Barringer + Barron + Barrow + Barry + Barta + Barter + Barth + Bartle + Bartlett + Barton + Baruch + Bashford + Bass + Bassett + Bates + Bauer + Baughn + Bauman + Baumunk + Baur + Baxter + Bayley + Bazin + Bea + Beach + Beadles + Beam + Beaman + Bean + Beard + Beasley + Beasly + Beason + Beavers + Beck + Becker + Bee + Beeckmans + Beesley + Beggs + Behrens + Belcher + Bell + Beloof + Benanti + Benedict + Benge + Benham + Benner + Bennett + Bennitt + Benson + Bentley + Benton + Benware + Beresford + Bereznai + Berezniker + Berg + Bergen + Bergren + Berkbilger + Berkowitz + Bernard + Bernardez + Bernet + Berry + Berryman + Bertaina + Bertram + Berube + Besemer + Bessire + Best + Betta + Betts + Beumer + Beunder + Bever + Beverlin + Bewly + Beyer + Bialeschki + Bibles + Biehle + Biele + Bigelow + Bighi + Bigliardi + Bijlsma + Bikki + Billings + Binegar + Bingham + Bini + Binnenmarsch + Birch + Birdmore + Birtley + Bishop + Bisson + Black + Blackburn + Blackwell + Blair + Blake + Blanchard + Bland + Blankemeier + Blankenship + Blase + Blattner + Bledsoe + Blevins + Blewett + Blitch + Blocher + Block + Bloom + Blouard + Blyth + Bockius + Bodrov + Bogard + Bogenrieder + Boggs + Bolin + Bollinger + Bolmer + Bolyard + Boman + Bond + Bonds + Bone + Booker + Boon + Boone + Booth + Bopp + Border + Boren + Borstadt + Boshoff + Bosik + Bosler + Bossert + Bostic + Bostick + Boswell + Bosworth + Bottom + Botts + Boucher + Boulay + Bouldin + Boulet + Boulware + Bourgeois + Bowen + Bowers + Bowman + Boyd + Boyer + Boykin + Boylan + Boyle + Boyt + Bozzi + Braams + Bradbury + Bradford + Bradley + Bradshaw + Brady + Brainerd + Brajkine + Braley + Brammer + Branch + Brand + Brandau + Brandt + Brannenburg + Brannock + Brannon + Branson + Brants + Braswell + Braughton + Braun + Braungart + Bray + Brazie + Breaum + Breeuwer + Brehler + Breningstall + Brennan + Bressi + Bretanus + Brewer + Brewster + Bridges + Briggs + Brinkman + Brinson + Britt + Brittain + Brock + Brockman + Brockschmidt + Bronson + Brooks + Broome + Brosius + Brouillette + Brown + Browning + Brubacker + Brubaker + Bruce + Brueckner + Brueggemann + Bruehl + Bruggeman + Brumley + Brundage + Brundick + Brunn + Bruntz + Brust + Bryan + Bryant + Bryce + Bryers + Bryse + Buch + Buchanan + Buckley + Buckner + Bucsis + Budbill + Budd + Buechting + Buehler + Buehner + Buetner + Buettner + Buffington + Buford + Buhler + Buhs + Bulkeley + Bullis + Bullock + Bumstead + Bunch + Bunn + Bunner + Bunse + Burdon + Burger + Burgers + Burgess + Burke + Burlew + Burn + Burnell + Burnett + Burney + Burnham + Burns + Burress + Burris + Burroughs + Burrow + Burt + Burton + Busch + Buschmann + Busekrug + Bush + Bushyhead + Busker + Buso + Bustillogadea + Butcher + Butler + Bybee + Byfield + Byington + Byram + Byrd + Byrne + Caceres + Cadieux + Cadrin + Cain + Cakall + Calabrese + Caldwell + Cale + Calhoun + Callaham + Callahan + Calvert + Calvin + Camacho + Cameron + Camp + Campbell + Campos + Canada + Candido + Candy + Canfield + Cann + Cannan + Cannings + Cannon + Cantrell + Capet + Caplinger + Capps + Carey + Carleton + Carls + Carlson + Carlsson + Carlton + Carmichael + Carnahan + Carnel + Carney + Carpenter + Carr + Carrillo + Carrington + Carroll + Carrère + Carse + Carson + Carter + Carver + Carwile + Casey + Caskinette + Casper + Cassady + Cassell + Castillo + Castillon + Castles + Castro + Catanese + Catton + Caulley + Cavanaugh + Cernelli + Cernos + Cervera + Chamberlin + Chambers + Champion + Chan + Chancellor + Chandler + Chaney + Chang + Channel + Chapey + Chapin + Chaplauke + Chapman + Chappel + Charles + Charlton + Chas + Chase + Chastain + Chasteen + Chatham + Chauvin + Chavez + Checksfield + Chen + Cheney + Chenoweth + Cherrie + Cherry + Chesshyre + Childers + Childs + Chinglee + Chipman + Chisholm + Chislett + Chism + Chitwood + Chizhov + Chmelyk + Christensen + Christian + Christie + Christou + Chuchalin + Chupek + Church + Ciaffa + Ciani + Cipolla + Clapp + Clark + Clarke + Clarkson + Clay + Clayton + Cleijne + Clemens + Clement + Clements + Clentine + Clermont + Cleveland + Clift + Cline + Cloutier + Cnossen + Coale + Coates + Cobb + Cochon + Cochran + Cocke + Cockrell + Coddington + Cody + Coe + Cofer + Coffman + Cohen + Coker + Cole + Colegrove + Coleman + Collier + Collins + Colon + Colvin + Combs + Compton + Comstock + Conay + Conda + Conely + Conger + Conklin + Conlee + Conley + Connally + Conner + Connor + Conrad + Conrades + Constant + Conti + Contreras + Converse + Conway + Coody + Cook + Cooke + Cooley + Coon + Coonley + Coons + Coontz + Cooper + Copeland + Corbet + Corbin + Cordery + Cordes + Cordon + Cordry + Cormier + Cornish + Cornwell + Correll + Corson + Cortez + Corwin + Cosgrave + Costello + Couch + Couillard + Coulombe + Coulter + Counsell + Courteau + Couture + Covington + Cowan + Cowell + Cowgill + Cowper + Cowser + Cox + Coy + Crabtree + Crafton + Craig + Cramer + Crane + Cranston + Crawford + Creecy + Crenshaw + Crichton + Cripps + Critcher + Croan + Croft + Croitor + Cronin + Crosher + Cross + Crossley + Crouch + Crow + Crowder + Crowell + Croy + Crump + Cruse + Crutchfield + Cruz + Cuba + Cue + Culberson + Culp + Cummings + Cummins + Cunningham + Curby + Curdts + Curran + Curren + Current + Currie + Curry + Curtis + Cutting + Cvahte + Cyr + Daab + Daber + Dafler + Dagan + Daggett + Dalbey + Dale + Dalton + Daly + Damani + Damron + Daniel + Daniels + Danneman + Danner + Dar + Darlington + Darr + Daughtery + Davenport + Davey + David + Davidson + Davies + Davis + Dawson + Day + Dean + Dearing + Dearman + Debenthal + Decker + Dedrick + Degg + Degonia + Deibert + Delaney + Delen + Deleon + Delgado + Dell + Dellenbach + Dement + Demont + Denbo + Denell + Dennis + Denson + Denton + Deringer + Derksen + Derrick + Deschenes + Desportes + Desquiens + Desroches + Detwiler + Deuschle + Deutschmann + Diamond + Diaz + Dick + Dickerson + Dickinson + Dickson + Diefendorf + Diehl + Diehn + Dierig + Dierker + Dierkes + Dierks + Dietrich + Dillingham + Dimmerling + Dippel + Dirksen + Dittmar + Dixon + Dmitriy + Dobing + Dobson + Dockery + Dodd + Dodson + Doering + Doherty + Doidge + Dollar + Domansky + Domark + Domingo + Domingos + Dominguez + Donnelly + Donoghue + Doren + Dorschel + Dorsey + Dossett + Dostal + Doud + Dougherty + Doughty + Douglas + Doutille + Doutrich + Dowdy + Down + Downey + Downing + Doyle + Drake + Drane + Drath + Dray + Dreher + Dressel + Drexel + Driscoll + Droberg + Drosbach + Drouin + Drum + Drummonds + Dryer + Drysdale + Duplessis + Duane + Duarte + Dubbs + Dube + Dubois + Dubowski + Dubuque + Duckworth + Dudley + Due + Dueno + Dueuer + Duke + Dulany + Dumond + Duncan + Dunlap + Dunn + Dunnam + Dunning + Dupont + Duquet + Duran + Durham + Durkin + Dustin + Duval + Dwyer + Dyer + Dyett + Dykes + Dyson + Eaby + Ealem + East + Eaton + Ebert + Ecker + Eckert + Eckles + Eckman + Eddy + Eden + Edgar + Edge + Edgerton + Edinger + Edmunds + Edsall + Edwards + Eerdmans + Egan + Egberinl + Eglajs + Ehlers + Ehnert + Eiple + Eiten + Eke + Eklund + Elders + Eldridge + Elgood + Ellard + Elliot + Elliott + Ellis + Ellison + Ellmaker + Ellzey + Elm + Elmore + Elsner + Elson + Emberton + Emerson + Emory + Emrich + Endicott + Engel + England + Englert + English + Ennor + Enterich + Entwisle + Epshtein + Erasmus + Erickson + Eriksen + Eriksson + Erker + Erkstam + Ernsberger + Eshelman + Eshleman + Espey + Espinosa + Espinoza + Estes + Estrada + Etchberger + Etienne + Etting + Eubanks + Eudy + Eure + Evans + Evatt + Everett + Ewing + Factor + Faes + Fair + Fairbanks + Fairley + Fairman + Fantus + Farmen + Farmer + Farrales + Farrell + Farris + Farrow + Farrugia + Farwell + Fassnacht + Faulkner + Faust + Fears + Feldman + Fell + Fender + Fenn + Fennessy + Fenstermacher + Fenton + Fenwick + Ferguson + Fernandez + Ferreccio + Fetterly + Fewell + Feyl + Fiat + Fidler + Field + Fields + Figueroa + Filippoff + Fillman + Finken + Finley + Firth + Fischer + Fisher + Fister + Fitzgerald + Fitzmaurice + Fitzwater + Flack + Flamm + Flanders + Fleming + Fletcher + Flickinger + Flores + Flowers + Floyd + Flugge + Fluharty + Fly + Flying + Flynn + Focke + Foh + Foley + Follett + Fontaine + Foote + Forbes + Ford + Fordyce + Foreman + Forget + Fornwalt + Forticq + Fortin + Foster + Fothergill + Fouda + Fournier + Foushee + Foutain + Fowler + Fox + Fradet + Frady + France + Franchi + Francis + Frank + Franklin + Franky + Frantz + Frazier + Frederic + Frederitzi + Freedman + Freeman + Fremsdorf + French + Frese + Frew + Frey + Freytes + Frias + Frick + Friddle + Friedlander + Friesen + Fritz + Frost + Fry + Frye + Fugitt + Fuhrman + Full + Fuller + Fullhart + Funda + Fung + Funk + Furnace + Gacusana + Gadd + Gagnon + Gainer + Gaines + Galasso + Galbraith + Gallagher + Gallaher + Gallegos + Galloway + Galluser + Gamache + Gambon + Gammon + Gan + Gangloff + Gann + Gant + Garber + Garcia + Gardiner + Gardner + Garg + Garman + Garmin + Garner + Garrett + Garrison + Gartner + Garza + Gates + Gatheridge + Gatlin + Gatling + Gattain + Gattling + Gaudreau + Gaudry + Gausepont + Gautier + Gearhart + Gebel + Gechter + Gedeon + Geders + Gee + Geelan + Geertsma + Geffe + Geigel + Geiman + Gemert + Gemp + Gentry + George + Gerahty + Gerard + Gerke + Gerlt + Giasson + Gibble + Gibbs + Gibler + Gibson + Giddings + Giesinger + Giffen + Gifford + Giguere + Gilbert + Gilbertson + Giles + Gill + Gilleland + Gillespie + Gillette + Gillock + Gilmore + Gilmour + Ginger + Gingras + Giorgio + Girard + Girgenson + Glascock + Glaser + Glass + Glasscock + Gleason + Gleba + Gleeson + Glenn + Glover + Gockley + Godown + Goeller + Goff + Goforth + Goh + Gold + Goldberg + Golden + Goldman + Goldsmith + Gomez + Gonschorek + Gonzales + Gonzalez + Goodline + Goodman + Goodson + Goodwin + Gorden + Gordon + Gorecki + Gorham + Gose + Goshen + Goss + Gossage + Gosselin + Goutarias + Gower + Goza + Graham + Gralicke + Grant + Grappone + Grass + Graves + Gray + Graziani + Greathouse + Green + Greene + Greenhow + Greening + Greenlee + Greeno + Greer + Gregg + Gregory + Grenier + Gretton + Grffiths + Griffin + Griffith + Griffiths + Grimes + Grimley + Grimm + Grimmett + Grindel + Griswold + Groetling + Groh + Gromit + Gross + Grossi + Grosvenor + Ground + Grover + Groves + Grube + Guerra + Guerrero + Guest + Guhse + Guinn + Guisfredi + Gulager + Gullie + Gunia + Gunter + Gunther + Gupta + Gurdian + Gurlin + Gushee + Gustafsson + Gustins + Guthrie + Guthy + Gutierrez + Guyon + Guzman + Gyula + Gürbüz + Haakonvoldum + Haas + Haase + Hacher + Haché + Hackman + Haddix + Haeffner + Haefner + Hafer + Haffner + Hafner + Hagan + Hagerty + Hagström + Haguenauer + Hahn + Hain + Haines + Hair + Hairston + Hale + Haley + Hall + Hallam + Haller + Hallet + Halloway + Hallum + Halm + Halmshaw + Halpert + Halsell + Halverson + Hamby + Hamel + Hamilton + Hamm + Hammett + Hammond + Hampel + Hample + Hampton + Hancock + Haneklau + Hanel + Hankins + Hann + Hannan + Hansch + Hansen + Hanson + Harbert + Hardaway + Harden + Harder + Hardin + Harding + Hardt + Hardy + Harel + Harger + Harlan + Harle + Harmon + Harned + Harnwell + Harper + Harrell + Harrington + Harris + Harrison + Harrity + Harrod + Harry + Hart + Harting + Hartkopp + Hartman + Hartweck + Hartzler + Harvatin + Harvey + Hasenau + Hasse + Hastings + Hatch + Hatcher + Hatchett + Hatfield + Hathaway + Hauck + Haughton + Hauser + Haverstick + Hawes + Hawkins + Hawley + Hayes + Haynes + Haynie + Hays + Hazel + Hazeltine + Healey + Heard + Heath + Heathcock + Heather + Hebert + Hecke + Hedden + Heege + Hegel + Heide + Heikurinen + Heil + Hein + Heinen + Hejna + Held + Helen + Helphrey + Hembruock + Henderson + Hendrick + Hendricks + Hendrix + Hennion + Hennler + Henrico + Henry + Hensgens + Hensler + Hensley + Henson + Heppe + Herbein + Herbert + Herman + Hermann + Hernandez + Herr + Herrell + Herren + Herrera + Herriage + Herrick + Herring + Herweck + Hess + Hesselt + Hester + Hetz + Hetzel + Heuckelbach + Hewitt + Heyer + Heyward + Hezel + Hickey + Hickman + Hicks + Higbee + Higdon + Higginbotham + Higgins + Highley + Hight + Hill + Hillenbrand + Hils + Hilton + Hinch + Hinckly + Hines + Hinkle + Hinsey + Hinsley + Hinton + Hippenmeyer + Hissong + Hixon + Hixson + Hoag + Hobbs + Hoch + Hodge + Hodges + Hoebing + Hoeflinger + Hoehns + Hoell + Hoemann + Hof + Hofer + Hoffman + Hoflack + Hogan + Hohensee + Hohmann + Hoke + Holburt + Holcomb + Holder + Holgate + Holifield + Hollabaugh + Holland + Holleman + Holley + Hollingdale + Holloway + Hollowell + Holmes + Holstein + Holstine + Holt + Holtheuer + Holzum + Homan + Homanberg + Hong + Hood + Hook + Hooper + Hoopes + Hoosang + Hoover + Hopkins + Hopper + Horachek + Horan + Hord + Horesteille + Horn + Horney + Horning + Hornung + Horton + Hosenfeld + Hoskins + Hostetter + Hostler + Hotsinpiller + Houde + Houghton + Houlne + Hounsell + House + Houser + Houston + Hovin + Hovlandsdal + Howard + Howe + Howell + Howes + Howland + Howlett + Hoyt + Hsieh + Huard + Hubbard + Hubert + Huckaby + Huckins + Huddleston + Hudgens + Hudson + Huey + Huff + Huffman + Hughes + Hulet + Hull + Humble + Humphrey + Hundley + Hunecke + Hunt + Hunter + Huntley + Hurrell + Hurshman + Hurst + Hursán + Hurt + Huss + Hustead + Hutchings + Hutchins + Hutchinson + Hyatt + Hyland + Hylton + Håkansson + Ibach + Icaza + Iceberg + Idsinga + Iiskola + Iler + Iliev + Imfield + Imig + Imperiale + Ingalls + Ingle + Ingram + Ireland + Irgens + Irons + Irous + Irwan + Isburg + Ison + Ivanytsch + Ivey + Ivins + Ivy + Ivzenkovic + Izenstein + Izycki + Jackson + Jacobs + Jacobsen + Jacques + Jager + James + Janes + Jansen + Janssen + Janssens + Jaynes + Jefferson + Jeffries + Jehoel + Jelicks + Jenings + Jenkins + Jenkinson + Jennings + Jensen + Jerome + Jesse + Jessett + Jewett + Jezusco + Jiechao + Jiglund + Jimenez + Jockish + Joenwai + John + Johns + Johnson + Johnston + Jolicoeur + Jolly + Jones + Jonke + Jordan + Joseph + Joyce + Juarez + Jubb + Jump + Jung + Junnila + Järvi + Kabler + Kahle + Kaletta + Kalniòo + Kane + Kantola + Kantor + Kapke + Kappelman + Kar + Karchev + Karesh + Karleskint + Karlsson + Kartaslammi + Kaspar + Kattleman + Katz + Kaub + Kauffman + Kay + Kazin + Keating + Keaton + Keck + Keddem + Keefe + Keeler + Keeley + Keen + Keene + Keith + Kell + Keller + Kelley + Kelly + Kemp + Kendall + Kennedy + Kennel + Kennerly + Kent + Kepel + Kerdijk + Kerr + Kesl + Ketter + Kettle + Kettner + Key + Keys + Keyser + Kibbey + Kickert + Kidwai + Kiefer + Kiers + Kight + Kile + Kilgour + Kilheffer + Kilheffner + Killingsworth + Killion + Kim + Kimball + Kimble + Kinder + Kindle + Kines + King + Kinney + Kinser + Kinsey + Kinslow + Kirby + Kirk + Kirkpatrick + Kirwan + Kitchin + Kittrell + Kivimäki + Klass + Klein + Kleine + Klimpl + Klopp + Knapp + Knight + Knippenberg + Knoblauch + Knotts + Knous + Knowles + Knowlton + Knox + Koch + Kochevar + Kodelja + Koebel + Koeller + Koendering + Koerner + Koetsier + Kohne + Kohr + Kokwai + Kolar + Kolb + Koller + Konarski + Koon + Kooyman + Kopff + Kopp + Korber + Korp + Kosloff + Kotter + Kourik + Kraemer + Kramer + Kras + Kratke + Kraus + Krause + Krebs + Krecker + Kreider + Kretzin + Krick + Krishnan + Kromer + Kronk + Krumman + Kruse + Kuchnoel + Kuhn + Kuhnell + Kummer + Kunze + Kuresko + Kurtz + Kushwaha + Kusmin + Kuttner + Labarre + Lapoint + Lataille + Labay + Labreque + Lacey + Lacy + Lafferty + Laidlow + Lail + Lair + Lajoie + Lamar + Lamb + Lambert + Lamerand + Lancaster + Landis + Landrum + Landry + Landy + Lane + Lang + Langer + Langlois + Langston + Laning + Lankford + Lankshear + Lanmaster + Lanner + Lantrip + Lapouchnian + Lara + Larcom + Lard + Larkins + Larouche + Larsen + Larson + Larsén + Last + Lathrop + Latimbre + Lau + Laughlin + Lauzon + Lavoy + Lawhead + Lawler + Lawrence + Lawson + Lazar + Leach + Lear + Leblanc + Ledenmark + Lee + Leekeirl + Leech + Leeper + Lefler + Leger + Lehman + Lehtovaara + Leib + Leitao + Leitch + Lemke + Lemons + Lengyel + Lenhart + Lennox + Lentini + Leon + Leonard + Leong + Lester + Letarte + Letendre + Lett + Levesque + Lewallen + Lewis + Libis + Licata + Lifson + Light + Lightstone + Lilgert + Lima + Limetsch + Linares + Lindquist + Lindsay + Lindsey + Lindwedel + Linek + Lines + Linge + Linker + Linkogel + Linson + Linus + Lipe + Lipps + List + Little + Litzsinger + Liu + Livingood + Livingston + Lizot + Llanos + Lloyd + Lochridge + Lockhart + Loenders + Logan + Lograsso + Lohr + Lombard + Lombardi + London + Long + Longenecker + Longnecker + Loomis + Looney + Loose + Lopez + Lord + Lorenzo + Loring + Lorton + Lough + Loughrie + Louhr + Lound + Love + Lovejoy + Lovell + Lowe + Lowell + Lowery + Lownes + Loye + Lucas + Luce + Lucius + Lucko + Ludwick + Ludwig + Luissalcines + Lulic + Luna + Lund + Lundberg + Lura + Luthe + Luther + Lutz + Lux + Luzadder + Lyle + Lynch + Lynn + Lyon + Lyons + Mabe + Mabson + Maccuuladh + Macdonald + Macgillivray + Mackellar + Mackenzie + Macpherson + Macedo + Macey + Machin + Mack + Mackey + Macomber + Madore + Maender + Magalhaes + Maheu + Maho + Mahoney + Majakari + Major + Malcom + Maldonado + Malicoat + Malin + Mallet + Mallett + Mallory + Malone + Malos + Malzone + Mamone + Manaev + Mandel + Mandula + Mann + Manning + Mansfield + Manson + Mantione + Manuel + Marabotto + Marbach + Marbourgh + March + Marchant + Marie + Markovic + Marks + Marler + Marple + Marquez + Marquis + Marr + Marriott + Marsden + Marsh + Marshall + Martin + Martinez + Marting + Marttila + Mary + Mason + Massey + Mast + Masters + Mastrantuono + Matheson + Mathews + Mathias + Mathis + Matthews + Matthias + Mattingly + Mattli + Mauger + Maulana + Maule + Maus + Mawdsley + Maxey + Maxson + Maxwell + May + Mayandon + Mayberry + Mayes + Mayhew + Maynard + Mayo + Mayow + Mays + Mazza + Mcalexander + Mcalister + Mcallister + Mcaree + Mcarthur + Mcbride + Mccafferty + Mccall + Mccallister + Mccarra + Mccarthy + Mccauley + Mcclain + Mcclellan + Mccleskey + Mccloud + Mcclung + Mcclure + Mccollum + Mcconnell + Mccormick + Mccowan + Mccoy + Mccracken + Mccullough + Mccumiskey + Mccurdy + Mcdaniel + Mcdaniels + Mcdermott + Mcdonal + Mcdonald + Mcdonnell + Mcdonough + Mcdormand + Mcdowell + Mceachern + Mcelroy + Mcelveen + Mcfarland + Mcgee + Mcgraw + Mcgrew + Mcguire + Mcilveen + Mcintosh + Mcintyre + Mckean + Mckee + Mckeever + Mckenstrie + Mckenzie + Mckinney + Mckinstrie + Mclafferty + Mclaggan + Mclain + Mclaughlin + Mclean + Mcleod + Mcmahon + Mcmanus + Mcmclain + Mcmillan + Mcmurtrie + Mcnair + Mcnamara + Mcpherson + Mcquarrie + Mcqueen + Mcrae + Mcspadden + Mcswain + Mcvicker + Mcwilliams + Meaden + Means + Meddemmen + Medina + Medler + Medley + Medlin + Meech + Meek + Meeks + Megginson + Meier + Meiners + Meinhart + Mejia + Melber + Mellinger + Melton + Melvin + Mendenhall + Mendez + Mendoza + Mercado + Mercer + Mercier + Mercille + Meredith + Merkel + Merkle + Mermann + Merriman + Merritt + Mesman + Messier + Metz + Metzger + Meyer + Meyers + Michalowski + Middleton + Miethe + Mikhailovsky + Mikilas + Miklos + Milam + Miles + Miller + Millett + Mills + Milne + Milner + Milton + Minchin + Miner + Minnich + Minshall + Minster + Minville + Miranda + Mironin + Misik + Miskerik + Mistry + Mitchelhill + Mitchell + Mitchelmore + Miville + Moale + Moats + Mock + Moehlenhoff + Moehlenkamp + Moeller + Moenkhoff + Mohler + Mohow + Molina + Moller + Monfort + Monroe + Monsees + Monsona + Montagna + Montague + Montes + Montgomery + Montoya + Moody + Moon + Mooney + Moore + Moose + Morales + Moran + Morehead + Moreno + Morgan + Morin + Morowitz + Morphett + Morrice + Morris + Morrison + Morrow + Morse + Mortensen + Morton + Moschner + Moseley + Moses + Mosley + Moss + Mosser + Mouser + Moushey + Moxley + Moyer + Moyle + Moyles + Moynahan + Mraz + Mros + Mudd + Mueller + Mukhtar + Mulholland + Muller + Mullinix + Mullins + Munday + Mundy + Munoz + Munro + Munson + Muntz + Murdock + Murphy + Murr + Murray + Muse + Musgrove + Musil + Mussbach + Musselman + Muszer + Mutel + Myers + Naes + Nagashima + Nagle + Nahm + Nalazek + Nanney + Narayan + Narciso + Nash + Nason + Naumann + Navarro + Nave + Neal + Neale + Nebdal + Neece + Neel + Neff + Neilson + Nellen + Nelson + Nemmo + Nester + Nestor + Newlon + Newman + Newsham + Newton + Nguyen + Nichols + Nicholson + Nicodei + Nicoll + Niemeyer + Nies + Nixon + Noble + Nolan + Nord + Norman + Norris + Norton + Norwell + Norwood + Noud + Novaes + Novak + Nuchter + Nunes + Nunez + Nuttall + Nuzum + Nyulassy + O'brien + O'connell + O'conner + O'grady + O'hara + O'leary + O'malley + O'meara + O'neil + Ober + Oberbeck + Oberholser + Oberholtzer + Oberholzer + Oberosler + Obrecht + Obrien + Oconnor + Octeau + Oehrke + Ogden + Oge + Oger + Ogier + Ogle + Oh + Ohlinger + Ohlsen + Olesen + Oleynik + Olive + Oliveira + Oliver + Ollive + Olsen + Olson + Omond + Oneal + Opeloyer + Opeloyeru + Ora + Orlando + Orosz + Orr + Ortega + Ortiz + Osage + Osborn + Osborne + Osgood + Ossenfort + Osula + Ott + Otterstad + Ottman + Otto + Ouellet + Ouellette + Overholser + Overstreet + Owen + Owens + Owsley + Pace + Pacheco + Pack + Padilla + Paganto + Page + Painter + Pala + Palmer + Paluzga + Panda + Paolo + Paquette + Paquin + Pardue + Pardy + Park + Parke + Parker + Parkhill + Parks + Parr + Parrinello + Parrish + Parsons + Paschke + Pastori + Pastrick + Patel + Patrick + Patterson + Patton + Paul + Paulet + Pauley + Paulsen + Pauly + Paumelle + Pavlin + Pavlock + Paxson + Payne + Peak + Pearah + Pearce + Pearson + Peck + Peddlesden + Peden + Pedersen + Pedigo + Pelky + Pelles + Pena + Pence + Pendleton + Pengry + Penka + Penley + Penn + Pennell + Pennington + Penrose + Pentelbury + Peoples + Pepper + Perera + Perez + Perkins + Perotti + Perren + Perrin + Perriseau + Perry + Person + Persson + Peterman + Peters + Petersen + Peterson + Petri + Petrig + Petrounakou + Pettigrew + Pettit + Pettus + Peyrot + Peyton + Pfaff + Pfitzenger + Phelps + Phillips + Phipps + Piastra + Pickard + Pickett + Pickle + Pierce + Pilger + Pilkington + Pilkinton + Pinckley + Pinkel + Pinzer + Pirnar + Pirtle + Pit + Pittman + Pitts + Placzkavich + Plante + Player + Pleis + Pletcher + Ploesser + Ploog + Plumb + Plummer + Pocock + Pogrelis + Politte + Pollock + Poole + Poos + Pope + Poppe + Portell + Porter + Porto + Post + Potten + Potter + Potts + Poulet + Pound + Powell + Powers + Prather + Pratt + Prebit + Preisendorf + Prence + Presley + Preston + Prevost + Price + Priester + Prince + Proctor + Proffitt + Prospero + Proudfoot + Pruitt + Przybyl + Puckett + Pugh + Pulliam + Pullins + Pullman + Purdy + Purvis + Putnam + Putney + Putt + Quattlebaum + Queen + Quell + Quella + Quelle + Quick + Quigley + Quince + Quinn + Quintelier + Quinton + Quisenberry + Raburn + Racine + Rader + Radley + Raffo + Ragsdale + Rahm + Rahn + Raine + Raines + Rains + Rainwater + Rakar + Ralston + Ramirez + Ramos + Ramsberg + Ramsey + Randall + Randolph + Raney + Rangan + Rangefelt + Rash + Rasmussen + Rason + Ratcliff + Rate + Rathfon + Rathman + Ratje + Ratner + Raupp + Ravenscraft + Rawls + Ray + Raygor + Raymond + Rea + Reagan + Rebman + Redd + Reece + Reed + Reese + Reeser + Reeves + Regan + Regester + Regot + Reich + Reicter + Reid + Reilly + Reinholz + Reinke + Reiser + Reiter + Reitz + Rekart + Rekutin + Renfro + Renfrow + Reno + Rentchler + Resch + Retherford + Rexdale + Reyes + Reynold + Reynolds + Rhatigan + Rhoades + Rhodelander + Rhodes + Ribeiro + Riccio + Rice + Rich + Richard + Richards + Richardson + Richmond + Richter + Richwine + Ricketts + Riddick + Rider + Ridgeway + Ridout + Riebold + Riese + Rigdon + Riggs + Righi + Riley + Rinback + Rines + Ringen + Ringler + Rinner + Rios + Ritchey + Ritchie + Riton + Rittenhouse + Ritter + Rivas + Rivera + Rivers + Robb + Robbins + Roberson + Roberts + Robertson + Robins + Robinson + Robison + Robles + Robson + Rodgers + Rodriguez + Rodriquez + Roe + Roebrant + Roebuck + Roesch + Roess + Roessler + Rogai + Roger + Rogers + Rojas + Rolen + Rolfe + Rollings + Rollins + Roman + Romand + Romero + Romig + Romkes + Rondel + Root + Roper + Ropp + Roques + Rosa + Rosati + Rose + Rosemann + Rosenthal + Rosier + Ross + Roth + Rothgeb + Rott + Rottler + Roudebush + Roundtree + Rountree + Rowden + Rowe + Rowland + Rowlandson + Roy + Rudolph + Ruess + Ruggles + Ruhl + Ruiz + Rullan + Rumbaugh + Rundle + Runfola + Rupiper + Ruppel + Rush + Russell + Russo + Ruth + Rutherfoord + Rutzel + Ryan + Rynders + Rypstra + Röther + Sackwell + Saffel + Saffle + Saffold + Safuan + Sahlstrom + Sajid + Salazar + Salinas + Salles + Salmon + Salsbury + Samson + Sanchez + Sander + Sanders + Sandoval + Sanford + Sanfrod + Saniter + Santiago + Santoni + Santos + Sapp + Sappington + Sarel + Sargent + Sas + Satterfield + Sauder + Saunders + Savage + Savic + Saville + Savoie + Sawyer + Saye + Sayre + Scales + Schaeffer + Schaffnitt + Schamberger + Schanze + Schasteen + Schaumberger + Schenk + Schilders + Schipper + Schirmer + Schlegel + Schlitzer + Schlobohm + Schmeis + Schmid + Schmidt + Schmitt + Schmitz + Schmuck + Schneider + Schoenberger + Schofield + Scholfield + Schommer + Schooley + Schoonover + Schopp + Schowengerdt + Schrack + Schrader + Schreiber + Schreiner + Schrick + Schrier + Schrimpf + Schrimpshire + Schrimscher + Schrimsher + Schrimshire + Schroeder + Schrupple + Schubert + Schuchman + Schuit + Schulte + Schultz + Schumacher + Schumaker + Schuman + Schumann + Schutte + Schwab + Schwartz + Schwartzkopf + Schweer + Schweikert + Schweiss + Schwenderman + Sciurba + Scofield + Scott + Scrimpshire + Scrimsher + Scrimshire + Scroggins + Seal + Seaman + Sears + Sebren + Sebring + Sedgwick + Seely + Seguinverner + Seipel + Seith + Selby + Self + Selivanov + Sellen + Sellers + Senff + Sensenig + Serrano + Setiadji + Settergren + Sever + Seward + Sexton + Shackles + Shaffer + Shailes + Shands + Shank + Shannon + Shapely + Shapiro + Sharp + Sharples + Shasserre + Shaw + Sheahan + Sheets + Shelton + Shenefelt + Shepard + Shepherd + Sheppard + Shepperd + Sherman + Sherrill + Sherry + Sherwood + Shewmaker + Shieh + Shields + Shilnikov + Shim + Shimek + Shingleton + Shipley + Shipman + Shirk + Shober + Shoemaker + Short + Shorter + Shriver + Shull + Shurley + Sibley + Sickles + Siebers + Siechrist + Siegrist + Siemann + Sigman + Silberman + Silberstein + Silva + Silverman + Silvernagel + Simenic + Simko + Simmons + Simms + Simoes + Simon + Simons + Simpson + Sims + Singletary + Singleton + Sirigos + Sisk + Siu + Sizer + Sjostrom + Skaggard + Skaggs + Skiles + Skillman + Skinner + Slagle + Slark + Slater + Slaughter + Slierendrecht + Sloan + Sloper + Slouber + Small + Smead + Smedley + Smeets + Smith + Smits + Smoak + Smolar + Snow + Snowden + Snyder + Solimano + Solis + Solomon + Sommerkamp + Somphan + Sorenson + Soto + Soucy + Soulman + Sousa + Southerland + Southern + Sowers + Spaeti + Spahn + Spalding + Spangler + Sparks + Speaker + Spears + Specht + Spector + Speidel + Spencer + Spirek + Spires + Spoel + Spoon + Spoth + Srock + Staebler + Stafford + Stahl + Staley + Stam + Stambaugh + Stamm + Standiford + Stanley + Stansberry + Staples + Starensier + Stark + Starnes + Stasulat + Stauffer + Stedman + Steele + Steely + Stefanelli + Stein + Steinemann + Stendahl + Stephens + Stephenson + Sterling + Stevens + Stevenson + Steward + Stewart + Stice + Still + Stine + Stinton + Stirk + Stock + Stockton + Stokes + Stoll + Stoltz + Stone + Stones + Storey + Storm + Stout + Stoyell + Strader + Straher + Strang + Strauss + Streets + Streing + Strickland + Stroetinga + Strohm + Strong + Strozewski + Strum + Stuart + Sturdivant + Sturgess + Sturgis + Stutzman + Suarez + Sublett + Suddath + Suggs + Sullins + Sullivan + Summerfield + Summers + Summey + Summy + Sunderman + Sunderwirth + Sundgren + Supawanich + Sutcliffe + Sutherland + Sutton + Svedin + Svendsen + Svensson + Swaim + Swaine + Swally + Swanson + Swartz + Swasey + Sweeney + Sweet + Swenson + Swift + Swisher + Sypher + Tackes + Taliaferro + Talipsky + Tamietti + Tan + Tang + Tank + Tanner + Tapp + Tappert + Tardif + Tate + Tauschek + Taylor + Teem + Teeter + Teets + Temple + Templeton + Templin + Tenny + Teppen + Terrill + Terry + Tesche + Tesi + Tessier + Tetrick + Tharp + Thatcher + Thibault + Thibaut + Thibodeau + Thierer + Thies + Thill + Thomas + Thomerson + Thompson + Thomson + Thorn + Thornhill + Thornton + Thorup + Thrower + Thursfield + Thys + Tidwell + Tierney + Tilley + Tillman + Timberlake + Timchenko + Timm + Timmons + Tinker + Todd + Tol + Tolbert + Tomlinson + Toomer + Toothaker + Topping + Torrence + Torres + Touchstone + Toupin + Townend + Townsend + Tracy + Tran + Traudt + Traugott + Trautmann + Traxler + Trego + Trent + Trethewey + Trevino + Triggs + Triplett + Trone + Trout + Troutman + Troutt + Trovato + Troxler + Truesdale + Truetzel + Trujillo + Trump + Tschikowsky + Tshudy + Tuck + Tucker + Tukker + Turberville + Turner + Turrentine + Turén + Tuttle + Tweed + Twiford + Tyler + Tyson + Ulich + Uliel + Underwood + Upton + Utt + Valverde + Valdez + Valentine + Vance + Vanik + Vann + Varga + Vargas + Varner + Vartiainen + Varvel + Vasquez + Vaughan + Vaughn + Vaught + Vawter + Vazquez + Veenvliet + Vega + Vehlewald + Velasquez + Velez + Velonis + Vendt + Venters + Ventres + Ventress + Vergason + Vernon + Vigar + Vigle + Villalobos + Villarreal + Vincent + Vinner + Virga + Virkelyst + Vitali + Vitro + Viverett + Vogel + Vogelgesang + Voldi + Von pilkington + Voss + Vuille + Vunovich + Wack + Wade + Wager + Waggoner + Wagner + Wagstaff + Wakefield + Walker + Wall + Wallace + Waller + Wallis + Walls + Walmsley + Walsh + Walter + Walters + Waltman + Walton + Wang + Ward + Warden + Ware + Wark + Warner + Warren + Warwick + Washington + Wass + Waterham + Waterkotte + Waterman + Waters + Watkins + Watson + Watts + Weaver + Webb + Webber + Weber + Weble + Webster + Weekley + Weeks + Wegener + Weikert + Weiler + Weimer + Weiner + Weismuller + Weiss + Weitzel + Welby + Welch + Wellons + Wells + Welsh + Wenger + Wentland + Werhner + Werner + Wesley + Wesolowski + Wessel + Wessels + West + Weston + Westphal + Westwood + Wetzel + Whaples + Wheat + Wheeler + Whelan + Wherley + Whitaker + White + Whitehead + Whitford + Whiting + Whitman + Whitney + Whitsett + Whitsitt + Whitson + Whitwam + Whitworth + Wickenhauser + Wickliffe + Wicks + Wideman + Wiegand + Wiegratz + Wiggins + Wiklund + Wilcox + Wilcoxon + Wilder + Wildermuth + Wiley + Wilkerson + Wilkin + Wilkins + Wilkinson + Will + Willcut + Willey + William + Williams + Williamson + Willis + Willmes + Willoughby + Willowspond + Wills + Wilmoth + Wilson + Winfrey + Wingard + Wingate + Wingenfeld + Wink + Winn + Winslow + Winston + Winter + Wintermute + Winters + Wintle + Winton + Wischmeyer + Wisdom + Wise + Wiseman + Wissman + Withers + Witmer + Witt + Witte + Woelk + Wofford + Wognum + Wolf + Wolfe + Wolkey + Wolters + Wolz + Womack + Wong + Wood + Woodard + Woodbury + Wooding + Woodring + Woods + Woodson + Woodward + Woolery + Woolf + Wooten + Wordsworth + Worman + Worrall + Worrell + Worrilow + Wosnuk + Wrage + Wren + Wright + Wustenhagen + Wyatt + Wyttenbach + Yahn + Yancey + Yap + Yarnall + Yates + Yeager + Yeomans + Yerger + Yoch + Yogho + York + Young + Younglove + Yount + Yoxall + Zaegel + Zaitsev + Zarnits + Zbaren + Zeller + Zeni + Zimmerman + Zinselmeier + Zondler + Zorzano + Zumwalt + Zwicker + +pragma initial-rule [last-name] diff --git a/data/sample-grammars/long-data/letters.gram b/data/sample-grammars/long-data/letters.gram new file mode 100644 index 0000000..f561b99 --- /dev/null +++ b/data/sample-grammars/long-data/letters.gram @@ -0,0 +1,134 @@ +[character] 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z + . + - + +pragma export-rule [character] + +[consonant] b + c + d + f + g + h + j + k + l + m + n + p + q + r + s + t + v + w + x + y + z + +pragma export-rule [consonant] + +[last-syllable] on + ly + er + son + row + way + s + ton + dale + +pragma export-rule [last-syllable] + +[letter] a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z + +pragma export-rule [letter] + +[middle-initial] a + b + c + d + e + f + g + h + j + k + l + m + n + o + p + r + s + t + +pragma export-rule [middle-initial] + +[vowel] a + e + i + o + u + +pragma export-rule [vowel] diff --git a/data/sample-grammars/long-data/nation.gram b/data/sample-grammars/long-data/nation.gram new file mode 100644 index 0000000..d15788d --- /dev/null +++ b/data/sample-grammars/long-data/nation.gram @@ -0,0 +1,220 @@ +[nation] afghanistan + albania + algeria + american samoa + andorra + angola + anguilla + antarctica + antigua + argentina + armenia + aruba + australia + austria + azerbaijan + bahamas + bahrain + bangladesh + barbados + belarus + belgium + belize + benin + bermuda + bhutan + bolivia + bosnia and herzegovina + botswana + brazil + brunei + bulgaria + burkina faso + burma + burundi + cambodia + cameroon + canada + cape verde + central african republic + chad + chile + china + colombia + comoros + congo + cook islands + costa rica + cote d'ivoire + croatia + cuba + cyprus + czech republic + denmark + djibouti + dominica + dominican republic + ecuador + egypt + el salvador + equatorial guinea + eritrea + estonia + ethiopia + falkland islands + fiji + finland + france + french guiana + french polynesia + gabon + the gambia + georgia + germany + ghana + gibraltar + greece + greenland + grenada + guadeloupe + guam + guatemala + guinea + guinea-bissau + guyana + haiti + the holy see + honduras + hong kong + hungary + iceland + india + indonesia + iran + iraq + ireland + israel + italy + jamaica + japan + jordan + kazakhstan + kenya + kiribati + kuwait + kyrgyzstan + laos + latvia + lebanon + lesotho + liberia + libya + liechtenstein + lithuania + luxembourg + macau + macedonia + madagascar + malawi + malaysia + maldives + mali + malta + marshall islands + martinique + mauritania + mauritius + mayotte + mexico + federated states of micronesia + moldova + monaco + mongolia + montserrat + morocco + mozambique + namibia + nauru + nepal + netherlands + netherlands antilles + new caledonia + new zealand + nicaragua + niger + nigeria + north korea + northern mariana islands + norway + oman + pakistan + palau + panama + papua new guinea + paraguay + peru + philippines + pitcairn islands + poland + portugal + puerto rico + qatar + reunion + romania + russia + rwanda + saint kitts and nevis + saint lucia + saint pierre and miquelon + saint vincent and the grenadines + samoa + san marino + sao tome and principe + saudi arabia + senegal + seychelles + sierra leone + singapore + slovakia + slovenia + solomon islands + somalia + south africa + south korea + spain + sri lanka + sudan + suriname + swaziland + sweden + switzerland + syria + taiwan + tajikistan + tanzania + thailand + togo + tonga + trinidad and tobago + tunisia + turkey + turkmenistan + turks and caicos islands + tuvalu + uganda + ukraine + united arab emirates + united kingdom + united states + uruguay + uzbekistan + vanuatu + venezuela + vietnam + western sahara + yemen + zaire + zambia + zimbabwe + +pragma initial-rule [nation] diff --git a/data/sample-grammars/long-data/numbers.gram b/data/sample-grammars/long-data/numbers.gram new file mode 100644 index 0000000..8525102 --- /dev/null +++ b/data/sample-grammars/long-data/numbers.gram @@ -0,0 +1,99 @@ +[binary-digit] 0 + 1 + +pragma export-rule [binary-digit] + +[digit-noone] 0 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + +pragma export-rule [digit-noone] + +[digit-nonzero] 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + +pragma export-rule [digit-nonzero] + +[digit-twoup] 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + +pragma export-rule [digit-twoup] + +[digit] 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + +pragma export-rule [digit] + +[hex-digit] 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + a + b + c + d + e + f + +pragma export-rule [hex-digit] + +[number-word] one + two + three + four + five + six + seven + eight + nine + ten + +pragma export-rule [number-word] + +[ordinal] first + second + third + fourth + fifth + sixth + seventh + eighth + ninth + tenth + eleventh + twelfth + +pragma export-rule [ordinal] diff --git a/data/sample-grammars/long-data/planet.gram b/data/sample-grammars/long-data/planet.gram new file mode 100644 index 0000000..1da1678 --- /dev/null +++ b/data/sample-grammars/long-data/planet.gram @@ -0,0 +1,10 @@ +[planet] → Mercury + Venus + Mars + Jupiter + Saturn + Uranus + Neptune + Pluto + +pragma initial-rule [planet] diff --git a/data/sample-grammars/long-data/real-city.gram b/data/sample-grammars/long-data/real-city.gram new file mode 100644 index 0000000..7ca57b9 --- /dev/null +++ b/data/sample-grammars/long-data/real-city.gram @@ -0,0 +1,78 @@ +[real-city] → birmingham + anchorage + mesa + phoenix + tucson + anaheim + fresno + long beach + los angeles + oakland + riverside + sacramento + san diego + san francisco + san jose + santa ana + stockton + aurora + colorado springs + denver + washington + jacksonville + miami + st. petersburg + tampa + atlanta + honolulu + chicago + indianapolis + wichita + lexington + louisville + baton rouge + new orleans + baltimore + boston + detroit + minneapolis + st. paul + kansas city + st. louis + omaha + las vegas + jersey city + newark + albuquerque + buffalo + new york + rochester + charlotte + raleigh + akron + cincinnati + cleveland + columbus + toledo + oklahoma city + tulsa + portland + philadelphia + pittsburgh + memphis + nashville + arlington + austin + corpus christi + dallas + el paso + fort worth + houston + san antonio + norfolk + richmond + virginia beach + seattle + milwaukee + +pragma initial-rule [real-city] diff --git a/data/sample-grammars/long-data/real-company.gram b/data/sample-grammars/long-data/real-company.gram new file mode 100644 index 0000000..f81ec14 --- /dev/null +++ b/data/sample-grammars/long-data/real-company.gram @@ -0,0 +1,209 @@ +[real-company] 3com + aflac + at&t + ace hardware + aetna + aid association for lutherans + albertson's + allstate + alltel + amerenue + america online + american express + american general + ames department stores + anheuser-busch + apple computer + archer daniels midland + autozone + avis rent a car + avon products + b.f. goodrich + bank of america corp. + barnes & noble + bell atlantic + bellsouth + berkshire hathaway + best buy + black & decker + boeing + bristol-myers squibb + burlington northern santa fe + cbs + cvs + cablevision systems + campbell soup + caterpillar + cendant + charles schwab + chase manhattan corp. + chevron + cigna + cinergy + circuit city group + cisco systems + citigroup + clorox + coastal + coca-cola + colgate-palmolive + columbia/hca healthcare + comcast + comerica + compusa + compaq computer + computer associates intl. + conagra + conoco + conseco + continental airlines + corning + costco wholesale + dana + dell computer + delta air lines + dillard's + dole food + dollar general + dow chemical + eastman kodak + eli lilly + este lauder + exxon mobil + fannie mae + farmland industries + fedex + firstar corp. + fleetwood enterprises + ford motor + gte + gannett + gap + gateway + general electric + general mills + general motors + gillette + goldman sachs group + goodyear tire & rubber + h.j. heinz + hartford financial services + hasbro + healthsouth + hershey foods + hewlett-packard + home depot + honeywell international + hormel foods + itt industries + ikon office solutions + ingersoll-rand + intel + ibm + j.c. penney + j.p. morgan & co. + john hancock financial services + johnson & johnson + kellogg + kimberly-clark + kmart + knight-ridder + kroger + lexmark international + lockheed martin + lowe's + lucent technologies + mci worldcom + marriott international + mattel + maytag + mcdonald's + mcgraw-hill + merck + merrill lynch + metropolitan life insurance + micron technology + microsoft + monsanto + morgan stanley dean witter + motorola + mutual of omaha insurance + ncr + nabisco group holdings + new york life insurance + new york times + newell rubbermaid + nextel communications + nike + nordstrom + northwest airlines + office depot + officemax + oracle + owens corning + paine webber group + pepsico + pfizer + pharmacia & upjohn + philip morris + procter & gamble + providian financial + prudential ins. co. of america + quaker oats + qualcomm + quantum + qwest communications + r. j. reynolds tobacco + ralston purina + raytheon + rockwell international + sbc communications + safeway + saks + sara lee + seagate technology + sears roebuck + servicemaster + sherwin-williams + shopko stores + sodexho marriott services + southwest airlines + sprint + staples + state farm insurance cos. + sun microsystems + suntrust banks + sunoco + supervalu + tandy + target + tenet healthcare + texaco + texas instruments + time warner + times mirror + toys `r' us + trans world airlines + tyson foods + u.s. bancorp + us airways group + us west + ultramar diamond shamrock + union carbide + union pacific + unisys + united parcel service + unitedhealth group + universal + viacom + wal-mart stores + walgreen + walt disney + warner-lambert + wells fargo + weyerhaeuser + whirlpool + winn-dixie stores + xerox + +pragma initial-rule [real-company] diff --git a/data/sample-grammars/long-data/relative.gram b/data/sample-grammars/long-data/relative.gram new file mode 100644 index 0000000..a18e015 --- /dev/null +++ b/data/sample-grammars/long-data/relative.gram @@ -0,0 +1,12 @@ +[relative] → father + mother + uncle + aunt + grandmother + grandfather + sister + brother + cousin + mother-in-law + +pragma initial-rule [relative] diff --git a/data/sample-grammars/long-data/roman-numeral.gram b/data/sample-grammars/long-data/roman-numeral.gram new file mode 100644 index 0000000..886d44c --- /dev/null +++ b/data/sample-grammars/long-data/roman-numeral.gram @@ -0,0 +1,29 @@ +[roman-numeral-string] [roman-numeral-string+1] + +[roman-numeral-string+1] [roman-numeral] + [roman-numeral] + [roman-numeral] [roman-numeral-string] + +pragma initial-rule [roman-numeral-string] + +[ordinal-roman] [act+ordroman] + +pragma export-rule [ordinal-roman] + +[act+ordroman] [roman-numeral-string] th + +[roman-numeral] → I + II + III + IV + V + VI + VII + VIII + IX + X + D + C + M + +pragma export-rule [roman-numeral] diff --git a/data/sample-grammars/long-data/syllables.gram b/data/sample-grammars/long-data/syllables.gram new file mode 100644 index 0000000..925c2aa --- /dev/null +++ b/data/sample-grammars/long-data/syllables.gram @@ -0,0 +1,598 @@ +[consonant-group] b + br + c + cl + ch + cr + d + dr + f + fl + fr + g + gl + gr + h + l + m + n + p + pl + ph + pr + s + st + sl + str + sm + sw + sp + sh + sc + sch + sn + t + th + tr + v + w + wr + x + y + z + +pragma export-rule [consonant-group] + +[syllable] ab + ack + ag + ad + al + an + ar + at + ash + as + augh + ay + au + ba + bab + bat + bal + ban + bar + bau + be + bee + bel + ben + ber + bes + bet + bil + bin + big + bir + bis + bla + black + blan + blat + bled + blo + bly + bock + bod + bol + bon + boo + bop + bor + bos + bot + bow + boy + bra + brad + bram + bran + bras + brau + bren + brew + bri + bro + brow + bru + brun + bry + buc + bud + bul + bur + burn + bus + bush + by + ca + cal + can + cant + car + carl + cap + cat + cer + cha + chan + chap + chas + che + chi + chis + chu + cla + clar + clay + cli + cler + coal + coat + cob + cod + col + com + con + coo + cop + cor + cow + cra + craw + cro + cub + cum + cun + cur + dab + dag + dal + dan + dar + day + dear + der + del + dem + den + der + des + dick + dir + dix + dil + dim + din + dis + dock + dod + dol + dom + don + dor + dos + doy + dow + dra + dre + dru + dry + dub + dud + duck + dul + dum + dun + dur + dwel + dye + eat + eck + ed + el + ell + elm + eng + ep + erk + er + esp + esh + fair + fan + far + fal + fam + fen + fel + fer + fid + fir + fin + flack + fla + flet + fly + fol + for + foo + fox + fran + free + fred + fre + fri + fry + fro + ful + fun + gal + gan + gar + gain + gat + gee + geer + gib + gil + gill + glas + gol + gold + good + gor + gos + gra + gree + green + gri + grif + gris + gro + gun + gush + gut + hack + hag + hal + hall + ham + hamp + han + har + hart + hat + haw + hear + heb + hel + hen + her + hes + hig + hick + hil + hip + hod + hol + hoo + hop + hor + how + hub + hud + hun + hur + ice + ick + ight + ill + imp + ir + is + it + jack + jam + jeff + jel + jen + jew + jer + jock + jon + jol + jum + kar + kan + kal + kay + keat + kee + kel + ken + ket + key + kil + kick + kin + kir + knight + kol + kor + kun + lab + lam + lan + lar + law + lee + len + let + lim + lime + lin + line + lip + lit + lock + lor + lom + loo + low + luck + lud + lun + mac + mab + mal + man + mar + mat + may + mea + med + mee + mel + meg + mer + mes + met + mid + mil + mis + mol + mon + mom + moo + mor + mot + mud + mum + mun + mur + mut + myer + nal + nan + nam + nag + nay + new + nel + nes + nick + nor + nov + ob + oct + og + ol + or + os + ot + ought + ow + pack + pal + par + pas + pat + pam + pan + pay + pea + pear + pel + pen + pep + per + pet + phe + phyl + phi + pick + pin + pit + pla + ple + plo + plor + pli + plu + pol + poo + pot + por + pow + pre + pro + pra + pru + put + pul + que + qui + quin + ra + rab + rad + ram + rat + ray + red + ree + ren + rick + rice + rid + ril + rin + rit + rob + roe + rom + ron + roo + ro + rot + ros + rud + rul + rut + sack + sal + san + sam + sap + sat + scha + schi + scho + schu + scri + sea + seb + sen + sel + sha + she + sher + shi + sho + sil + shu + sim + sla + sle + slo + sli + slu + sno + smee + smit + snow + sol + sout + sor + spa + spe + spi + spoo + spo + sta + stan + star + ster + stee + stin + sto + stre + stur + sun + sup + sul + sut + swa + swe + tan + tap + tar + tee + ter + tem + ten + tes + thor + ton + til + tim + too + tre + trip + tro + tut + tur + ul + un + ur + van + val + var + vee + ver + vin + vel + vir + wad + wal + war + wat + web + wel + wes + whit + wil + will + win + wit + woo + wood + wool + yan + yar + zar + zin + +pragma export-rule [syllable] + +[vowel-group] a + ai + au + ar + e + ee + eu + er + i + ir + io + o + or + ou + oa + oo + u + ur + +pragma export-rule [vowel-group] diff --git a/data/sample-grammars/long-data/town-name.gram b/data/sample-grammars/long-data/town-name.gram new file mode 100644 index 0000000..e176c7d --- /dev/null +++ b/data/sample-grammars/long-data/town-name.gram @@ -0,0 +1,143 @@ +[town-name] → sullivan + jakin + geneva + coleharbor + cadiz + dawson + turon + salem + pax + dakota + moorefield + zenda + mettawa + orchard + busby + cloudcroft + perla + burlington + morrison + blackburn + jerico + skykomish + dupree + dawson + bowers + star + dorrance + roberts + carbon + hopedale + croghan + elgin + holland + berkley + sherrill + varna + owen + oxford + drake + notus + hobgood + thacker + springfield + fraser + avon + audubon + waterloo + windsor + atoka + cherry + hudson + kechi + pickstown + elizabeth + holt + stapleton + kell + gardena + osceola + moscow + morrison + mustang + maxwell + francis + eureka + darlington + ely + bancroft + hanover + milano + cabery + byars + gully + sherwood + reklaw + watkins + heartwell + dawson + vermont + goldville + paxson + potwin + sherman + glenbeulah + sunset + clearwater + solen + altamont + dyer + murray + rathbun + huntleigh + poulan + burlington + jackson + verndale + cleveland + josephine + leland + carrollton + vance + sumner + tira + mead + gumbranch + glenwood + harrison + hannibal + carthage + callao + bussey + coaldale + chugwater + andale + adell + farber + carlton + prue + tenney + walcott + udall + brighton + minburn + swan + frazer + menlo + bassett + massena + trommald + waynesfield + lynd + mendon + hammond + simsboro + thornton + crary + reynolds + turton + perry + penasco + loami + +pragma initial-rule [town-name] diff --git a/data/sample-grammars/long-data/tree.gram b/data/sample-grammars/long-data/tree.gram new file mode 100644 index 0000000..6fd0f0e --- /dev/null +++ b/data/sample-grammars/long-data/tree.gram @@ -0,0 +1,19 @@ +[tree] → pine + elm + maple + oak + walnut + ash + sycamore + gum + hickory + cedar + willow + cherry + spruce + chestnut + birch + dogwood + poplar + +pragma initial-rule [tree] diff --git a/data/sample-grammars/martial-arts.gram b/data/sample-grammars/martial-arts.gram new file mode 100755 index 0000000..2f9f557 --- /dev/null +++ b/data/sample-grammars/martial-arts.gram @@ -0,0 +1,39 @@ +[martial-arts-name] → [art-1] [art-2] + [art-1] [art-3] + [art-2] [art-3] + [art-1] [art-2] [art-3] + +pragma initial-rule [martial-arts-name] + +[art-1] → running + hungry + angry + naked + drunken + fortunate + lazy + swift + powerful + enlightened + +[art-2] → ox + tiger + dragon + crane + monkey + turtle + manticore + serpent + hummingbird + demon + +[art-3] → fist + stance + spinning kick + attack + technique + style + dance + movement + touch + fu diff --git a/data/sample-grammars/mary-sue.gram b/data/sample-grammars/mary-sue.gram new file mode 100755 index 0000000..cb39264 --- /dev/null +++ b/data/sample-grammars/mary-sue.gram @@ -0,0 +1,495 @@ +[mary-sue] she appears to be a normal [normal-desc] . [mary-sue2] + she appears to be a normal [normal-desc] [opt-dress] [mary-sue2] + +[mary-sue2] She is [desc] and she will fight her enemies with her power to [power-desc] [mary-sue3] + +[mary-sue3] . Her friends and enemies call her [name] [mary-sue4] + +[mary-sue4] . Her constant companion is a [comp] . + +pragma initial-rule [mary-sue] + +[normal-desc] schoolgirl + soldier + pirate + nun + nurse + teacher + teenager + martial artist + scientist + singer + artist + student + model + lawyer + journalist + mechanic + raver + woman + girl + cheerleader + sumo wrestler + cook + marine biologist + single mother + +[opt-dress] [except-dress] + [half-dress] + [except-dress] [half-dress] + +[except-dress] except she dresses like a [exdress-1] [exdress-2] + except she dresses like a [exdress-1] + except she dresses like a [exdress-2] + +[exdress-1] gothic lolita + bloody nurse + vampire + raver + gangsta + ninja + princess + pirate + mad scientist + gestapo officer + elf + sorceress + witch + commando soldier + cat-girl + fox-girl + druidess + schoolgirl + j-pop star + skateboarder + skinhead + punk rock + pole dancing + biker + innuit + +[exdress-2] gangsta + raver + princess + gothic lolita + pirate + sorceress + witch + druidess + vampire + cat-girl + mad scientist + skateboarder + bloody nurse + fox-girl + j-pop star + schoolgirl + commando soldier + ninja + gestapo officer + elf + construction worker + shaman + monk + dominatrix + businesswoman + +[half-dress] but this is just to take away attention from the fact that she is a half [hdress] + +[hdress] Vampire. + Unicorn. + Dragon. + Elf. + Orc. + Xenomorph. + Batgirl. + Japanese. + Werewolf. + Android. + Ghost. + Fox-girl. + Slime-girl. + Pixie. + Angel. + Demon. + Fire-elemental. + Stone-elemental. + Dwarf. + Zergling. + Illithid. + Lizard-woman. + Giant. + Zombie. + Na’vi. + +[desc] [desc-req] + [desc-req] [desc-opt] + +[desc-req] a megalomaniac + a secret super-soldier + an interdimensional traveler + a space traveler + a scientific experiment gone wrong + the last of her kind + chosen by destiny + a rumored demon-goddess + a rumored demi-goddess + a misunderstood genius + created to be the next step in mankind’s evolution + unknowingly the queen of her kind + an amnesiac + a secret agent + the leader of a ninja clan + wanted in another galaxy + a fortune teller + the daughter of the president + a living time-bomb + a holographic projection + a chaos cultist + one of a hundred nearly identical clones + a mysterious orphan + the living key to open up hell + a goddess cast down to earth to become mortal + +[desc-opt] who is the last of her kind + born from a scientific experiment gone wrong + who reincarnates in a new body every 666 years + with a mysterious past + from another dimension + worshipped by a small cult + raised by wild animals + from another planet + working for the church + destined to save the world + falsely accused of murdering her father + created by Nazi scientists by world war II + devoted to the gods of chaos + who is part of a secret organization + megalomaniac + with no memory of her childhood + created to be the next step in mankind’s evolution + foretold in ancient prophesies + who is also rumored to be a demo-goddess + who has lived for over 1000 years + in search of true love + and her blood is the cure for cancer + in search of her kidnapped sister + cursed by god + traveling through time + +[power-desc] [power-1] + [power-1] and [power-1] + +[power-1] [power-p1] [power-p2] + +[power-p1] summon + transform others into + incinerate + talk to + absorb the power of + shape-shift into + destroy + corrupt + seduce + befriend + heal + construct + banish + disintegrate + devour + control + frighten + ride + freeze + shrink + become invisible to + command + follow the scent of + magically imprison + +[power-p2] demons + gods + blood + angels + robots + dinosaurs + ghosts + wild animals + xenomorphs + mechas + vampires + werewolves + unicorns + adamantium + weapons + slime + elementals + retards + pedophiles + clones of herself + computers + centaurs + dragons + regular humans + plants + +[name] [name1] + [name1] [name2] + +[name1] star + angel + demon + sparkle + magic + mecha + power + peace + soul + blood + awesome + raven + unicorn + light + dark + summer + dragon + fire + night + day + shadow + thunder + mystery + love + cancer + +[name2] hair + eyes + face + claw + fur + fang + flower + lover + beast + girl + woman + princess + murderer + bringer + mistress + caller + singer + creator + lips + tits + thighs + hammer + dream + ender + stealer + +[comp] [comp-name] + +pragma suffix-with [comp] [comp-also] +pragma suffix-with [comp] [comp-weapon] + +[comp-also] who is also [compal-desc] + +[comp-weapon] . Her favored weapon is a(n) [comp-weapon1] + +[comp-name] [comp-name1] + [comp-prefix] [comp-name1] + +[comp-prefix] [comp-prefix1] + [comp-prefix2] + [comp-prefix1] [comp-prefix2] + [comp-prefix2] [comp-prefix1] + +[comp-name1] dragon + mecha + vampire + doll + white wolf + fox + zombie + space-marine + werewolf + robot + cat + dog + spaceship + faerie + vietnam veteran + unicorn + demon + angel + xenomorph + super saiyan + miniature elder god + fertility goddess + neck bearded man + wizard + giant + +[comp-prefix1] psychic + mexican + over-analytical + enslaved + mysterious + catatonic + angsty + depressed + spirit + friendly + young + ancient + flying + living + talking + intelligent + hyperactive + befriended + magical + sparkling + brain-washed + special needs + huge + murderous + amorous + +[comp-prefix2] young + talking + sparkling + living + intelligent + spirit + friendly + brain-washed + befriended + angsty + special needs + magical + psychic + enslaved + murderous + over-analytical + flying + catatonic + amorous + mysterious + ancient + invisible + mexican + huge + depressed + +[compal-desc] her lover + secretly her nemesis + her legal guardian + a projection of her evil self + secretly in love with her + her means of transport + her guardian angel + her best friend forever + destined to die by her hand + the reason she lives + herself from the future + her mentor + part of her soul + one of her failed experiments + a figment of her imagination + her father + her superior officer + her stalker + her mother + both her mother and father + soulmate + personal trainer + economic consultant + the phylactery of her soul + her bondage slave + +[comp-weapon1] [compweap-prefix] [compweap-type] + +[compweap-type] chainsaw + spear + katana + magnum + throwing star + dagger + mallet + machine gun + minion + axe + club + razor + whip + guitar-axe + knuckle iron + sword + staff + bow + javelin + charm + poleaxe + sniper rifle + flamethrower + rapier + scissors + +[compweap-prefix] [compweap-1] + [compweap-2] + [compweap-1] [compweap-2] + [compweap-2] [compweap-1] + +[compweap-1] poisoned + blessed + holy + legendary + burning + glowing + golden + silver + steam-powered + demonic + conscious + magical + huge + two-handed + dragonbone + adamantium + bio-mechanical + ancient + acidic + self-replicating + dark steel + freezing + spirit + shining + unbreakable + +[compweap-2] glowing + magical + legendary + acidic + silver + huge + demonic + blessed + bio-mechanical + poisoned + dragonbone + spirit + cursed + self-replicating + burning + darksteel + shining + conscious + unbreakable + freezing + steam-powered + ancient + holy + adamantium + two-handed diff --git a/data/sample-grammars/media.gram b/data/sample-grammars/media.gram new file mode 100644 index 0000000..f3a1c98 --- /dev/null +++ b/data/sample-grammars/media.gram @@ -0,0 +1,164 @@ +[media-company] [television-station] + [radio-station] + [newspaper] + +pragma initial-rule [media-company] + +[television-station] [chan+name] on channel [2..45] + [chan+name] on channel [2..12] + +[chan+name] k [chan-name2] + w [chan-name2] + +[chan-name2] [letter] [letter] [letter] -tv + +[radio-station] [radio+name] on frequency [radio+chan] + +[radio+name] k [radio+name2] + w [radio+name2] + +[radio+name2] [letter] [letter] [letter] [chan-type] + +[chan-type] -fm {chantype=fm} + -am {chantype=am} + +[radio+chan] 9 [radio-9chan] + [$chantype-1chan] + +[radio-9chan] [digit] . [digit] + +[fm-1chan] 1 [digit] [digit] . [digit] + +[am-1chan] 10 [digit] [digit] + +[newspaper] the [newspaper-pair1] - [newspaper-pair2] + the [newspaper-pair1] - [newspaper-pair2] - [newspaper-pair2] + the daily [newspaper-pair1] [newspaper-pair2] + the [newspaper-pair1] [newspaper-pair2] + [city] [newspaper-pair1] - [newspaper-pair2] + [city] [newspaper-pair1] [newspaper-pair2] + [city] [newspaper-pair2] + [city] [newspaper-pair1] + [real-city] [newspaper-pair1] - [newspaper-pair2] + [town-name] [newspaper-pair2] + the [cardinal] [us-stateadj] + [us-stateadj] [newspaper-pair1] - [newspaper-pair2] + [cardinal] [us-state] [newspaper-pair1] [newspaper-pair2] + +[newspaper-pair1] southern + northern + eastern + western + democratic + republic + liberty + freedom + sun + patriot + river + mountain + plains + american + news + post + morning + evening + star + daily + new + old + responsible + ethical + pulp + events + banner + standard + world + register + +[newspaper-pair2] daily + weekly + evening + republic + american + democrat + republican + leader + ledger + journal + bulletin + advertiser + dispatch + intelligencier + inquirer + post + times + review + star + justice + record + press + tribune + gazette + chronicle + herald + bugle + arrow + statesman + monitor + globe + planet + register + +pragma export-rule [newspaper-pair2] + +[cardinal] [act-cardinal] + [act-cardinal] + [act-cardinal] by [act-cardinal] + [2+cardinal] + +[act-cardinal] north + west + east + south + northeast + northwest + southeast + southwest + +[2+cardinal] [act-cardinal] - [act-cardinal] + +pragma export-rule [cardinal] + +[real-newspaper] new york times + la times + chicago tribune + usa today + st. louis post-dispatch + washington post + houston chronicle + kansas city star + denver post + seattle times + +[tech-publication] wired news + infoworld + computerworld + pc week + windows magazine + salon.com + abcnews.com + the register + +[biz-publication] forbes + industry standard + business week + wall street journal + f@stcompany + motley fool + the economist + fortune + +pragma export-rule [television-station] +pragma export-rule [radio-station] +pragma export-rule [newspaper] diff --git a/data/sample-grammars/mission.gram b/data/sample-grammars/mission.gram new file mode 100644 index 0000000..e474fcd --- /dev/null +++ b/data/sample-grammars/mission.gram @@ -0,0 +1,463 @@ +[mission-statement] [opening] [work-phrase] [verb-part] [noun-part] + [opening] [work-phrase2] [verb-part2] [noun-part] + [opening] [verb-part] [noun-part] + [opening] [work-phrase] [verb-part] [noun-part] and [verb-part] [noun-part] + [opening] [work-phrase2] [verb-part2] [noun-part] and [verb-part2] [noun-part] + [opening] [verb-part] [noun-part] and [noun-part] + [opening] [work-phrase] [verb-part] [noun-part] [connector] [goal] + [opening] [work-phrase2] [verb-part2] [noun-part] [connector] [goal] + [opening] [verb-part] [noun-part] [connector] [goal] + [opening] [work-phrase] [verb-part] [noun-part] [connector] [goal] and [goal] + [opening] [work-phrase2] [verb-part2] [noun-part] [connector] [goal] and [goal] + [opening] [verb-part] [noun-part] [connector] [goal] and [goal] + [opening] [work-phrase] [verb-part] [noun-part] and [verb-part] [noun-part] [connector] [goal] + [opening] [work-phrase2] [verb-part2] [noun-part] and [verb-part2] [noun-part] [connector] [goal] + [opening] [verb-part] [noun-part] and [noun-part] [connector] [goal] + [opening] [verb-part] [noun-part] , [noun-part] and [noun-part] [connector] [goal] + [opening] [work-phrase] [verb-part] [noun-part] [connector] [verb-part] [noun-part] [connector] [goal] + [opening] [work-phrase2] [verb-part2] [noun-part] [connector] [verb-part] [noun-part] [connector] [goal] + [opening] [verb-part] [noun-part] [connector] [verb-part] [noun-part] [connector] [goal] + +pragma initial-rule [mission-statement] + +[verb-part] [verb-how] [verb] + [verb] + +[verb-part2] [verb-how] [verb-gerund] + [verb-gerund] + +[noun-part] our [adjective] [noun] + our [noun] + our [noun+noun-prefix] + [adjective] [noun+noun-prefix] + [adjective] [noun] + [noun] + +[noun+noun-prefix] [noun-prefix] [noun] + +[opening] it's our [duty] to + it is our [duty] to + it is our [mission] to + it's our [mission] to + our [mission] is to + our [duty] is + we are committed to + we have committed to + we + we resolve to + +[duty] duty + responsibility + obligation + +[mission] mission + task + goal + job + business + function + +[verb] aggregate + deliver + deploy + embrace + empower + enable + engage + engineer + enhance + envision + extend + facilitate + generate + harness + implement + innovate + integrate + leverage + maximize + optimize + reinvent + revolutionize + simplify + spearhead + strategize + streamline + syndicate + synergize + synthesize + transform + unleash + utilize + visualize + +[verb-gerund] aggregating + delivering + deploying + embracing + empowering + enabling + engaging + engineering + enhancing + envisioning + extending + facilitating + generating + harnessing + implementing + innovating + integrating + leveraging + maximizing + optimizing + reinventing + revolutionizing + simplifying + spearheading + strategizing + streamlining + syndicating + synergizing + synthesizing + transforming + unleashing + utilizing + visualizing + +[verb-how] dramatically + practically + conveniently + efficiently + productively + rapidly + enthusiastically + completely + competently + assertively + quickly + intelligently + endlessly + tirelessly + effectively + skillfully + proficiently + professionally + swiftly + energetically + vigorously + zealously + briskly + speedily + shrewdly + cleverly + sharply + astutely + successfully + expertly + +[work-phrase] strive to + work to + endeavor to + continue to + execute a strategic plan to + +[work-phrase2] strive towards + work towards + endeavor towards + continue towards + make progress towards + make strides towards + take steps towards + achieve progress in + engage in + execute a strategic plan involving + +[noun] action items + architectures + assets + bandwidth + channels + communities + content + deliverables + eyeballs + face time + functionalities + infomediaries + infrastructures + initiatives + interfaces + key players + leadership skills + markets + metrics + middleware + mindshare + perspectives + networks + niches + paradigms + partnerships + platforms + portals + relationship corridors + relationships + synergies + schemas + skill sets + solutions + strategic alliances + supply-chains + synergies + technologies + total {{empty}} quality {{empty}} management + version control + vision + catalysts for [noun] + +[noun-prefix] sub- + meta- + mega- + e- + E- + cyber- + Net- + +[adjective] best-of-breed + bilateral + bleeding-edge + client-centered + cross-platform + cross-media + customer-centric + cutting-edge + distributed + dot-com + dynamic + effective + efficient + effort-intensive + enterprise + evolutionary + extensible + forward-thinking + frictionless + future-proof + global + granular + hyperlinked + idiot-proof + innovative + integrated + interactive + intuitive + killer + leading-edge + legacy + massively-parallel + mission-critical + multilevel + next-generation + object-oriented + open-source + proactive + progressive + real-time + revolutionary + robust + scalable + seamless + strategic + synergistic + transparent + turn-key + two-tier + ubiquitous + user-centric + value-added + vertical + viral + virtual + visionary + wireless + world-class + +[connector] so that we may + in order to + as part of our master plan to + as part of a larger strategy to + to + to + in order that we may + to allow us to + to enable us to + to permit us to + so that hopefully we may + as part of our five-year plan to + as part of our business plan to + as a component of our plan to + as the first step in our scheme to + +[goal] [make] a lot of [money] + produce [profit] for our [shareholders] + produce more [profit] for our [shareholders] + [increase] [profit] for our [shareholders] + better serve our customers + better serve our [shareholders] + better serve the [world] + [increase] our [bottom-line] + get out of debt + prevent bankruptcy + stay competitive for [todays] [world] + remain profitable in [todays] [world] + [set-us-apart] [competition] + [defeat] [competition] + [increase] customer satisfaction + create a [better] [product] + market a [lesser] [product] + produce a [better] [product] that kicks [competition] 's [butt] + market a [lesser] [product] that [make] s us a lot of [money] + exceed customer [demands] + meet the [demands] of our valued customers + meet the [demands] of the [world] + successfully market an overhyped [lesser] [product] + take over the [world] + dominate the [world] + waste a lot of time in meetings + make our founder enough [money] to exceed the net worth of the world's richest man + +[demands] demands + expectations + wants + needs + requirements + +[product] product + product line + line of products + line of services + brand + +[better] better + superior + finer + more affordable + quality + higher quality + popular + robust + +[lesser] lesser + highly inferior + subpar + worse + more expensive + weak + lower quality + poor + +[make] make + earn + produce + create + yield + +[defeat] defeat + counter + challenge + beat + strike back at + conquer + crush + shellac + rout + vanquish + reign victorious over + overwhelm + beat the snot out of + +[competition] the competition + our competitors + the rest of the industry + our evil competitors + the market + the industry + our enemies + +[set-us-apart] set us apart from + pull ahead from + distance us from + take us ahead of + +[todays] today's + tomorrow's + the future + +[shareholders] shareholders + employees + executive officers + head honchos + workers + serfs + investors + venture capitalists + sponsors + +[increase] increase + shore up + inflate + enlarge + enrich + add to + augment + advance + expand + burgeon + grow + multiply + make greater + +[profit] profit + dividends + cash + money + revenue + income + earnings + proceeds + rewards + benefits + +[money] money + cash + currency + moola + greenbacks + dough + bread + scratch + bucks + simoleons + +[world] world + industry + globe + universe + nation + country + market + economy + +[butt] butt + ass + rear end + posterior + behind + +[bottom-line] bottom line + stock price + net worth + earnings + revenue + sales diff --git a/data/sample-grammars/names.gram b/data/sample-grammars/names.gram new file mode 100644 index 0000000..104c136 --- /dev/null +++ b/data/sample-grammars/names.gram @@ -0,0 +1,431 @@ +# @TODO 10/26/17 Ben Culkin :NameTypes +# Add rules for producing names in the common 'last, first' style format, +# as well as producing actual middle names/nick names for people + +[full-name] [first-name] + [last-name] + [first-name] [last-name] + [first-name] [middle-initial] . [last-name] + [consonant] . [middle-initial] . [last-name] + [middle-initial] . [middle-initial] . [last-name] + [random-name] + [random-name] [random-name] + [random-name] [middle-initial] . [random-name] + +pragma initial-rule [full-name-and-title] + +pragma export-rule [person] +pragma export-rule [first-name] +pragma export-rule [generic-title] +pragma export-rule [full-name] +pragma export-rule [random-name] + +[full-name-and-title] [generic-title] [last-name] + [generic-title] [middle-initial] . [middle-initial] . [last-name] + [male-title] [first-name-male] + [male-title] [first-name-male] [last-name] + [male-title] [first-name-male] [middle-initial] . [last-name] + [female-title] [first-name-female] + [female-title] [first-name-female] [last-name] + [female-title] [first-name-female] [middle-initial] . [last-name] + [gender-neutral-title] [full-name] + [generic-title] [full-name] + [full-name] + [full-name] + [full-name] + [full-name] + +[generic-title] [male-title] + [female-title] + [gender-neutral-title] + [male-title] + [female-title] + [gender-neutral-title] + [career-tech] + +# @TODO 10/23/17 Ben Culkin :TitleExpansion +# Expand titles to +# - Include place names where appropriate (e.g empereror of ...) +# - Include ordinals where necessary (first emperor of ...) +# + +[male-title] Mr. + Master + Uncle + Lord Mayor + Prince + archduke + grand duke + duke + marquis + marquess + count + earl + jarl + viscount + baron + lord + emperor + king + tsar + imperator + viceroy + pope + abbot + brother + friar + bishop + archbishob + priest + high priest + father + patriarch + vicar + chaplain + pastor + cardinal + monsieur + herr + senor + signor + emir + sultan + maharajah + lord protector + king-emperor + rex + lord of the manor + high king + crown prince + grand prince + praetor + headmaster + +[female-title] Ms. + Mrs. + Miss + Mistress + Aunt + Lady Mayoress + princess + arch duchess + grand duchess + duchess + marquise + marchioness + countess + viscountess + baroness + lady + empress + queen + tsarina + imperatrix + rex + vicerine + popess + dame + abbess + sister + mother superior + mother + reverend mother + priestess + high priestess + matriarch + madame + mademoiselle + frau + fraulein + senora + senorita + signora + signorina + emira + sultana + maharani + lady protectoress + queen-empress + regina + lady of the manor + high queen + crown princess + grand princess + headmistress + +[gender-neutral-title] Dr. + Professor + Right Honorable + Rt. Hon. + Honorable + Hon. + Representative + Senator + Speaker + [president] + Councillor + Delegate + Mayor + Governor + Lieutenant Governor + Premier + [ambassador] + [envoy] + [secretary] + attache + attache ( to [full-name-and-title] ) + provost + chevalier + [judicial-title] + [religious-title] + [military-title] + coach + wizard + grand wizard + imperial wizard + principal + comrade + docent + lama + druid + archdruid + rabbi + ayatollah + bodhisattva + saoshyant + sheikh + archon + legate + satrap + consul + doge + pharaoh + caliph + khagan + khan + shah + shogun + despot + kaiser + don + comissioner + comptroller + courtier + courtier (to [full-name-and-title] ) + curator + intendant + superindentent + sheriff + treasurer + warden + lord warden + apprentice + apprentice (to a [generic-title] ) + apprentice (to [full-name-and-title] ) + journeyman + adept + centurion + daimyo + elector + inquisitor + grand inquisitor + pontiff + knight + squire + squire (to [full-name-and-title] ) + +[military-title] admiral + grand admiral + lord high admiral + rear admiral + vice admiral + brigadier + captain + group captain + colonel + lieutenant colonel + commander + commander-in-chief + lieutenant commander + wing commander + commodore + air commodore + corporal + lance corporal + staff corporal + general + first lieutenant + flight lieutenant + major + marshal + air marshal + field marshal + mate + chief mate + first mate + [officer] + private + sergeant + sergeant at arms + brigadier general + cadet + ensign + +[officer] officer + chief academic officer + chief executive officer + chief information officer + chief operating officer + field officer + first officer + flag officer + warrant officer + petty officer + police officer + political officer + senior officer + staff officer + police officer + constable + agent + +[religious-title] venerable + blessed + Saint + St. + decon + archdeacon + acolyte + dean + elder + minister + monsignor + reader + almoner + +[judicial-title] advocate + attorney + attorney general + bailiff + chancellor + judge + justice + lord chief justice + justice of the peace + magistrate + solicitor + +[president] president + deputy president + vice president + executive vice president + lord president of the council + +[ambassador] ambassador + ambassador (to [nation] ) + +[envoy] envoy + envoy (to [nation] ) + envoy (to the [generic-title] ) + envoy (to [full-name-and-title] ) + special envoy + special envoy (to [nation] ) + special envoy (to the [generic-title] ) + special envoy (to [full-name-and-title] ) + +[secretary] secretary + secretary (to [full-name-and-title] ) + secretary (to the [generic-title] ) + under-secretary + under-secretary (to [full-name-and-title] ) + under-secretary (to the [generic-title] ) + foreign secretary + general secretary + secretary of state + +pragma suffix-with [full-name-and-title] [title-generation] +pragma suffix-with [full-name-and-title] [title-suffix] +pragma suffix-with [full-name-and-title] [title-suffix] +pragma suffix-with [full-name-and-title] [title-suffix] + +[title-generation] Sr. + Jr. + [roman-numeral] + the [roman-numeral] + the [ordinal] + the [ordinal-number] + +[title-trailer] CPA + Ph.D + MP + M.D + DBA + RNA + TLA + A.B + B.A + B.S + M.A + M.S + Ed.D + D.Phil + Eng.D + K.B.E + D.D + Esq. + Esquire + CFA + P.E + PMP + CIA + CEH + CISA + CISM + CISSP + CNP + [cisco-title] + [ms-title] + OCP + [acronym] + J.D + J.P + N.P + CPL + DVM + D.D.S + D.M.D + OD + EMT + LPN + CMT + CRNA + OTP + KHS + GCHS + KCHS + MBA + +[cisco-title] CCNA + CCNP + CCIE + +[ms-title] MCDBA + MCSA + MCSE + MCP + +[title-suffix] , [title-trailer] + +[person] [full-name] + +[first-name] [first-name-male] + [first-name-female] + +[random-name] [actual+random-name] + +[actual+random-name] [syllable] [syllable] + [syllable] [syllable] [last-syllable] + [syllable] [vowel] [consonant-group] [vowel] + [consonant-group] [vowel] [syllable] + [vowel] [syllable] [syllable] + [syllable] [vowel-group] [consonant] diff --git a/data/sample-grammars/newspaper.gram b/data/sample-grammars/newspaper.gram new file mode 100644 index 0000000..afa91ee --- /dev/null +++ b/data/sample-grammars/newspaper.gram @@ -0,0 +1,4 @@ +[headline] [headline-prefix] [headline-news] + [headline-news] [headline-suffix] + +pragma initial-rule [headline] diff --git a/data/sample-grammars/numbers.gram b/data/sample-grammars/numbers.gram new file mode 100644 index 0000000..4db84b9 --- /dev/null +++ b/data/sample-grammars/numbers.gram @@ -0,0 +1,19 @@ +[small-number] [actual+small-number] + +[medium-number] [actual+medium-number] + +[zipcode] [actual+zipcode] + +pragma export-rule [small-number] +pragma export-rule [medium-number] +pragma export-rule [zipcode] + +[actual+small-number] [digit-nonzero] + [digit-nonzero] [digit] + [digit-nonzero] [digit] [digit] + +[actual+medium-number] [digit-nonzero] [digit] [digit] + [digit-nonzero] [digit] [digit] [digit] + [digit-nonzero] [digit] [digit] [digit] [digit] + +[actual+zipcode] [digit] [digit] [digit] [digit] [digit] diff --git a/data/sample-grammars/ordinal.gram b/data/sample-grammars/ordinal.gram new file mode 100644 index 0000000..da4aa4e --- /dev/null +++ b/data/sample-grammars/ordinal.gram @@ -0,0 +1,20 @@ +[ordinal-number] [actual+ordinal-number] + +pragma export-rule [ordinal-number] + +[actual+ordinal-number] [ordinal-digit] + 1 [digit] th + [digit-twoup] [ordinal-digit] + [digit-twoup] [ordinal-digit] + [digit-nonzero] [ordinal-number] + +[ordinal-digit] 1st + 2nd + 3rd + 4th + 5th + 6th + 7th + 8th + 9th + 0th diff --git a/data/sample-grammars/organization.gram b/data/sample-grammars/organization.gram new file mode 100644 index 0000000..9c88686 --- /dev/null +++ b/data/sample-grammars/organization.gram @@ -0,0 +1,237 @@ +[organization-desc] [org-political] + +[org-postfix] (allies of [org-political] ) + (enemies of [org-political] ) + (secretly opposed to [org-political] ) + (secretly in cohorts with [org-political] ) + (based in [city] ) + (based in [town-name] ) + +pragma suffix-with [organization-desc] [org-postfix] +pragma suffix-with [organization-desc] [org-postfix] +pragma suffix-with [organization-desc] [org-postfix] + +[organization] [org-political] + +pragma initial-rule [organization] +pragma export-rule [org-political] + +[org-political] [org-prefix] [org-body] + +pragma suffix-with [org-political] [org-goalbody] + +[org-body] of [org-members] + +[org-goalbody] [org-position] [org-goal] + for [org-goal] + +pragma suffix-with [org-goalbody] [org-wayof] + +[org-wayof] by way of [org-goal] + by [org-positioning] [org-goal] + +[org-positioning] supporting + abolishing + repealing + eliminating + +[org-position] for + for + supporting + in support of + committed to + against + opposed to + +[org-goal] "nuke first, ask questions later" policy + banning negative campaign ads + big brother policies + book burnings + campaign finance reform + cutting taxes for the [wealth] + daylight saving time + draconian software license agreements + eliminating the national debt + eliminating violence on tv + gay marriages + genetically modified foods + god in the classroom + government handouts + gun control + hitting unfriendly nations with a nuclear bomb + increased military spending + increasing the minimum wage to [min+wage] + internet censorship + internet pornography + legal reform + local control of schools + marijuana legalization + nuclear winter + political correctness + prescription drug subsidies + privacy rights + pro-choice policy + pro-life policy + protecting the [protect] + raising taxes for [tax-class] + random drug testing for elected officials + right on red traffic laws + splitting microsoft into [2..50] pieces + subsidized day care for working parents + teaching [subject] in the classroom + the death penalty + the designated hitter rule + the flat tax + universal health care + using [bad-thing] in public + wealth redistribution + wearing baseball caps backwards + miranda rights + speed limits + the [protect] + women's suffrage + the drug [trademark+drug] + [trademark] + [organization] + [org-course] + +[org-course] offering [quote-course] in college + making [quote-course] a mandatory course + teaching [quote-course] in high school + +[org-goal-person] supporting [quote-nametitle] + opposing [quote-nametitle] + exiling [quote-nametitle] + indicting [quote-nametitle] + pardoning [quote-nametitle] + +[quote-nametitle] ( [full-name-and-title] ) + +pragma despace-rule [quote-nametitle] + +pragma prefix-with [org-goal] [org-goal-abolish] + +[wealth] poor + working poor + middle class + lower class + upper class + wealth + filthy rich + +[min+wage] [9..20] . [digit] [digit] + +[protect] bill of rights + first amendment + second amendment + +[tax-class] the rich + the filthy rich + the wealthy + billionaire + lottery winners + +[subject] evolution + evilution + creationism + +[bad-thing] swear words + cuss words + profanities + expletives + +[org-goal-abolish] abolishing + repealing + eliminating + +[org-prefix] council + association + organization + united organization + union + federation + league + association + campaign + society + alliance + fellowship + +[intl-name] american + national + international + [intl-possesive] + [us-stateadj] + +[intl-possesive] ( [full-name-and-title] 's ) + +pragma despace-rule [intl-possesive] + +pragma prefix-with [org-prefix] [org-members-prefix] +pragma prefix-with [org-prefix] [intl-name] +pragma prefix-with [org-prefix] [org-members-prefix] + +[org-members] [org-members-body] + +pragma prefix-with [org-members] [org-members-prefix] +pragma prefix-with [org-members] [intl-name] +pragma prefix-with [org-members] [org-members-prefix] + +[org-members-prefix] radical + concerned + outraged + activist + caring + involved + civic-minded + conservative + liberal + reformist + socialist + communist + morally bankrupt + +[org-members-body] angst-ridden teenagers + baby boomers + bambi people + bible thumpers + church-goers + clergymen + democrats + [eco+members] + grandparents + hollywood movie stars + lawyers + lesbians + liberals + libertarians + lobbyists + minorities + parents + pointy haired bosses + republicans + soccer moms + socialists + state legislators + [tree+members] + [american+members] + +[eco+members] eco- [eco-suffix] + +[eco-suffix] watchdogs + freaks + terrorists + activists + +[tree+members] tree- [tree-suffix] + +[tree-suffix] huggers + worshippers + +[american+members] [american-prefix] -americans + +[american-prefix] african + asian + elbonian + native + mexican diff --git a/data/sample-grammars/part-creature.gram b/data/sample-grammars/part-creature.gram new file mode 100755 index 0000000..41bbb83 --- /dev/null +++ b/data/sample-grammars/part-creature.gram @@ -0,0 +1,137 @@ +[full-creature] a(n) [creature-choice] + a(n) [quote-creature] fused with a(n) [quote-creature] + chimera of a(n) [quote-creature] , a(n) [quote-creature] and a(n) [quote-creature] + +[quote-creature] ( [creature-choice] ) + +pragma despace-rule [quote-creature] + +[creature-choice] [creature] + +pragma prefix-with [creature-choice] [characteristics] +pragma prefix-with [creature-choice] [abilities] +pragma prefix-with [creature-choice] [characteristics] +pragma prefix-with [creature-choice] [abilities] + +pragma initial-rule [full-creature] +pragma export-rule [creature-choice] + +[abilities] [ability] + [ability] + [ability] + [ability] + [quote-ability] and [quote-ability] + [quote-ability] and [quote-ability] + [quote-ability] , [quote-ability] and [quote-ability] + +[quote-ability] ( [ability] ) + +pragma despace-rule [quote-ability] + +[ability] flying + invisible + silent + ethereal + telepathic + eye beams + swallow whole + poisonous + regenerating + anti-magic + petrifying + frightful presence + confusing + flesh grinding + radioactive + rust + acidic + nauseating + [eating] + [elemental-type] -breathing + [elemental-type] -eating + [elemental-type] -immune + [elemental-type] -resistant + +[eating] [characteristic] -eating + [creature] -eating + +pragma despace-rule [eating] + +# @TODO 10/26/17 Ben Culkin :CharacteristicAdditions +# Add more templates and classes to the list + +[characteristics] [characteristic] + [characteristic] + [characteristic] + [characteristic] + [quote-characteristic] and [quote-characteristic] + [quote-characteristic] and [quote-characteristic] + [quote-characteristic] , [quote-characteristic] and [quote-characteristic] + +[quote-characteristic] ( [characteristic] ) + +pragma despace-rule [quote-characteristic] + +[characteristic] zombie + vampire + swarm + samurai + barbarian + wizard + ninja + robot + rabid + demonic + awakened + feral + pirate + gelatinous + dire + shadow + rich + [partial-breed] + [were] + [elemental-adv] [characteristic] + +[were] were- [characteristic] + were- [creature] + +pragma despace-rule [were] + +[partial-breed] half- [creature] + quarter- [creature] + +pragma despace-rule [partial-breed] + +[creature] shark + bear + lion + badger + wolf + ape + squid + snake + weasel + tyrannosaurus + crocodile + bee + spider + dragon + dire penguin + giant mini space hamster + camel + little girl + classy kobold + disenchanter + [elemental] + [elemental-type] + living [elemental-type] + [dungeon-mimic] + [^creature] + [humanoid] + [creature-epic] + +[dungeon-mimic] trapper + mimic + lurker + cloaker diff --git a/data/sample-grammars/phone-number.gram b/data/sample-grammars/phone-number.gram new file mode 100644 index 0000000..163ef4a --- /dev/null +++ b/data/sample-grammars/phone-number.gram @@ -0,0 +1,29 @@ +[us-phone-number] [area+code] [full+num] + [intl+num] + [area+code] [full+num] + [area+code] [letter+num] + [1800+num] + [1800+letter+num] + +[extension] ext. [ext+num] + +pragma suffix-with [us-phone-number] [extension] +pragma export-rule [us-phone-number] + +[area+code] ( [digit] [digit] [digit] ) + +[full+num] [digit] [digit] [digit] - [digit] [digit] [digit] [digit] + +[intl+num] [1..100] - [full+num] + +[ext+num] [digit-nonzero] [digit] [digit] + +pragma suffix-with [ext+num] [digit] +pragma suffix-with [ext+num] [digit] +pragma suffix-with [ext+num] [digit] + +[letter+num] [digit] [digit] [digit] - [letter] [letter] [letter] [letter] + +[1800+num] 1-800- [digit] [digit] [digit] - [digit] [digit] [digit] [digit] + +[1800+letter+num] 1-800- [letter] [letter] [letter] [letter] [letter] [letter] [letter] diff --git a/data/sample-grammars/pokeattacks.gram b/data/sample-grammars/pokeattacks.gram new file mode 100755 index 0000000..649f42c --- /dev/null +++ b/data/sample-grammars/pokeattacks.gram @@ -0,0 +1,124 @@ +[pokeattack] [pokeattack-name] + +[attack-type] ( [poke-type] type) + ( [poke-type] / [poke-type] type) + +[attack-pp] ( [5..40] pp ) + +pragma despace-rule [attack-type] +pragma despace-rule [attack-pp] + +pragma suffix-with [pokeattack] [move-kind] +pragma suffix-with [pokeattack] [attack-type] +pragma suffix-with [pokeattack] [attack-pp] + +[pokeattack-name] [word-1] [word-1] + [word-2] [word-2] + [word-1] [word-2] + [word-2] [word-1] + [word-1] [seperator] [word-1] + [word-2] [seperator] [word-2] + [word-1] [seperator] [word-2] + [word-2] [seperator] [word-1] + [word-1] [seperator] [word-1] + [word-2] [seperator] [word-2] + [word-1] [seperator] [word-2] + [word-2] [seperator] [word-1] + +[seperator] - + / + and + +[move-kind] (special move) + (physical move) + +[poke-type] normal + fire + fighting + water + flying + grass + poison + electric + ground + psychic + rock + ice + bug + dragon + ghost + dark + steel + fairy + +pragma initial-rule [pokeattack] +pragma export-rule [pokeattack-name] + +[word-11] [word-1] + +pragma suffix-with [word-11] [seperator] + +[word-21] [word-2] + +pragma prefix-with [word-21] [seperator] + +pragma prefix-with [pokeattack-name] [word-1] +pragma suffix-with [pokeattack-name] [word-2] + +[word-1] acid + aerial + air + ancient + aqua + aura + aurora + baton + beat + belly + blast + blaze + body + bone + comet + confuse + cotton + cross + dark + destiny + diamond + dizzy + doom + dragon + dream + dynamic + earth + egg + electric + energy + +[word-2] terrain + ball + impulse + bomb + speed + lock + wind + stinger + dance + gambit + blast + fang + punch + spin + burst + charge + wheel + blitz + cannon + drink + eye + shot + sun + slap + wrath + blade diff --git a/data/sample-grammars/president.gram b/data/sample-grammars/president.gram new file mode 100644 index 0000000..63b928c --- /dev/null +++ b/data/sample-grammars/president.gram @@ -0,0 +1,64 @@ +[us-president] george washington + john adams + thomas jefferson + james madison + james monroe + john quincy adams + andrew jackson + martin van buren + william henry harrison + john tyler + james polk + zachary taylor + millard fillmore + franklin pierce + james buchanan + abraham lincoln + andrew johnson + ulysses s grant + rutherford b. hayes + james garfield + chester a. arthur + grover cleveland + benjamin harrison + william mckinley + theodore roosevelt + william taft + woodrow wilson + warren g. harding + calvin coolidge + herbert hoover + franklin d. roosevelt + harry s truman + dwight eisenhower + john f. kennedy + lyndon b. johnson + richard nixon + gerald ford + jimmie carter + ronald reagan + george bush + bill clinton + george w. bush + barack obama + donald trump + +[us-president-common] washington + adams + jefferson + madison + monroe + adams + jackson + van buren + harrison + taylor + lincoln + johnson + garfield + roosevelt + wilson + truman + +pragma export-rule [us-president] +pragma export-rule [us-president-common] diff --git a/data/sample-grammars/rtwiki/adjective.gram b/data/sample-grammars/rtwiki/adjective.gram new file mode 100644 index 0000000..09168aa --- /dev/null +++ b/data/sample-grammars/rtwiki/adjective.gram @@ -0,0 +1,34 @@ +[adjective1] flying + broken + shining + salty + flaming + slaughtered + fighting + drunken + olde + cracked + dirty + dancing + laughing + wheezing + mighty + stalwart + dripping + swaying + bitter + beefy + sleeping + leaping + prancing + +[adjective2] curious + happy + lusty + rude + lazy + greedy + jealous + zealous + angry + vulgar diff --git a/data/sample-grammars/rtwiki/bodyparts.gram b/data/sample-grammars/rtwiki/bodyparts.gram new file mode 100644 index 0000000..71b4924 --- /dev/null +++ b/data/sample-grammars/rtwiki/bodyparts.gram @@ -0,0 +1,74 @@ +[bodypart] fist + throat + stomach + big toe + eye + knee + mouth + heel + chest + belly + kidney + thigh + belly button + shoulder + abdomen + tongue + feet + collar bone + fingernail + forehead + ear + gums + ankle + teeth + jaw + eyelashes + ear lobe + palm + hip + index finger + teeth + nostril + back + toes + nipple + neck + bottom + ribs + wrist + nose + chin + pinky finger + humerus + upper arm + legs + finger + eyelid + testes + foot + hand + breast + groin + underarm + elbow + toenail + waist + spine + balls of the feet + thumn + lips + eyebrow + scalp + cheek + buttocks + hair + lower leg + calves + face + shoulder blade + shin + arm + forearm + +pragma export-rule [bodypart] diff --git a/data/sample-grammars/rtwiki/class.gram b/data/sample-grammars/rtwiki/class.gram new file mode 100644 index 0000000..8fcb17c --- /dev/null +++ b/data/sample-grammars/rtwiki/class.gram @@ -0,0 +1,11 @@ +[Utility/Class] Barbarian + Bard + Cleric + Druid + Fighter + Monk + Paladin + Ranger + Rogue + Sorceror + Wizard diff --git a/data/sample-grammars/rtwiki/color.gram b/data/sample-grammars/rtwiki/color.gram new file mode 100644 index 0000000..346f73b --- /dev/null +++ b/data/sample-grammars/rtwiki/color.gram @@ -0,0 +1,569 @@ +[color-phrases] [color-phrase] + [multi-color-phrases] + +[multi-color-phrases] [color-phrase] blended with [color-phrase] + a blend between [color-phrase] , [color-phrase] and [color-phrase] + something between [color-phrase] and [color-phrase] + something between [color-phrase] , [color-phrase] and [color-phrase] + +pragma initial-rule [color-phrases] + +[color-phrase] [complete-color] + [sw-complete-color] + [sw-complete-color] [complete-color] + [sw-complete-color] - [complete-color] + [sw-complete-color] [sw-complete-color] + [sw-complete-color] - [sw-complete-color] + +pragma export-rule [color-phrase] + +[sw-color-phrase] [sw-complete-color] + [sw-complete-color] [sw-complete-color] + [sw-complete-color] - [sw-complete-color] + +pragma export-rule [sw-color-phrase] + +[complete-color] {wtype=mw} [act-complete-color] + +pragma despace-rule [complete-color] +pragma export-rule [complete-color] + +[sw-complete-color] [act-sw-complete-color] + [act-sw-complete-color] ish + +pragma despace-rule [sw-complete-color] +pragma export-rule [sw-complete-color] + +[act-sw-complete-color] {wtype=sw} [act-complete-color] + +pragma despace-rule [act-sw-complete-color] + +[act-complete-color] [standard] + [red-purple] + [yellow-orange] + [green-blue] + [brown-neutral] + [jewel] + [metallic] + [heraldic] + +[other-color] [archaic-purple] + [archaic-green] + [archaic-brown] + [anachronistic] + +[standard] red + orange + ochre + yellow + green + olive + blue + navy + indigo + violet + purple + beige + brown + cream + khaki + tan + ivory + white + blue-gray + [gray] + black + ebony + copper + gold + silver + [$wtype-standard] + [$wtype-standard] + [$wtype-standard] + [$wtype-standard] + transparent + +[gray] gray + grey + +[sw-standard] iridescent + opalescent + rainbow + +[mw-standard] [iridescent] + [opalescent] + [ombre] + [rainbow] + +[iridescent] iridescent [color] + iridescent between [color] and [color] + +[opalescent] opalescent [color] + +[ombre] [color] (tinted [color] ) + +[rainbow] rainbow of red, orange, yellow, green, blue, indigo and violet + [custom-rainbow] + +[custom-rainbow] rainbow of [color] + +pragma suffix-with [custom-rainbow] [com-color] +pragma suffix-with [custom-rainbow] [com-color] +pragma suffix-with [custom-rainbow] [com-color] +pragma suffix-with [custom-rainbow] [com-color] +pragma suffix-with [custom-rainbow] [com-color] +pragma suffix-with [custom-rainbow] [and-color] + +[com-color] , [color] + +[and-color] and [color] + +[red-purple] auburn + blood + brick + burgundy + cardinal + carmine + cherry + cinnabar + crimson + incarnadine + maroon + oxblood + pink + puce + raspberry + rose + scarlet + amaranth + aubergine + heliotrope + iris + lavender + lilac + mulberry + orchid + plum + porphyry + violet + wine + wisteria + +[yellow-orange] butter + canary + citrine + ecru + flax + gold + goldenrod + honey + jasmine + jaundiced + lemon + maize + mustard + primrose + saffron + straw + turmeric + annatto + apricot + carrot + marigold + ochre + peach + persimmon + poppy + pumpkin + salmon + tangerine + tomato + vermilion + +[green-blue] baby blue + cerulean + cobalt + cornflower + denim + iris + midnight + navy + periwinkle + robin's egg blue + royal blue + sky blue + ultramarine + artichoke + avocado + chartreuse + forest green + grass green + harlequin + honeydew + hunter green + jungle green + lime + mint + moss + myrtle + olive + pistachio + sea-green + teal + +[brown-neutral] beaver + bistre + buff + camel + chestnut + chocolate + coffee + fawn + khaki + mahogany + russet + sand + sienna + sepia + taupe + tawny + terra cotta + umber + cornsilk + eggshell + snow + vanilla + whey + ash + charcoal + cool gray + slate + warm gray + ebony + licorice + +[jewel] amber + amethyst + aquamarine + aventurine + bone + carnelian + chrysophrase + citrine + copal + coral + diamond + emerald + garnet + ivory + jacinth + jade + jet + lapis lazuli + malachite + obsidian + onyx + [$wtype-jewel] + pearlescent + peridot + ruby + sapphire + sardonyx + topaz + tourmaline + turquoise + +[sw-jewel] opalescent + +[mw-jewel] [opalescent] + +[metallic] brass + bronze + chrome + copper + gold + gunmetal + iron + pewter + platinum + rust + silver + steel + titanium + verdigris + white gold + +[heraldic] argent + azure + carnation + celeste + cendree + gules + or + murrey + purpure + sable + rose + sanguine + tenne + vert + white + +[archaic-purple] [$wtype-archaic-purple] + +[sw-archaic-purple] arcipluvian + ianthine + rhodopsin + solferino + coccineous + cramoisy + erythraen + lateritious + miniaceous + piceous + puccoon + stammel + vinious + nacarat + coquelicot + croceate + ibis + minium + vermeil + citreous + flavescent + icterine + jessamy + jonquil + luteous + meline + ochroleucous + orpiment + sulphureous + urobilin + +[mw-archaic-purple] arcipluvian [arcipluvian] + ianthine (violet) + rhodopsin (purple) + solferino (purple) + coccineous (bright red) + cramoisy (crimson) + erythraen (reddish) + lateritious (brick red) + miniaceous (red) + piceous (reddish-black) + puccoon (blood red) + stammel (red) + vinious (deep red) + nacarat (orange-red) + coquelicot (poppy) + croceate (saffron) + ibis (apricot) + minium (vermilion) + vermeil (vermilion) + citreous (lemon) + flavescent (yellowish) + icterine (jaundice-yellow) + jessamy (jasmine) + jonquil (yellow) + luteous (golden yellow) + meline (canary) + ochroleucous (yellow-white) + orpiment (yellow) + sulphureous (bright yellow) + urobilin (urine-colored) + +[arcipluvian] (varies between [color] and [color] ) + (varies between [color] , [color] and [color] ) + (varies between [color] , [color] , [color] and [color] ) + (varies between [color] , [color] and [color] ) + +[archaic-green] [$wtype-archaic-green] + +[sw-archaic-green] bilious + chrysochlorous + tilleul + celadon + chlorochorous + corbeau + porraceous + virescent + viridian + zinnober + bice + caesious + glaucous + lovat + azuline + mazarine + pavonated + smalt + watchet + woad + atrous + eburnean + griseous + nacreous + smaragdine + aeneous + ferruginous + hoary + plumbeous + rubiginous + +[mw-archaic-green] bilious (yellow-green) + chrysochlorous (green-gold) + tilleul (yellow-green) + celadon (pale green) + chlorochorous (green) + corbeau (green-black) + porraceous (leek green) + virescent (green or greenish) + viridian (green) + zinnober (green) + bice (green or blue) + caesious (blue- or gray-green) + glaucous (bluish-gray or green) + lovat (gray- or blue-green) + azuline (blue) + mazarine (blue or reddish-blue) + pavonated (peacock blue) + smalt (deep blue) + watchet (pale blue) + woad (blue) + atrous (jet black) + eburnean (ivory) + griseous (pearl-gray) + nacreous (pearlescent) + smaragdine (emerald) + aeneous (bronze) + ferruginous (rusty) + hoary (pale silver-gray) + plumbeous (lead white) + rubiginous (rusty) + +[archaic-brown] [$wtype-archaic-brown] + +[sw-archaic-brown] badious (chestnut) + bole + burnet + castaneous + castory + filemot + fulvous + fuscous + infuscate + melichrous + nankeen + pyrrhous + rufous + sarcoline + spadiceous + stramineous + albicant + canescent + cretaceous + leucochroic + niveious + cinereous + columbine + fuliginous + greige + gridelin + isabelline + liard + welmish + morel + +[mw-archaic-brown] badious (chestnut) + bole (reddish-brown) + burnet (dark brown) + castaneous (chestnut) + castory (beaver) + filemot (dead leaf brown) + fulvous (dull reddish- or brownish-yellow) + fuscous (brown, tawny, dingy) + infuscate (cloudy brown) + melichrous (honey) + nankeen (buff) + pyrrhous (ruddy) + rufous (reddish-brown) + sarcoline (caucasian flesh) + spadiceous (chestnut) + stramineous (straw-colored) + albicant (turning white) + canescent (hoary, grayish-white) + cretaceous (chalky) + leucochroic (white, pale) + niveious (snowy) + cinereous (ashen) + columbine (dove-colored) + fuliginous (sooty, dusky) + greige (gray-beige) + gridelin (violet-gray) + isabelline (yellow-gray) + liard (dapple-gray) + welmish (pale, sickly) + morel (black) + +[anachronistic] [$wtype-anachronistic] + +[sw-anachronistic] cyan + fuchsia + hot pink + magenta + mauve + safety orange + dolm + fuligin + garrow + vantablack + jale + octarine + pallow + rawn + smaudre + ulfire + infrared + ultraviolet + reflective + fluorescent [color] + hypercolor + iridescent + metameric + opalescent + phosphorescent [color] + rainbow + translucent [color] + transparent + +[mw-anachronistic] cyan + fuchsia + hot pink + magenta + mauve + safety orange + dolm + fuligin + garrow + vantablack + jale + octarine + pallow + rawn + smaudre + ulfire + infrared + ultraviolet + reflective + fluorescent [color] + freezy freakies ( [color] normally, [color] when cold) + hypercolor ( [color] normally, [color] when hot) + [iridescent] + metameric (appears as [color] , but is really [color] ) + [ombre] + [opalescent] + phosphorescent [color] + [rainbow] + translucent [color] + transparent diff --git a/data/sample-grammars/rtwiki/creature.gram b/data/sample-grammars/rtwiki/creature.gram new file mode 100644 index 0000000..b3f7b92 --- /dev/null +++ b/data/sample-grammars/rtwiki/creature.gram @@ -0,0 +1,79 @@ +[creature] bear + boar + bull + cow + horse + hound + lamb + lion + serpent + stag + tiger + wolf + sturgeon + elk + badger + hare + bat + lizard + squirrel + fox + dolphin + panther + ram + goat + beaver + mountain lion + tortoise + pike + frog + rat + mare + stallion + plowhorse + ox + elephant + +[creature-epic] aboleth + chimera + cyclops + demon + devil + dinosaur + dragon + elemental + giant + golem + griffon + hydra + kraken + lycanthrope + medusa + minotaur + roc + treant + vampire + +[humanoid] bugbear + drow + dwarf + elf + fairy + gnoll + gnome + half-elf + half-orc + halfling + hobgoblin + human + kobold + merfolk + nymph + ogre + orc + tiefling + troglodyte + +pragma export-rule [creature] +pragma export-rule [creature-epic] +pragma export-rule [humanoid] diff --git a/data/sample-grammars/rtwiki/death-cause.gram b/data/sample-grammars/rtwiki/death-cause.gram new file mode 100644 index 0000000..74e58e8 --- /dev/null +++ b/data/sample-grammars/rtwiki/death-cause.gram @@ -0,0 +1,108 @@ +[death-cause] by heart attack + by aneurysm + by lingering undiagnosed disease + by allergic reaction + by seizure + by dehydration + by blood infection + by blood-borne parasite + by malnutrition + by plague + by hunger + by having eyes gouged out + by transmitted disease often associated with prostitutes + by emphysema + by misdiagnosis (and wrong treatment) by health provider + by heart disease + by hypothermia + by sliced open wrists + by self-inflicted shot to the head + by hanging with a belt around the neck + by intentionally jumping from a dangerous height + by attacking an armed person + by ingesting toxic substances + by bleeding out from loss of limb + by attempting self-amputation to free oneself + by addiction withdrawals + by a falling object + by falling into a sinkhole + by accidentally tripping and falling from a dangerous height + by tripping and striking his head + by inhaling toxic spores from a mushroom + by infected paper cut + by infected wood splinter + by stepping on a rusty nail + by a hunter mistaking the person for an animal + by blunt-force trauma to the head + by piercing blow to the head + by unintentional amputation + by electrical shock + by acid burns + by being bludgeoned by fists + by beheading + by random homicide + by premeditated homicide by a friend or loved one + by premeditated homicide by an enemy + by murder-suicide + by hired hit-man who killed [Character/Deaths] + by hidden explosive intended for the deceased + by hidden explosive intended for someone else + by being in the wrong-place at the wrong-time as a bystander during a crime + by unruly mob + by stoning + by being burned alive + by shop owner while attempting to rob the shop + by execution squad + by [Character/Torture] torture + by goring from a wild animal attempting to protects young + by trampling from wild animals during a stampede + by flying stinging insects + by serpent-bite + by a swarm of biting insects + by deadly spider + by being hunted by an apex predator + by a highly-trained attack [Monster/Animals] + by a rabid wombat mauling + by bite from a Gila monster + by shark attack + by a lightning strike + by a flash flood + by a tornado + by a hurricane + by a volcanic eruption + by earthquake + by heat stroke + by hailstones + by exposure to the elements + by sandstorm + by falling into an open mineshaft + by drowning + by alcohol poisoning + by attempting an extreme stunt + by playing a rough sport + by accidental death while training with a weapon + by overdose + by mixing medications + by germ-tainted food (food poisoning) + by eating harmful wild fruits + by raining frogs + by stray projectile from out of nowhere + by sacrifice to an obscure cult + by rare medicinal side-effect + by brain parasites + by a disease unknown to medicine + by fear from something supernatural + by dissection on alien ship + by spontaneous human combustion + by petrification of a gorgon + by a hilltop gazebo + by crucifixion + by act of god + +[Monster/Animals] {{empty}} + +[Character/Torture] {{empty}} + +[Character/Deaths] {{empty}} + +pragma export-rule [death-cause] diff --git a/data/sample-grammars/rtwiki/fantasy-name.gram b/data/sample-grammars/rtwiki/fantasy-name.gram new file mode 100644 index 0000000..c4ce02e --- /dev/null +++ b/data/sample-grammars/rtwiki/fantasy-name.gram @@ -0,0 +1,176 @@ +[fantasy-name] [fantasy+name] + +pragma initial-rule [fantasy-name] + +[fantasy+name] [name-root1] [name-root2] + [name-root1] [name-root3] + [name-root1] [name-root2] [name-root3] + +[name-root1] ag + al + alf + anna + anor + aren + ary + atha + ban + bel + ben + bra + buc + car + cars + cor + cris + crys + dag + dali + dam + damar + draga + edda + fa + fana + futha + ga + grav + grom + hadra + hagal + hes + igni + inver + ippa + ka + kel + kyra + lar + lyr + mal + maran + mat + noc + odi + olaf + ora + radi + rai + row + rowa + say + sel + shad + stal + tala + taras + tir + un + unn + ven + vida + wer + wyr + yar + ys + za + zel + +[name-root2] ada + ar + ary + atr + bar + bìn + burr + byr + cal + can + cane + cel + cor + dale + dor + e + es + eth + for + gan + gann + han + is + kel + kos + la + lan + mar + mar + mas + mer + mer + moor + mor + mur + myr + nyr + or + os + pad + pas + ped + pen + per + pon + pyr + ran + ter + ula + ura + urr + us + val + van + wa + ward + yal + yan + yas + zar + zer + +[name-root3] aren + ayth + cir + dia + dua + ela + era + erla + fora + gath + gith + hisa + ir + ira + la + lor + los + lum + mir + myr + na + nare + nos + plen + radas + rath + roth + rya + sar + sil + sol + tas + us + vyr + wug + yara diff --git a/data/sample-grammars/rtwiki/favorite.gram b/data/sample-grammars/rtwiki/favorite.gram new file mode 100644 index 0000000..ba1468a --- /dev/null +++ b/data/sample-grammars/rtwiki/favorite.gram @@ -0,0 +1,24 @@ +[favorite-food] My favorite foods are [fruit] , [vegetable] and [meat] + +pragma initial-rule [favorite-food] + +[fruit] apple + banana + cherry + +[vegetable] potato + okra + brussel sprouts + broccoli + peas + cauliflower + radish + green beans + +[meat] hamburgers + hot dogs + salmon + beef + chicken + pork + fish diff --git a/data/sample-grammars/rtwiki/guns.gram b/data/sample-grammars/rtwiki/guns.gram new file mode 100644 index 0000000..aafab8c --- /dev/null +++ b/data/sample-grammars/rtwiki/guns.gram @@ -0,0 +1,236 @@ +[gun-phrase] [quote-gunname] was released today + [quote-gunname] vs. [quote-gunname] : which is better + [quote-guncorp] 's [quote-gunname] : cost vs. quality + [quote-guncorp] is going out of business + [quote-guncorp] was bought by [quote-guncorp] + [quote-guncorp] 's [quote-gunname] vs. [quote-guncorp] 's [quote-gunname] : cost vs. quality + +[quote-gunname] [gun-name] + +[quote-guncorp] [guncorp] + +pragma initial-rule [gun-phrase] + +[gun-name] [1gun-name] + [2gun-name2] + [1gun-name] + [2gun-name2] + [1gun-name] + [2gun-name2] + [2gun-name1] [2gun-name2] + [2gun-name1] [1gun-name] + [1gun-name] [2gun-name2] + [2gun-name1] [1gun-name] [2gun-name2] + +pragma prefix-with [gun-name] [2gun-name1] + +pragma export-rule [gun-name] + +[1gun-name] Chimera + Warrior + Bardiche + Courage + Grinder + Golem + Scorpion + Livewire + Honor + Wizard + Manticore + Vindicator + Cobra + Katar + Loyalty + Tango + Wendigo + Scrapper + Gorilla + Venom + Bravery + Runaway + Wraith + Challenger + Rhino + Kukri + Despair + Zulu + Tengu + Warlord + Crocodile + Naginata + Determination + Skeleton + Oni + Gladiator + Grizzly + Glaive + Powerhouse + Areo Mag + Cyclops + Veteran + Tyrannosaurus + Quarterstaff + Nano-Loader + Jiangshi + Vanquisher + Velociraptor + Trident + Humility + Badge + Minotaur + Cadet + Rottweiler + Stormcloud + Virtuous + Youxia + Sharp + Liberty + Illuminati + Dogface + Cyclone + Justice + Temple + Tatsu + Spartan + Wildfire + Scornful + Futurist + Qilin + Bogatyr + Hound + Nova + Heartache + Xiezhi + Patrolman + Mantis + Toxin + Polymath + Thrillseeker + Phoenix + Centurion + Noble + Motivator + Rakshasa + Watchman + Cockroach + Claw + Unifier + Headhunter + Draugr + Inquisitor + Maggot + Biter + Taskmaster + +[2gun-name1] Dire + White + Hard + Decision + Grim + Black + Purring + Night + Orphan + Lead + Final + +[2gun-name2] Wolf + Knight + Truth + Maker + Reaper + Lion + Unicorn + Kitten + Cat + Owl + Maker + Widow + Poisoner + Remedy + +[guncorp] [guncorp-1] + [guncorp-1] [guncorp-2] + [guncorp-1] [guncorp-2] + [guncorp-1] [guncorp-2] + [guncorp-1] [guncorp-1] [guncorp-2] + [guncorp-1] - [guncorp-1] [guncorp-2] + [guncorp-1] and [guncorp-1] [guncorp-2] + [guncorp-1] / [guncorp-1] [guncorp-2] + +pragma export-rule [guncorp] + +[guncorp-1] Ace-Eight + Akinyemi + Anasi + Atmaghata + Brainfuck + Choral Hardtech + Double Six + Death's Head + Exomorph + Fury + Pactkeeper + Bereitschaft + Godfist + Golovanov + Ishtar + Jiandao + Hachiman + Hivewerks + Honeybadger + Kaamat-Bandi + Nadel + Neo-Ordinance + Nekrasova + Onwudiwe + Pallas Athena + Pryhn + Quliang + Raventech + Riverboat + Sekhmet + Skullkorp + Southern + Takein + Thorhammer + Ultraviolet + Waspmill + Xuguan-Fuchang + Yttrium + Zoahou + Zurgug + +[guncorp-2] Industrial + Firearms + Manufacturing + Group + Limited + Ventures + Security + Enterprises + Technica + Sports + Copperhead + GmbH + Corporation + Amerika + Macrotech + Fangyu + Omnitech + Sporting Arms + Hauserkampf + Armaments + Group + Industries + Interstellar Arms + Weaponsmiths + Industrial Warfare + Dwarfhold + Personal Weaponry + Urban + Thunderbolt + Counterstrike + Galactic + Unlimited + Tribal Alliance diff --git a/data/sample-grammars/rtwiki/item.gram b/data/sample-grammars/rtwiki/item.gram new file mode 100644 index 0000000..fdee69c --- /dev/null +++ b/data/sample-grammars/rtwiki/item.gram @@ -0,0 +1,74 @@ +[item] [act-item] + [act-item] + [act-item] of the [act-item] + +[act-item] [body] + [music] + [symbol] + [thing] + [weapon] + +pragma initial-rule [item] + +[body] arm + open eye + closed eye + foot + gauntlet + clenched hand + open hand + head + helm + heart + mouth + skull + tail + [bodypart] + +[music] bagpipe + bell + drum + dulcimer + flute + harp + harpsichord + lute + recorder + tambourine + +[symbol] arcane symbol + divine symbol + full moon + crescent moon + star + sunburst + waves + +[thing] anchor + candle + castle + chalice + coin + flag + goblet + shield + tankard + temple + tree + wagon + wheel + wreath + +[weapon] arrow + axe + blade + bow + club + dagger + flail + mace + polearm + quarterstaff + spear + sword + whip diff --git a/data/sample-grammars/rtwiki/traits.gram b/data/sample-grammars/rtwiki/traits.gram new file mode 100644 index 0000000..c3ff790 --- /dev/null +++ b/data/sample-grammars/rtwiki/traits.gram @@ -0,0 +1,1002 @@ +[personality-trait] Able + Abrasive + Abrupt + Absent Minded + Abusive + Accepting + Accident Prone + Accommodating + Accomplished + Action Oriented + Active + Adaptable + Addict + ADHD + Adorable + Adventurous + Affable + Affected + Affectionate + Afraid + Afraid Of Commitment + Aggressive + Agnostic + Agreeable + Alert + Alluring + Aloof + Altruistic + Always Hungry + Always Late + Ambiguous + Ambitious + Amiable + Amused + Amusing + Angry + Animated + Annoyed + Annoying + Anti-Social + Anxious + Apathetic + Apologetic + Appreciative + Apprehensive + Approachable + Argumentative + Aristocratic + Arrogant + Artistic + Ashamed + Aspiring + Assertive + Astonished + Attentive + Audacious + Austere + Authoritarian + Authoritative + Available + Average + Awful + Awkward + Babbling + Babyish + Bad + Bashful + Beautiful + Belligerent + Bewildered + Biter + Blames Others + Blasé + Blowhard + Boastful + Boisterous + Bold + Boorish + Bored + Boring + Bossy + Boundless + Brainy + Brash + Bratty + Brave + Brazen + Bright + Brilliant + Brotherly + Brutish + Bubbly + Busy + Calculating + Callous + Calm + Candid + Capable + Capricious + Carefree + Careful + Careless + Caring + Caustic + Cautious + Changeable + Charismatic + Charming + Chaste + Cheerful + Cheerless + Childish + Chivalrous + Civilised + Classy + Clean + Clever + Close + Closed + Clumsy + Coarse + Cocky + Coherent + Cold + Cold Hearted + Combative + Comfortable + Committed + Communicative + Compassionate + Competent + Complacent + Compliant + Composed + Compulsive + Conceited + Concerned + Condescending + Confident + Confused + Congenial + Conscientious + Considerate + Consistent + Constricting + Content + Contented + Contrarian + Contrite + Controlling + Conversational + Cooperative + Coquettish + Courageous + Courteous + Covetous + Cowardly + Cowering + Coy + Crabby + Crafty + Cranky + Crazy + Creative + Credible + Creepy + Critical + Cross + Crude + Cruel + Cuddly + Cultured + Curious + Cutthroat + Cynical + Dainty + Dangerous + Daring + Dark + Dashing + Dauntless + Dazzling + Debonair + Deceitful + Deceiving + Decent + Decisive + Decorous + Deep + Defeated + Defective + Deferential + Defiant + Deliberate + Delicate + Delightful + Demanding + Demonic + Dependable + Dependent + Depressed + Deranged + Despicable + Despondent + Detached + Detailed + Determined + Devilish + Devious + Devoted + Dignified + Diligent + Direct + Disaffected + Disagreeable + Discerning + Disciplined + Discontented + Discouraged + Discreet + Disgusting + Dishonest + Disillusioned + Disinterested + Disloyal + Dismayed + Disorderly + Disorganized + Disparaging + Disrespectful + Dissatisfied + Dissolute + Distant + Distraught + Distressed + Disturbed + Dogmatic + Domineering + Dorky + Doubtful + Downtrodden + Draconian + Dramatic + Dreamer + Dreamy + Dreary + Dubious + Dull + Dumb + Dutiful + Dynamic + Eager + Easygoing + Eccentric + Educated + Effervescent + Efficient + Egocentric + Egotistic + Elated + Eloquent + Embarrassed + Embittered + Embraces Change + Eminent + Emotional + Empathetic + Enchanting + Encouraging + Enduring + Energetic + Engaging + Enigmatic + Entertaining + Enthusiastic + Envious + Equable + Erratic + Ethical + Evasive + Evil + Exacting + Excellent + Excessive + Excitable + Excited + Exclusive + Expansive + Expert + Extravagant + Extreme + Exuberant + Fabulous + Facetious + Faded + Fair + Faith In Self + Faithful + Faithless + Fake + Fanatical + Fanciful + Fantastic + Fatalistic + Fearful + Fearless + Feisty + Ferocious + Fidgety + Fierce + Fiery + Fighter + Filthy + Fine + Finicky + Flagging + Flakey + Flamboyant + Flashy + Fleeting + Flexible + Flighty + Flippant + Flirty + Flustered + Focused + Foolish + Forceful + Forgetful + Forgiving + Formal + Fortunate + Foul + Frank + Frantic + Fresh + Fretful + Friendly + Frightened + Frigid + Frugal + Frustrated + Fuddy Duddy + Fun + Fun Loving + Funny + Furious + Furtive + Fussy + Gabby + Garrulous + Gaudy + Generous + Genial + Gentle + Giddy + Giggly + Gives Up Easily + Giving + Glamorous + Gloomy + Glorious + Glum + Goal Orientated + Good + Goofy + Graceful + Gracious + Grandiose + Grateful + Greedy + Gregarious + Grieving + Grouchy + Growly + Gruesome + Gruff + Grumpy + Guarded + Guilt Ridden + Guilty + Gullible + Haggling + Handsome + Happy + Hard + Hard Working + Hardy + Harmonious + Harried + Harsh + Hateful + Haughty + Healthy + Heart Broken + Heartless + Heavy Hearted + Hedonistic + Helpful + Helpless + Hesitant + High + High Self Esteem + Hilarious + Homeless + Honest + Honor Bound + Honorable + Hopeful + Hopeless + Hormonal + Horrible + Hospitable + Hostile + Hot Headed + Huffy + Humble + Humorous + Hurt + Hysterical + Ignorant + Ill + Ill-Bred + Imaginative + Immaculate + Immature + Immobile + Immodest + Impartial + Impatient + Imperial + Impolite + Impotent + Impractical + Impudent + Impulsive + Inactive + Incoherent + Incompetent + Inconsiderate + Inconsistent + Indecisive + Independent + Indifferent + Indiscrete + Indiscriminate + Indolent + Indulgent + Industrious + Inefficient + Inept + Inflexible + Inimitable + Innocent + Inquisitive + Insecure + Insensitive + Insightful + Insincere + Insipid + Insistent + Insolent + Instinctive + Insulting + Intellectual + Intelligent + Intense + Interested + Interrupting + Intimidating + Intolerant + Intrepid + Introspective + Introverted + Intuitive + Inventive + Involved + Irresolute + Irresponsible + Irreverent + Irritable + Irritating + Jackass + Jaded + Jealous + Jittery + Joking + Jolly + Jovial + Joyful + Joyous + Judgmental + Keen + Kenderish + Kind Hearted + Kittenish + Knowledgeable + Lackadaisical + Lacking + Languid + Lascivious + Late + Lazy + Leader + Lean + Lethargic + Level + Lewd + Liar + Licentious + Light-Hearted + Likeable + Limited + Lineat + Lingering + Lively + Logical + Lonely + Loquacious + Lordly + Loud + Loudmouth + Lovable + Lovely + Loves Challenge + Loving + Low Confidence + Lowly + Loyal + Lucky + Lunatic + Lying + Macho + Mad + Malice + Malicious + Manipulative + Mannerly + Materialistic + Matronly + Matter-Of-Fact + Mature + Mean + Meek + Melancholy + Melodramatic + Mentally Slow + Merciful + Mercurial + Messy + Meticulous + Mild + Mischievous + Miserable + Miserly + Mistrusting + Modern + Modest + Moody + Moping + Moralistic + Motherly + Motivated + Mysterious + Nagging + Naive + Narcissistic + Narrow-Minded + Nasty + Naughty + Neat + Needs Social Approval + Needy + Negative + Negligent + Nervous + Neurotic + Never Hungry + Nibbler + Nice + Night Owl + Nihilistic + Nimble + Nit Picker + No Purpose + No Self Confidence + Noble + Noisy + Nonchalant + Nosy + Not Trustworthy + Nuanced + Nuisance + Nurturing + Nut + Obedient + Obese + Obliging + Obnoxious + Obscene + Obsequious + Observant + Obstinate + Odd + Odious + Open + Open-Minded + Opinionated + Opportunistic + Optimistic + Orcish + Orderly + Organized + Ornery + Ossified + Ostentatious + Outgoing + Outrageous + Outspoken + Overbearing + Overweight + Overwhelmed + Overwhelming + Paces + Pacifistic + Painstaking + Panicky + Paranoid + Particular + Passionate + Passive + Passive-Aggressive + Pathetic + Patient + Patriotic + Peaceful + Penitent + Pensive + Perfect + Perfectionist + Performer + Perserverant + Perseveres + Persevering + Persistent + Persuasive + Pert + Perverse + Pessimistic + Petty + Petulant + Philanthropic + Picky + Pious + Pitiful + Placid + Plain + Playful + Pleasant + Pleasing + Plotting + Plucky + Polite + Pompous + Poor + Popular + Positive + Possessive + Practical + Precise + Predictable + Preoccupied + Pretentious + Pretty + Prim + Primitive + Productive + Profane + Professional + Promiscuous + Proper + Protective + Proud + Prudent + Psychotic + Puckish + Punctilious + Punctual + Purposeful + Pushy + Puzzled + Quarrelsome + Queer + Quick + Quick Tempered + Quiet + Quirky + Quixotic + Rambunctious + Random + Rash + Rational + Rawboned + Realistic + Reasonable + Rebellious + Recalcitrant + Receptive + Reckless + Reclusive + Refined + Reflective + Regretful + Rejects Change + Relaxed + Relents + Reliable + Relieved + Religious + Reluctant + Remorseful + Repugnant + Repulsive + Resentful + Reserved + Resilient + Resolute + Resourceful + Respectful + Responsible + Responsive + Restless + Retiring + Rhetorical + Rich + Right + Righteous + Rigid + Risk-Taking + Romantic + Rough + Rowdy + Rude + Rugged + Ruthless + Sacrificing + Sad + Sadistic + Safe + Sagely + Saintly + Salient + Sanctimonious + Sanguine + Sarcastic + Sassy + Satisfied + Saucy + Savage + Scared + Scarred + Scary + Scattered + Scheming + Scornful + Scrawny + Scruffy + Secretive + Secure + Sedate + Seductive + Selective + Self-Centered + Self-Confident + Self-Conscious + Self-Controlling + Self-Directed + Self-Disciplined + Self-Giving + Self-Reliant + Self-Serving + Selfish + Selfless + Senile + Sensitive + Sensual + Sentimental + Serene + Serious + Sexual + Sexy + Shallow + Shameless + Sharp + Sharp-Tongued + Sharp-Witted + Sheepish + Shiftless + Shifty + Short + Shrewd + Shy + Silent + Silky + Silly + Simian + Simple + Sincere + Sisterly + Skillful + Sleazy + Sloppy + Slovenly + Slow Paced + Slutty + Sly + Small-Minded + Smart + Smiling + Smooth + Sneaky + Snob + Sociable + Soft-Hearted + Soft-Spoken + Solitary + Sore + Sorry + Sour + Spendthrift + Spiteful + Splendid + Spoiled + Spontaneous + Spunky + Squeamish + Stately + Static + Steadfast + Sterile + Stern + Stimulating + Stingy + Stoical + Stolid + Straight Laced + Strange + Strict + Strident + Strong + Strong Willed + Stubborn + Studious + Stupid + Suave + Submissive + Successful + Succinct + Sulky + Sullen + Sultry + Supercilious + Superstitious + Supportive + Surly + Suspicious + Sweet + Sympathetic + Systematic + Taciturn + Tacky + Tactful + Tactless + Talented + Talkative + Tall + Tardy + Tasteful + Temperamental + Temperate + Tenacious + Tense + Tentative + Terrible + Terrified + Testy + Thankful + Thankless + Thick Skinned + Thorough + Thoughtful + Thoughtless + Threatening + Thrifty + Thrilled + Tight + Timid + Tired + Tireless + Tiresome + Tolerant + Touchy + Tough + Trivial + Troubled + Truculent + Trusting + Trustworthy + Truthful + Typical + Ugly + Unappreciative + Unassuming + Unbending + Unbiased + Uncaring + Uncommitted + Unconcerned + Uncontrolled + Unconventional + Uncooperative + Uncoordinated + Uncouth + Undependable + Understanding + Undesirable + Undisciplined + Unenthusiastic + Unfeeling + Unfocused + Unforgiving + Unfriendly + Ungrateful + Unhappy + Unhelpful + Uninhibited + Unkind + Unmotivated + Unpredictable + Unreasonable + Unreceptive + Unreliable + Unresponsive + Unrestrained + Unruly + Unscrupulous + Unselfish + Unsure + Unsympathetic + Unsystematic + Unusual + Unwilling + Upbeat + Upset + Uptight + Useful + Vacant + Vague + Vain + Valiant + Vengeful + Venomous + Verbose + Versatile + Vigorous + Vindictive + Violent + Virtuous + Visual + Vivacious + Volatile + Voracious + Vulgar + Vulnerable + Warlike + Warm Hearted + Wary + Wasteful + Weak + Weary + Weird + Well Grounded + Whimsical + Wholesome + Wicked + Wild + Willing + Wise + Wishy Washy + Withdrawn + Witty + Worldly + Worried + Worthless + Wretched + Xenophobic + Young + Youthful + Zany + Zealot + +pragma export-rule [personality-trait] diff --git a/data/sample-grammars/rune.gram b/data/sample-grammars/rune.gram new file mode 100755 index 0000000..4c64e5a --- /dev/null +++ b/data/sample-grammars/rune.gram @@ -0,0 +1,116 @@ +# @TODO 10/23/17 Ben Culkin :RuneDebug +# Something seems to be wrong with this grammar, and I'm not sure as to +# the exact details. +# +# The problem is that we are getting multiple runes running together +# without an obvious cause. + +[rune-string] [rune-2] + [rune-1] [rune-2] + [rune-1] [rune-2] [rune-3] + [rune-2] [rune-3] + +pragma initial-rule [rune-string] + +pragma prefix-with [rune-string] [rune-1] +pragma suffix-with [rune-string] [rune-3] + +[rune-1] a dagger plunged into + vines growing out of + a crown perched atop + crossed swords over + a pair of hands surrounding + demonic eyes peering out of + blue lightning arcing out of + an axe thrust into + a hand bursting from + a tentacle reaching out of + a spear thrust through + a trumpet thrust through + tiny stars surrounding + a jewel within + a hand inside + a sword inside + a hand within + an arrow piercing + a hand clutching + +[rune-2] a skull + a treasure chest + a circle cut into three parts + a pyramid + a triangle + a mushroom + a grinning mask + a clenched fist + a giant human eye + a shield + a circle + a pentagram + a pentacle + a flagon + a circle cut in half + a semicircle + a heart + a large star + a wave + a diamond + an octagon + a scroll + a spiral + a tree + a rose + a helmet + a book + a staff + a hammer + a bone + a cat’s face + a wolf’s head + a large mouth + an upward-pointing arrow + a downward-pointing arrow + an arrow pointing two directions + a circle cut into four parts + a ship + a six-pointed star + a seven-pointed star + a pentagon + +[rune-3] girded by laurels + sheathed in flames + glowing like the sun + emblazoned with a demonic face + flanked by catlike wings + in the coils of a serpent + swaddled in tentacles + flanked by feathered wings + inscribed within a red circle + inscribed within a magic circle + inscribed within a long rectangle + covered with spikes and spines + haloed in light + half in shadow + with coins all around it + with curved knives all around it + wrapped in a pair of rings + atop a tower + next to a writhing snake + atop a mountain + next to a crescent moon + made of thin red lines + made of thin blue lines + made of thin green lines + made of thin black lines + all done as a silhouette + wrapped in a cloud + dripping with blood + flanked by swords + flanked by skulls + flanked by arrows + within a ring made by a whip + within a ring made by a snake, eating its own tail + atop crossed bones + above a trident + below two spears + covered in insects diff --git a/data/sample-grammars/school.gram b/data/sample-grammars/school.gram new file mode 100644 index 0000000..cd9298b --- /dev/null +++ b/data/sample-grammars/school.gram @@ -0,0 +1,16 @@ +[public-school-fullname] [public-school] [school-type] + +pragma initial-rule [public-school-fullname] + +[school-type] high school + middle school + grade school + elementary school + +[public-school] [us-president] + [us-president] memorial + [person] + [last-name] + [city] central + [city] + [cardinal] [city] diff --git a/data/sample-grammars/slashdot.gram b/data/sample-grammars/slashdot.gram new file mode 100644 index 0000000..2b38ee3 --- /dev/null +++ b/data/sample-grammars/slashdot.gram @@ -0,0 +1,62 @@ +[slashdot-jonkatz] [jonkatz-prefix1] : [jonkatz-1] + [jonkatz-1] + +pragma initial-rule [slashdot-jonkatz] + +[jonkatz-1] [jonkatz-issues] , [jonkatz-issues] and the [jonkatz-issues2] + [jonkatz-verbs1] [jonkatz-actionsofthem] [jonkatz-issues] + [jonkatz-prefix2] [jonkatz-actionsofthem] [jonkatz-issues] + +[jonkatz-prefix1] analysis + unplugged + part [number-word] + feature + jon katz + the windbag speaks + +[jonkatz-prefix2] the rise of + brief history of + the road to + the myth of + voices from + descent into + at the crossroads of + showdown with + the era of + the power of + the death of + the nation of + some good news from + beyond + +[jonkatz-verbs1] dealing with + handling + facing + coping with + fighting + challenging + +[jonkatz-actionsofthem] war on + battle against + heavy-handed crusade against + draconian retaliation against + foolish crackdown on + crazy attempts to ban + +[jonkatz-issues] criminal libel + free speech + free music + fighting monopolies + repealing unjust laws + software patents + geek profiling + sexbots + free pornography + +[jonkatz-issues2] net + world + internet + worldwide community + web + geek population + future diff --git a/data/sample-grammars/states.gram b/data/sample-grammars/states.gram new file mode 100644 index 0000000..43f1402 --- /dev/null +++ b/data/sample-grammars/states.gram @@ -0,0 +1,156 @@ +[us-state] alabama + alaska + arizona + arkansas + california + colorado + connecticut + delaware + florida + georgia + hawaii + idaho + illinois + indiana + iowa + kansas + kentucky + louisiana + maine + maryland + massachusetts + michigan + minnesota + mississippi + missouri + montana + nebraska + nevada + new hampshire + new jersey + new mexico + new york + north carolina + north dakota + ohio + oklahoma + oregon + pennsylvania + rhode island + south carolina + south dakota + tennessee + texas + utah + vermont + virginia + washington + west virginia + wisconsin + wyoming + +pragma export-rule [us-state] +pragma export-rule [us-postalstate] +pragma export-rule [us-stateadj] + +[us-postalstate] al + ak + az + ar + ca + co + ct + de + fl + ga + hi + id + il + in + ia + ks + ky + la + me + md + ma + mi + mn + ms + mo + mt + ne + nv + nh + nj + nm + ny + nc + nd + oh + ok + or + pa + ri + sc + sd + tn + tx + ut + vt + va + wa + wv + wi + wy + +[us-stateadj] alabaman + alaskan + arizonan + arkansasan + californian + coloradoan + connecticutter + delawarian + floridian + georgian + hawaiian + idahoan + illinoisan + indianan + iowan + kansan + kentuckian + louisianan + maineian + marylandian + massachusettsian + michiganian + minnesotan + mississippian + missourian + montanan + nebraskan + nevadan + new hampshireian + new jerseyian + new mexican + new yorkian + north carolinan + north dakotan + ohioan + oklahoman + oregonian + pennsylvanian + rhode islander + south carolinan + south dakotan + tennesseean + texan + utahan + vermontian + virginian + washingtonian + west virginian + wisconsiner + wyominger diff --git a/data/sample-grammars/superhero.gram b/data/sample-grammars/superhero.gram new file mode 100755 index 0000000..cdb609f --- /dev/null +++ b/data/sample-grammars/superhero.gram @@ -0,0 +1,304 @@ +[superhero-desc] [superhero-name] + +pragma initial-rule [superhero-desc] + +[superhero-postfix] [superhero-ally] + [superhero-enemy] + +pragma suffix-with [superhero-desc] [superhero-postfix] +pragma suffix-with [superhero-desc] [superhero-postfix] +pragma suffix-with [superhero-desc] [superhero-postfix] + +pragma suffix-with [superhero-desc] [superhero-secret] + +pragma suffix-with [superhero-desc] [superhero-org] +pragma suffix-with [superhero-desc] [superhero-org] + +[superhero-ally] (ally of [superhero-name] ) + (secret ally of [superhero-name] ) + (lover of [superhero-name] ) + +[superhero-enemy] (enemy of [superhero-name] ) + (secret enemy of [superhero-name] ) + +[superhero-misc] (betrayer of [superhero-name] ) + (killer of [superhero-name] ) + (defeater of [superhero-name] ) + (mentor of [superhero-name] ) + (subordinate of [superhero-name] ) + ( [generic-title] ) + +[superhero-secret] (secret identity of [full-name-and-title] ) + +[superhero-org] (member of the [organization] ) + (double agent for the [organization] ) + (sworn enemy of the [organization] ) + (leader of the [organization] ) + (second in command of the [organization] ) + ( [generic-title] of the [organization] ) + +[superhero-name] [first-part] [second-part] + [second-part] [first-part] + +pragma export-rule [superhero-name] + +pragma suffix-with [superhero-name] [third-part] +pragma suffix-with [superhero-name] [fourth-part] +pragma suffix-with [superhero-name] [fifth-part] +pragma prefix-with [superhero-name] [third-part2] + +[fifth-part] and the [third-part2] + and [third-part2] + +pragma suffix-with [fifth-part] [fourth-part] + +[first-part] Captain + Yellow + Star + Incredible + Lightning + Silver + Phoenix + Wonder + Super + Green + Courageous + Iron + Black + Invisible + Professor + Night + Silent + Red + Thunder + General + Time + Scarlet + Grand + Arcane + Arcana + White + Muscle + [second-class] + [gender-title] + +[gender-title] Mr + Ms + Mister + Miss + Dr + Doctor + Professor + Lord + Lady + King + Queen + Prince + Princess + +[second-part] Hawk + Phantom + Fist + Hex + Soldier + Raven + Patriot + Hope + Stallion + Chimera + Archer + Raptor + Lord + Ninja + Eagle + Bolt + Boulder + Knight + Brain + Fusion + Crusader + Shepherd + Flame + Orchid + Torch + Magus + Wizard + [second-class] + [second-class] + +[second-class] Rider + Caster + Assasin + Berserker + Saber + Archer + Lancer + Saver + Ruler + Shielder + Avenger + +[third-part] ,The [third-part2] + +pragma suffix-with [third-part] [fifth-part] + +[third-part2] [third-part-act] + [third-part-act] [second-part] + +[third-part-act] Champion + Protector + Wielder + Wielding + Marksman + Fated + Fate + Lover + Lovely + Loving + Celebrated + Prodigy + Guardian + Inquisitor + Inquisitorial + Legend + Legendary + Returned + Light + Dark + Warrior + Sacred + Cursed + Victor + Victorious + Triumphant + Mystic + Mystical + Amazing + Incomparable + Lord + Lady + Mysterious + Face + Divine + Magnificent + Magnificence + Virtuous + Survivor + Surviving + Courageous + Steward + Keeper + Squire + Exalted + Dammed + Infernal + Demonic + Demon + Angelic + Angel + Devilish + Devil + Dragonic + Dragon + Crusading + Crusader + Knightly + Knight + Lordly + Lord + Ravenous + Saintly + Saint + Blessed + Ghost + Ghostly + Magical + Magical Girl + Magical Knight + Dead + Deadly + Flaming + Thunderer + [major-arcana] + [major-arcana] + Cardinal + Bishop + Archbishop + Pope + Father + Mother + Fatherly + Motherly + Sinister + Embodiment + [generic-title] + [generic-title] + +[fourth-part] of [fourth-part-act] + +[fourth-part-act] the [fourth-part-the] + [harrowed-many-things] + [harrowed-many-things] + Hope + Destiny + Justice + Humanity + Men + Women + Freedom + Knowledge + Earth + Eternal Fire + [planet] + [planet] + [second-part] + [second-part] + +[planet] Earth + Mars + Jupiter + Saturn + Pluto + Uranus + Mercury + Venus + Neptune + +[fourth-part-the] Realm + Chalice + Law + Future + Tides + Poor + Trees + Universe + Seven + Past + Isles + Gauntlet + Dominion + Living + Galaxy + Ancients + Archive + Moon + [generic-title] + [generic-title] + [exalt-type] + [exalt-type] + [arcana] + [arcana] + +[exalt-type] Dawn + Zenith + Twilight + Night + Eclipse + +[arcana] [tarot-card] + Arcana + Minor Arcana + Major Arcana + [ordinal-roman] Arcana + [ordinal-number] Arcana + [ordinal] Arcana diff --git a/data/sample-grammars/tarotcard.gram b/data/sample-grammars/tarotcard.gram new file mode 100755 index 0000000..43741a0 --- /dev/null +++ b/data/sample-grammars/tarotcard.gram @@ -0,0 +1,58 @@ +[tarot-card] [adjective-of] [title] + [adjective-of] [title] [adjective] + [adjective-of] [title] [adjective] [noun] + [adjective-of] [noun] [title] + [adjective-of] [noun] + [adjective-of] [noun] [adjective] [noun] + [noun] + [noun] [adjective] + [noun] [title] + [noun] [adjective] [noun] + [title] [adjective] + [title] [adjective] [noun] + +pragma initial-rule [tarot-card] + +[title] [male-title] + [male-title] + [female-title] + [female-title] + [misc-title] + +[male-title] emperor + king + knight + priest + +[female-title] empress + queen + princess + priestess + +[misc-title] fool + +[adjective] of [adjective-of] + +[adjective-of] shimmering + blazing + infinite + whispering + frozen + hidden + magical + quiet + dancing + lost + +[noun] darkness + light + waters + stars + hills + rainbows + forests + fire + moons + winds + hearts + spirits diff --git a/data/sample-grammars/technobabble.gram b/data/sample-grammars/technobabble.gram new file mode 100755 index 0000000..3861576 --- /dev/null +++ b/data/sample-grammars/technobabble.gram @@ -0,0 +1,49 @@ +[technobabble] [part-prefix] [part-suffix] [part-problem] + [part-suffix] [part-prefix] [part-problem] + [part-prefix] [part-problem] + +pragma initial-rule [technobabble] + +pragma suffix-with [technobabble] [part-cause] + +[part-cause] the [part-prefix] + the [part-suffix] + the [part-prefix] [part-suffix] + +pragma suffix-with [part-cause] [add-cause] + +[add-cause] and [part-cause] + and [part-problem] [part-cause] + +[part-prefix] primary + secondary + compression + grav + hydraulic + reg + power + +[part-suffix] boot + coupling + housing + stabilizer + vent + lines + converter + feed + +[part-problem] cracked + wedged + collapsed + bent + fell off + shattered + seized + jammed + burnt + exploded + imploded + incinerated + froze + destabilized + clogged diff --git a/data/sample-grammars/theory.gram b/data/sample-grammars/theory.gram new file mode 100644 index 0000000..af2ce49 --- /dev/null +++ b/data/sample-grammars/theory.gram @@ -0,0 +1,25 @@ +[theory] [plural+last] [theory-suffix] + [plural+last] [theory-suffix] + the [2+last-name] [theory-suffix] + the [2+last-name] [theory-suffix] + the [2+last-name] [theory-suffix] + the [3+last-name] [theory-suffix] + [plural+last] [ordinal] [theory-suffix] + the [last-name] [theory-suffix] + the [last-name] [theory-suffix] + +pragma initial-rule [theory] + +[plural+last] [last-name] 's + +[2+last-name] [last-name] - [last-name] + +[3+last-name] [last-name] - [last-name] - [last-name] + +[theory-suffix] theory + law + theorem + postulate + conjecture + principle + hypothesis diff --git a/data/sample-grammars/trademark.gram b/data/sample-grammars/trademark.gram new file mode 100644 index 0000000..7ec2fef --- /dev/null +++ b/data/sample-grammars/trademark.gram @@ -0,0 +1,186 @@ +[trademark] [actual+trademark] + +pragma initial-rule [trademark] + +[actual+trademark] [syllable] [trademark-suffix] + [random-name] [trademark-suffix] + [buzzword-stem] [buzzword-suffix] + [trademark-fragment] [trademark-suffix] + +[trademark-suffix] ent + izon + ium + ilium + ilon + ate + atium + ian + +[trademark-fragment] accel + ver + agil + pent + itan + celer + quali + free + syn + dyna [consonant] + cor + excel + valu [consonant] + top + fav + vant + cert + eq + cere + mor + +[trademark+drug] [trademark-drug-fragment] [trademark-drug-suffix] + [trademark-drug-fragment] [trademark-drug-suffix] + [trademark-drug-fragment] [trademark-drug-suffix] + [trademark-fragment] [trademark-drug-suffix] + [trademark-fragment] [trademark-drug-fragment] [trademark-drug-suffix] + [syllable] [trademark-drug-fragment] [trademark-drug-suffix] + [trademark-drug-fragment] [syllable] [trademark-drug-suffix] + +pragma export-rule [trademark+drug] + +[trademark-drug-fragment] can + cid + asper + fem + let + tam + tri [consonant] + zia + epi + retro + vu + zido + aba + nova + immu + kal + uni + lev [vowel] + thy + rox + gluco + gly + bur + met + form + dia + van + mala + sara + fem + pro + flu + ox + oxy + apli + opti + mylo + exe + tar + riva + sti [consonant] + zy [consonant] + mo + acti + estr + thin + via [vowel] + zone + huma + andro + prev + caf + proto + tri + duo + quadr [vowel] + lept + tequ + quino + [consonant-group] ox + ino + taxo + pen + cyclo + ciclo + zol + sert + meta + [consonant] epp + rem [vowel] + com + [vowel] sel + [consonant] apa + sirp + repro + aic + son + temo + neo + ant [vowel] + ky [consonant] + rel + rito + avan + gen + +[trademark-drug-suffix] [letter] as + [vowel] ra + [consonant] ole + [vowel] flue + [vowel] v [vowel] r + vir + g [vowel] n + dine + [consonant] ine + [consonant-group] one + nex + rex + [consonant] ex + etra + oid + [consonant-group] oid + vance + ide + iqa + iqua + zac + [consonant] ac + graf + var + [consonant] arg + lon + bic + [consonant] ella + [vowel] diol + ate + dyne + gran + [vowel] mide + log + [consonant] ar + cit + nix + t [vowel] l + max + [consonant] ere + oft + [vowel] line + [consonant] et [vowel] m + [consonant] ade + [consonant] imus + phex + ata + tr [vowel] l + [vowel] nza + [vowel] [consonant] [vowel] x + diff --git a/data/sample-grammars/vaultsofnagoh/turboghoul-hats.gram b/data/sample-grammars/vaultsofnagoh/turboghoul-hats.gram new file mode 100644 index 0000000..57eef10 --- /dev/null +++ b/data/sample-grammars/vaultsofnagoh/turboghoul-hats.gram @@ -0,0 +1,63 @@ +[turboghoul-hat] sack + bucket + coalscuttle + [mask] + [headscarf] + [hood] + [turban] + [hat] + [helmet] + birdcage + goldfish bowl + +pragma initial-rule [turboghoul-hat] + +[eyeholes] with eyeholes + with an eyehole + +pragma suffix-with [turboghoul-hat] [eyeholes] + +[mask] [mask-type] mask + +[mask-type] clown + fanged iron + gimp + guy fawkes + gas + welding + hockey + tights + +[headscarf] [headscarf-type] headscarf + +[headscarf-type] flowery + bedouin + +[hood] [hood-type] hood + +[hood-type] liripided + monastic + +[turban] [turban-type] turban + +[turban-type] elaborate + simple + +[hat] [hat-type] hat + [hat-type] hat with bandana + +[hat-type] stetson + fancy feathered + wizard's pointy + +[helmet] [helmet-type] helmet + [helmet-type] helm + +[helmet-type] monstrous skull + common + knightly + winged + pickelhaub + futuristic + football + extra-spiky chaotic diff --git a/data/sample-grammars/web.gram b/data/sample-grammars/web.gram new file mode 100644 index 0000000..357fc36 --- /dev/null +++ b/data/sample-grammars/web.gram @@ -0,0 +1,227 @@ +[generic-email] [email] + [fake-email] + +[email] [actual+email] + +[fake-email] [actual+fake-email] + +[username] [actual+username] + +[url] [actual+url] + +pragma initial-rule [generic-email] + +pragma export-rule [email] +pragma export-rule [fake-email] +pragma export-rule [username] +pragma export-rule [domain-name] +pragma export-rule [url] +pragma export-rule [big-tld] + +[actual+email] [email-initial] @ [email-trailing] + +[email-initial] [username] + [acronym] + [email-alias] + [full-name] + [username] + [acronym] + [email-alias] + [full-name] + [subdomain-name] + [email-misc] + [email-initial] + [email-initial] + +[email-trailing] [subdomain-name] . [domain] + mail. [domain] + [domain] + [subdomain-name] - [town-name] . [tld] + [last-name] . [tld] + [first-name] . [tld] + [last-name] - [first-name] . [tld] + [first-name] - [last-name] . [tld] + +[actual+fake-email] [email-initial] @ [fake-trailing] + +[fake-trailing] [subdomain-name] . [fake-domain] + [fake-domain] + +[email-alias] abuse + admin + administrator + billing + blog + ceo + cfo + contact + coo + cto + customer + customerservice + dnsadmin + dnsmaster + email + ftp + help + helpdesk + hostmaster + info + ipadmin + mail + mailer-daemon + marketing + marketingscum + news + nobody + noc + no-reply + postman + postmaster + root + sales + security + ssladmin + support + usenet + webjockey + webmaster + www + +[actual+username] [full-name] + [first-name] . [last-name] + [full-name] [1..999] + +[actual+url] http://www. [domain] / + http://www. [domain] / + http:// [subdomain-name] . [domain] / + http://www. [last-name] . [tld] / + http:// [username] . [domain] / + [url-with-path] + [url-with-path] + +[url-with-path] [url-protocol] :// www.geocities.com/ [neighborhood] / [digit-nonzero] [digit] [digit] [digit] / + [url-protocol] :// [url-begin] . [acronym] .net/ [url-username] / + [url-protocol] :// [url-begin] . [town-name] .net/ [url-username] + [url-protocol] :// [subdomain-name] . [acronym] .net/ [url-username] + [url-protocol] :// [subdomain-name] . [town-name] .net/ [url-username] + [url-protocol] :// [subdomain-name] . [last-name] . [big-tld] / [url-username] + [url-protocol] :// [username] . [acronym] .net/ + [url-protocol] :// [username] . [url-state] [us-postalstate] .edu/ + [freshmeat-url] + +[url-protocol] http + http + https + https + ftp + ssh + rsync + gopher + git + +[neighborhood] siliconvalley + heartland + timessquare + +[url-begin] www + www2 + users + members + +[url-username] [username] + ~ [username] + +[url-state] s + n + e + w + se + nw + ne + sw + univ + u + +[domain] [domain-name] . [tld] + [domain-name] . [big-tld] + +[fake-domain] [domain-name] [fake-ending] + +[fake-ending] .con + .con + .not + .null + .usa + .com.uk + .con + .dot + .fake + .faux + .spam + .tld + +[domain-name] [domain+name] + +[domain+name] [acronym] + [random-name] + [last-name] - [last-name] + [first-name] - [last-name] + [letter] - [last-name] + [consonant] [vowel] [consonant] + [consonant-group] [vowel-group] [consonant] + [vowel-group] [consonant-group] + [letter] [vowel] [letter] + [town-name] + [last-name] + [syllable] [syllable] + +[tld] com + com + com + com + com + net + net + org + org + edu + de + ca + com.au + co.uk + fr + nu + to + se + no + +[big-tld] com + com + net + org + +[subdomain-name] [planet] + [planet] + mail + www2 + www [digit] + alpha + beta + gamma + omega + [random-name] + [first-name] + [last-name] + [acronym] + [email-misc] + [email-initial] + [subdomain-name] - [subdomain-name] + +[email-misc] + [us-stateadj] + [town-name] + [complete-many-things] + [major-arcana] + [trademark+drug] + [trademark] + [city] diff --git a/data/sample-grammars/zadrons-pouch.gram b/data/sample-grammars/zadrons-pouch.gram new file mode 100755 index 0000000..f72cf25 --- /dev/null +++ b/data/sample-grammars/zadrons-pouch.gram @@ -0,0 +1,233 @@ +[zadrons-pouch] → a(n) [zadrons-item] + a(n) [quote-item] and a(n) [quote-item] + a(n) [quote-item] and a(n) [quote-item] as well as a(n) [quote-item] + a(n) [quote-item] or a(n) [quote-item] + a(n) [quote-item] or a(n) [quote-item] or maybe a(n) [quote-item] + +pragma initial-rule [zadrons-pouch] + +[quote-item] ( [zadrons-item] ) + +pragma despace-rule [quote-item] + +[zadrons-item] → [egg] + [glove] + [crys-sphere] + [rock] + [figurine] + [vial] + [mini-weapon] + [bag] + [zadron-card] + [rope] + [box] + [wand] + +pragma export-rule [zadrons-item] + +[bag] → bag of [bag-type] + [sack-type] sack + [purse-type] purse + +[bag-type] → holding + tricks + useful items + devouring + dwarf-kind + invisible cloth + monster summoning + monster summoning (summons [creature-choice] ) + +[sack-type] → lunch + recursive + +[purse-type] → everfull + +[box] → [box-type] box + cube of [box-type] + +[box-type] → limited-force + frost-resisting + morphing + self-destructing + pandora + panicking + +[zadron-card] → card of [zad-card-type] + [zad-card-type] card + +[zad-card-type] → fate + teleporting + elusive treasure + spell-storing + many-things + imprisoning + messaging + bounty + [card] + [card] + [card] + +[crys-sphere] → crystal of [crystal-type] + [crys-act] + [crys-act] + [crys-act] + [crys-act] + +[crys-act] → [sphere-type] spheres + [sphere-type] sphere + lens of [lens-type] + [crystal-type] sphere + ball + ball of [crys-suffix] + +pragma prefix-with [crys-act] crystal + +[sphere-type] → microphonic + seeing-eye + immurement + +[lens-type] → detection + +[crystal-type] → prison + radar + seeing + +[crys-suffix] → jumping + scrying + +[egg] → [egg-type] egg + +[egg-type] → copper + stone + golden + white + white/pink + glass + +[figurine] → [fig-material] [fig-animal] + +[fig-material] → golden + onyx + serpentine + ivory + marble + bronze + jade + limestone + +[fig-animal] → lion + dog + owl + goat + elephant + warrior + palace + leprechaun + +[glove] → gauntlets of [gauntlet-type] + gloves of [glove-type] + [glove-type] gloves + +[gauntlet-type] → dexterity + power + +[glove-type] → pushing + choking + bigby + stunning + +[mini-weapon] → minature [weapon-type] + small [weapon-type] + tiny [weapon-type] + [sling-type] sling + [weapon-type] + +[weapon-type] → boomerang + arrow + net + catapult + hammer + sword + club + +[sling-type] → seeking + +[rock] → [pebble-type] pebble + stone of [stone-type] + [stone-type] stone + brick of [brick-type] + [geode-type] geode + +[pebble-type] → inscribed + elemental control + [elemental] control + +[stone-type] → good-luck + weight + blind-defense + metal-clinging + +[brick-type] → flying + +[geode-type] → ioun + +[rope] → [rope-type] rope + rope of [rope-type] + ball of [string-type] [string-kind] + +[rope-type] → trick + entangling + climbing + dancing + tripping + snaring + levitating + self-entangling + +[string-type] → endless + +[string-kind] → string + yarn + +[vial] → vial of [vial-type] + [vial-type] vial + [bottle-type] bottle + [flask-type] flask + +[vial-type] → holding + trapping + experience + unnatural regeneration + +[bottle-type] → ever-smoking + wheezing + blank potion + +[flask-type] → iron + +[wand] → [wand-type] wand + wand of [wand-type] + canceling [wand-type] wand + +[wand-type] → magic missile + [spell-1] + [spell-2] + gusting + life-detecting + zadron + +[spell-1] → frost + fire + lightining + fear + illumination + polymorphing + conjuration + paralyzing + +[spell-2] → [spell2-type] detecting + +[spell2-type] → magic + enemy + secret door/trap diff --git a/data/seniordesign/dbdata.gram b/data/seniordesign/dbdata.gram new file mode 100644 index 0000000..04938ad --- /dev/null +++ b/data/seniordesign/dbdata.gram @@ -0,0 +1,54 @@ +[user-role] student + student + student + student + student + tutor + tutor + tutor + tutor + staff + staff + staff + admin + admin + sysadmin + +pragma export-rule [user-role] + +[dept-id] [synth+deptid] + +[real-deptid] CSIS + MATH + ENGL + PHYS + CHEM + PSYC + +pragma export-rule [dept-id] + +[synth+deptid] [letter] + +pragma suffix-with [synth+deptid] [letter] +pragma suffix-with [synth+deptid] [letter] +pragma suffix-with [synth+deptid] [letter] + +[user-idno] [act-user+idno] + +pragma export-rule [user-idno] + +[act-user+idno] 800 [idno-chain] + 700 [idno-chain] + +[idno-chain] [digit] [digit] [digit] [digit] [digit] [digit] + +[term-code] [2000..2040] 0 [1..9] + [2000..2040] [10..12] + +pragma despace-rule [term-code] +pragma export-rule [term-code] + +[section-code] [letter] [0..9] [0..9] + +pragma despace-rule [section-code] +pragma export-rule [section-code] diff --git a/data/server-config-sample.cfg b/data/server-config-sample.cfg new file mode 100644 index 0000000..90d3baf --- /dev/null +++ b/data/server-config-sample.cfg @@ -0,0 +1,119 @@ +# Load 'long rules' -- Grammars with one rule with a lot of cases +animal sample-grammars/long-data/animal.gram +canada-province sample-grammars/long-data/canada-province.gram +cards sample-grammars/long-data/cards.gram +color sample-grammars/long-data/color.gram +first-name-female sample-grammars/long-data/first-name-female.gram +first-name-male sample-grammars/long-data/first-name-male.gram +geographic-thing sample-grammars/long-data/geographic-thing.gram +last-name sample-grammars/long-data/last-name.gram +letters sample-grammars/long-data/letters.gram +nation sample-grammars/long-data/nation.gram +numbers sample-grammars/long-data/numbers.gram +planet sample-grammars/long-data/planet.gram +real-city sample-grammars/long-data/real-city.gram +real-company sample-grammars/long-data/real-company.gram +relative sample-grammars/long-data/relative.gram +roman-numeral sample-grammars/long-data/roman-numeral.gram +syllables sample-grammars/long-data/syllables.gram +town-name sample-grammars/long-data/town-name.gram +tree sample-grammars/long-data/tree.gram +greek-letters sample-grammars/long-data/greek-letters.gram +japanese-sylls sample-grammars/long-data/japanese-writing.gram + +# Load grammars + +# Set I of grammars +24hr-rpg sample-grammars/24hr-rpg.gram +acronym sample-grammars/acronym.gram +address sample-grammars/address.gram +anime sample-grammars/anime.gram +art-objects sample-grammars/art-objects.gram +awesome-names sample-grammars/awe-names.gram +buzzword sample-grammars/buzzword.gram +career sample-grammars/career.gram +city sample-grammars/city.gram +college sample-grammars/college.gram +company sample-grammars/company.gram +computer sample-grammars/computer.gram +congress sample-grammars/congress.gram +dates sample-grammars/dates.gram +dungeon-enviroment sample-grammars/dungeon-enviroment.gram +elemental sample-grammars/elementals.gram +fantasy-locations sample-grammars/fantasy-locations.gram +fortune sample-grammars/fortune.gram +gemstones sample-grammars/gemstones.gram +genre-fiction sample-grammars/genre-fiction.gram +horror sample-grammars/horror.gram +insults sample-grammars/insults.gram +linux sample-grammars/linux.gram +martial-arts sample-grammars/martial-arts.gram +mary-sue sample-grammars/mary-sue.gram +media sample-grammars/media.gram +mission sample-grammars/mission.gram +names sample-grammars/names.gram +# newspaper sample-grammars/newspaper.gram +numbers sample-grammars/numbers.gram +ordinal sample-grammars/ordinal.gram +organization sample-grammars/organization.gram +part-creature sample-grammars/part-creature.gram +phone-number sample-grammars/phone-number.gram +pokeattacks sample-grammars/pokeattacks.gram +president sample-grammars/president.gram +rune sample-grammars/rune.gram +school sample-grammars/school.gram +slashdot sample-grammars/slashdot.gram +states sample-grammars/states.gram +superhero sample-grammars/superhero.gram +tarotcard sample-grammars/tarotcard.gram +technobabble sample-grammars/technobabble.gram +theory sample-grammars/theory.gram +trademark sample-grammars/trademark.gram +web sample-grammars/web.gram +zadrons-pouch sample-grammars/zadrons-pouch.gram + +# Diablo II items +diabloii-base sample-grammars/diablo-ii/diabloii.gram +diabloii-items sample-grammars/diablo-ii/diabloiiitems.gram +diabloii-perish sample-grammars/diablo-ii/diabloiiperish.gram +diabloii-prefixes sample-grammars/diablo-ii/diabloiiprefixes.gram +diabloii-suffixes sample-grammars/diablo-ii/diabloiisuffixes.gram + +# Vaults of Nagoh +turboghoul-hats sample-grammars/vaultsofnagoh/turboghoul-hats.gram + +# Set II of grammars +repinsults new-sample-grammars/repinsult.gram + +# Drakensang online items +ds-runes new-sample-grammars/drakensang/runes.gram +ds-gems new-sample-grammars/drakensang/gems.gram +ds-armor new-sample-grammars/drakensang/armor.gram + +# Other grammar files + +# Dungeon dressing +abandoned sample-grammars/dungeondressing/abandoned.gram +bedroom sample-grammars/dungeondressing/bedroom.gram +dragonencounter sample-grammars/dungeondressing/dragonencounter.gram +kitchen sample-grammars/dungeondressing/kitchen.gram +monster sample-grammars/dungeondressing/monster.gram + +# RandomTable Wiki +adjective sample-grammars/rtwiki/adjective.gram +bodyparts sample-grammars/rtwiki/bodyparts.gram +color sample-grammars/rtwiki/color.gram +creature sample-grammars/rtwiki/creature.gram +death-cause sample-grammars/rtwiki/death-cause.gram +fantasy-name sample-grammars/rtwiki/fantasy-name.gram +favorite sample-grammars/rtwiki/favorite.gram +guns sample-grammars/rtwiki/guns.gram +item sample-grammars/rtwiki/item.gram +traits sample-grammars/rtwiki/traits.gram + +# Senior design +seniordesign seniordesign/dbdata.gram + +# Misc +700000items misc/700000items.gram +nimble-bimble misc/nimble.gram diff --git a/data/todos.txt b/data/todos.txt new file mode 100644 index 0000000..1de8841 --- /dev/null +++ b/data/todos.txt @@ -0,0 +1,2 @@ +:TODO 5/10/18 Ben Culkin :EasternSun + Finish up the new-style Diablo generator, using Eastern Sun things diff --git a/dotest.sh b/dotest.sh new file mode 100755 index 0000000..a39a012 --- /dev/null +++ b/dotest.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +mvn clean compile exec:java > outp.txt 2> error.txt; + +tail -n +36 outp.txt | view -c "normal! zR" -; diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..1bb647e --- /dev/null +++ b/pom.xml @@ -0,0 +1,88 @@ + + 4.0.0 + + bjc + RGens + 0.0.1-SNAPSHOT + jar + + RGens + http://maven.apache.org + + + UTF-8 + + + + + ossrh + https://oss.sonatype.org/content/repositories/snapshots + + + ossrh + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + + + maven-compiler-plugin + + 1.8 + 1.8 + + + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + + bjc.rgens.parser.RGrammarTest + + + + + + + + + data/ + + + **/*.gram + **/*.cfg + + + + + + + + bjc + BJC-Utils2 + 1.0.0 + + + + com.github.mifmif + generex + 1.0.2 + + + + edu.gatech.gtri.bk-tree + bk-tree + 1.0 + + + + org.apache.commons + commons-text + 1.0 + + + diff --git a/src/main/java/bjc/rgens/ZadronsPouch.java b/src/main/java/bjc/rgens/ZadronsPouch.java new file mode 100644 index 0000000..827d022 --- /dev/null +++ b/src/main/java/bjc/rgens/ZadronsPouch.java @@ -0,0 +1,220 @@ +package bjc.rgens; + +import bjc.utils.funcdata.FunctionalStringTokenizer; +import bjc.utils.funcdata.IList; +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.gen.RandomGrammar; + +/** + * Example showing code manipulate of random grammars + * + * @author ben + */ +public class ZadronsPouch { + /** + * Main method for running application + * + * @param args + * Unused CLI args + */ + public static void main(String[] args) { + ZadronsPouch zp = new ZadronsPouch(); + + for (int i = 0; i < 100; i++) { + IList ls = zp.grammar.generateListValues("[item]", " "); + + StringBuilder sb = new StringBuilder(); + + ls.forEach(sp -> sb.append(sp)); + + System.out.println(sb.toString().replaceAll("\\s+", " ")); + } + } + + private RandomGrammar grammar; + + /** Create a new instance with a grammar */ + public ZadronsPouch() { + grammar = new RandomGrammar<>(); + + /* + * @NOTE + * Should there be some sort of builder sort of interface? + */ + addRule("[item]", + "[egg]", "[glove]", "[crys-sphere]", "[rock]", + "[figurine]", "[vial]", "[mini-weapon]", "[bag]", + "[card]", "[rope]", "[box]", "[wand]"); + + addEggRules(); + addGloveRules(); + addCrysSphereRules(); + addRockRules(); + + addFigurineRules(); + addVialRules(); + addMiniWeaponRules(); + addBagRules(); + + addCardRules(); + addRopeRules(); + addBoxRules(); + addWandRules(); + } + + private void addBagRules() { + addRule("[bag]", + "bag of [bag-type]", "[sack-type] sack", "[purse-type] purse"); + addRule("[bag-type]", + "holding", "tricks", "useful items", + "devouring", "dwarf-kind", "invisible cloth", + "monster summoning"); + addRule("[sack-type]", + "lunch", "recursive"); + addRule("[purse-type]", + "everfull"); + } + + private void addBoxRules() { + addRule("[box]", + "[box-type] box", "cube of [box-type]"); + addRule("[box-type]", + "limited-force", "frost-resisting", "morphing", + "self-destructing", "pandora", "panicking"); + } + + private void addCardRules() { + addRule("[card]", + "card of [card-type]", "[card-type] card"); + addRule("[card-type]", + "fate", "teleporting", "elusive treasure", "spell-storing", + "many-things", "imprisoning", "messaging", "bounty"); + } + + private void addCrysSphereRules() { + addRule("[crys-sphere]", + "[sphere-type] spheres", "[sphere-type] sphere", + "lens of [lens-type]", "[crystal-type] crystal", + "crystal of [crystal-type]", "crystal ball", + "crystal ball of [crys-suffix]"); + addRule("[sphere-type]", + "microphonic", "seeing-eye"); + addRule("[lens-type]", + "detection"); + addRule("[crystal-type]", + "prison", "radar"); + addRule("[crys-suffix]", + "jumping"); + } + + private void addEggRules() { + addRule("[egg]", + "[egg-type] egg"); + addRule("[egg-type]", + "copper", "stone", "golden", + "white", "white/pink", "glass"); + } + + private void addFigurineRules() { + addRule("[figurine]", + "[fig-material] [fig-animal]"); + addRule("[fig-material]", + "golden", "onyx", "serpentine", "ivory", + "marble", "bronze", "jade", "limestone"); + addRule("[fig-animal]", + "lion", "dog", "owl", "goat", + "elephant", "warrior", "palace", "leprechaun"); + } + + private void addGloveRules() { + addRule("[glove]", + "gauntlets of [gauntlet-type]", + "gloves of [glove-type]", + "[glove-type] gloves"); + addRule("[gauntlet-type]", + "dexterity", "power"); + addRule("[glove-type]", + "pushing", "choking", "bigby", "stunning"); + } + + private void addMiniWeaponRules() { + addRule("[mini-weapon]", + "minature [weapon-type]", "small [weapon-type]", + "tiny [weapon-type]", "[sling-type] sling", + "[weapon-type]"); + addRule("[weapon-type]", + "boomerang", "arrow", "net", + "catapult", "hammer", "sword", "club"); + addRule("[sling-type]", + "seeking"); + } + + private void addRockRules() { + addRule("[rock]", + "[pebble-type] pebble", "stone of [stone-type]", + "[stone-type] stone", "brick of [brick-type]", + "[geode-type] geode"); + addRule("[pebble-type]", + "inscribed", "elemental control"); + addRule("[stone-type]", + "good-luck", "weight", + "blind-defense", "metal-clinging"); + addRule("[brick-type]", + "flying"); + addRule("[geode-type]", + "ioun"); + } + + private void addRopeRules() { + addRule("[rope]", + "[rope-type] rope", "rope of [rope-type]", + "ball of [string-type] [string-kind]"); + addRule("[rope-type]", + "trick", "entangling", "climbing", "dancing", + "tripping", "snaring", "levitating", "self-entangling"); + addRule("[string-type]", + "endless"); + addRule("[string-kind]", + "string", "yarn"); + } + + private void addRule(String rule, String... cases) { + IList> cses = new FunctionalList<>(); + + for (String strang : cases) { + cses.add(FunctionalStringTokenizer.fromString(strang).toList(s -> s)); + } + + grammar.makeRule(rule, cses); + } + + private void addVialRules() { + addRule("[vial]", + "vial of [vial-type]", "[vial-type] vial", + "[bottle-type] bottle", "[flask-type] flask"); + addRule("[vial-type]", + "holding", "trapping", + "experience", "unnatural regeneration"); + addRule("[bottle-type]", + "ever-smoking", "wheezing", + "blank potion"); + addRule("[flask-type]", + "iron"); + } + + private void addWandRules() { + addRule("[wand]", + "[wand-type] wand", "wand of [wand-type]", + "canceling [wand-type] wand"); + addRule("[wand-type]", + "magic missile", "[spell-1]", "[spell-2]", + "gusting", "life-detecting", "zadron"); + addRule("[spell-1]", + "frost", "fire", "lightning", "fear", + "illumination", "polymorphing", "conjuration", "paralyzing"); + addRule("[spell-2]", + "[spell2-type] detecting"); + addRule("[spell2-type]", + "magic", "enemy", "secret door/trap"); + } +} diff --git a/src/main/java/bjc/rgens/parser/GrammarException.java b/src/main/java/bjc/rgens/parser/GrammarException.java new file mode 100644 index 0000000..9eaa0a1 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/GrammarException.java @@ -0,0 +1,36 @@ +package bjc.rgens.parser; + +/** + * The exception thrown when something goes wrong while parsing a + * grammar. + * + * @author student + */ +public class GrammarException extends RuntimeException { + /* Serialization ID. */ + private static final long serialVersionUID = -7287427479316953668L; + + /** + * Create a new grammar exception with the specified message. + * + * @param msg + * The message for this exception. + */ + public GrammarException(String msg) { + super(msg); + } + + /** + * Create a new grammar exception with the specified message and + * cause. + * + * @param msg + * The message for this exception. + * + * @param cause + * The cause of this exception. + */ + public GrammarException(String msg, Exception cause) { + super(msg, cause); + } +} diff --git a/src/main/java/bjc/rgens/parser/RGrammar.java b/src/main/java/bjc/rgens/parser/RGrammar.java new file mode 100644 index 0000000..38f38c8 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/RGrammar.java @@ -0,0 +1,491 @@ +package bjc.rgens.parser; + +import bjc.rgens.parser.elements.CaseElement; +import bjc.rgens.parser.elements.LiteralCaseElement; +import bjc.rgens.parser.elements.RangeCaseElement; +import bjc.rgens.parser.elements.RuleCaseElement; +import bjc.rgens.parser.elements.VariableCaseElement; +import bjc.utils.funcutils.StringUtils; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Random; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.text.similarity.LevenshteinDistance; + +import edu.gatech.gtri.bktree.BkTreeSearcher; +import edu.gatech.gtri.bktree.BkTreeSearcher.Match; +import edu.gatech.gtri.bktree.Metric; +import edu.gatech.gtri.bktree.MutableBkTree; + +/** + * Represents a randomized grammar. + * + * @author EVE + */ +public class RGrammar { + /* The max distance between possible alternate rules. */ + private static final int MAX_DISTANCE = 6; + + /* The metric for the levenshtein distance. */ + private static final class LevenshteinMetric implements Metric { + private static LevenshteinDistance DIST; + + static { + DIST = LevenshteinDistance.getDefaultInstance(); + } + + public LevenshteinMetric() { + } + + @Override + public int distance(String x, String y) { + return DIST.apply(x, y); + } + } + + /* The current state during generation. */ + private static class GenerationState { + /* The current string. */ + public StringBuilder contents; + /* The RNG. */ + public Random rnd; + + /* The current set of variables. */ + public Map vars; + + /** + * Create a new generation state. + * + * @param cont + * The string being generated. + * + * @param rand + * The RNG to use. + * + * @param vs + * The variables to use. + */ + public GenerationState(StringBuilder cont, Random rand, Map vs) { + contents = cont; + rnd = rand; + vars = vs; + } + } + + /* The pattern for matching the name of a variable. */ + private static Pattern NAMEVAR_PATTERN = Pattern.compile("\\$(\\w+)"); + + /* The rules of the grammar. */ + private Map rules; + /* The rules imported from other grammars. */ + private Map importRules; + /* The rules exported from this grammar. */ + private Set exportRules; + /* The initial rule of this grammar. */ + private String initialRule; + + /* The tree to use for finding rule suggestions. */ + private BkTreeSearcher ruleSearcher; + + /** + * Create a new randomized grammar using the specified set of rules. + * + * @param ruls + * The rules to use. + */ + public RGrammar(Map ruls) { + rules = ruls; + } + + /** + * Sets the imported rules to use. + * + * Imported rules are checked for rule definitions after local definitions are + * checked. + * + * @param importedRules + * The set of imported rules to use. + */ + public void setImportedRules(Map importedRules) { + importRules = importedRules; + } + + /** + * Generates the data structure backing rule suggestions for unknown rules. + */ + public void generateSuggestions() { + MutableBkTree ruleSuggester = new MutableBkTree<>(new LevenshteinMetric()); + + ruleSuggester.addAll(rules.keySet()); + ruleSuggester.addAll(importRules.keySet()); + + ruleSearcher = new BkTreeSearcher<>(ruleSuggester); + } + + /** + * Generate a string from this grammar, starting from the specified rule. + * + * @param startRule + * The rule to start generating at, or null to use the initial rule + * for this grammar. + * + * @return A possible string from the grammar. + */ + public String generate(String startRule) { + return generate(startRule, new Random(), new HashMap<>()); + } + + /** + * Generate a string from this grammar, starting from the specified rule. + * + * @param startRule + * The rule to start generating at, or null to use the initial rule + * for this grammar. + * + * @param rnd + * The random number generator to use. + * + * @param vars + * The set of variables to use. + * + * @return A possible string from the grammar. + */ + public String generate(String startRule, Random rnd, Map vars) { + String fromRule = startRule; + + if (startRule == null) { + if (initialRule == null) { + throw new GrammarException("Must specify a start rule for grammars with no initial rule"); + } + + fromRule = initialRule; + } else { + if (startRule.equals("")) { + throw new GrammarException("The empty string is not a valid rule name"); + } + } + + RuleCase start = rules.get(fromRule).getCase(rnd); + + StringBuilder contents = new StringBuilder(); + + generateCase(start, new GenerationState(contents, rnd, vars)); + + String body = contents.toString(); + /* + * Collapse duplicate spaces. + */ + body = body.replaceAll("\\s+", " "); + + /* + * Remove extraneous spaces around punctutation marks. + * + * This can be done in the grammars, but it is very tedious to do so. + */ + + /* Handle 's */ + body = body.replaceAll(" 's ", "'s "); + + /* Handle opening/closing punctuation. */ + body = body.replaceAll("([(\\[]) ", " $1"); + body = body.replaceAll(" ([)\\]'\"])", "$1 "); + + /* Remove spaces around series of opening/closing punctuation. */ + body = body.replaceAll("([(\\[])\\s+([(\\[])", "$1$2"); + body = body.replaceAll("([)\\]])\\s+([)\\]])", "$1$2"); + + /* Handle inter-word punctuation. */ + body = body.replaceAll(" ([,:.!])", "$1 "); + + /* Handle intra-word punctuation. */ + body = body.replaceAll("\\s?([-/])\\s?", "$1"); + + /* + * Collapse duplicate spaces. + */ + body = body.replaceAll("\\s+", " "); + + /* + * @TODO 11/01/17 Ben Culkin :RegexRule Replace this once it is no longer + * needed. + */ + body = body.replaceAll("\\s(ish|burg|ton|ville|opolis|field|boro|dale)", "$1"); + + return body; + } + + /* Generate a rule case. */ + private void generateCase(RuleCase start, GenerationState state) { + try { + switch (start.type) { + case NORMAL: + for (CaseElement elm : start.getElements()) { + generateElement(elm, state); + + if (elm.type != CaseElement.ElementType.VARDEF) { + state.contents.append(" "); + } + } + break; + case SPACEFLATTEN: + for (CaseElement elm : start.getElements()) { + generateElement(elm, state); + } + break; + default: + String msg = String.format("Unknown case type '%s'", start.type); + throw new GrammarException(msg); + } + } catch (GrammarException gex) { + String msg = String.format("Error in generating case (%s)", start); + throw new GrammarException(msg, gex); + } + } + + /* Generate a case element. */ + private void generateElement(CaseElement elm, GenerationState state) { + try { + switch (elm.type) { + case LITERAL: { + LiteralCaseElement lit = (LiteralCaseElement)elm; + + state.contents.append(lit.val); + break; + } + case RULEREF: { + RuleCaseElement rle = (RuleCaseElement)elm; + + generateRuleReference(rle, state); + break; + } + case RANGE: { + RangeCaseElement rang = (RangeCaseElement)elm; + + int val = state.rnd.nextInt(rang.end - rang.begin); + val += rang.begin; + + state.contents.append(val); + break; + } + case VARDEF: + generateVarDef(((VariableCaseElement)elm).varName, ((VariableCaseElement)elm).varDef, state); + break; + case EXPVARDEF: + generateExpVarDef(((VariableCaseElement)elm).varName, ((VariableCaseElement)elm).varDef, state); + break; + default: + String msg = String.format("Unknown element type '%s'", elm.type); + throw new GrammarException(msg); + } + } catch (GrammarException gex) { + String msg = String.format("Error in generating case element (%s)", elm); + throw new GrammarException(msg, gex); + } + } + + /* Generate a expanding variable definition. */ + private void generateExpVarDef(String name, String defn, GenerationState state) { + GenerationState newState = new GenerationState(new StringBuilder(), state.rnd, state.vars); + + if (rules.containsKey(defn)) { + RuleCase destCase = rules.get(defn).getCase(); + + generateCase(destCase, newState); + } else if (importRules.containsKey(defn)) { + RGrammar destGrammar = importRules.get(defn); + String res = destGrammar.generate(defn, state.rnd, state.vars); + + newState.contents.append(res); + } else { + String msg = String.format("No rule '%s' defined", defn); + throw new GrammarException(msg); + } + + state.vars.put(name, newState.contents.toString()); + } + + /* Generate a variable definition. */ + private static void generateVarDef(String name, String defn, GenerationState state) { + state.vars.put(name, defn); + } + + /* Generate a rule reference. */ + private void generateRuleReference(RuleCaseElement elm, GenerationState state) { + String refersTo = elm.val; + + GenerationState newState = new GenerationState(new StringBuilder(), state.rnd, state.vars); + + if (refersTo.contains("$")) { + /* Parse variables */ + String refBody = refersTo.substring(1, refersTo.length() - 1); + + if (refBody.contains("-")) { + /* Handle dependent rule names. */ + StringBuffer nameBuffer = new StringBuffer(); + + Matcher nameMatcher = NAMEVAR_PATTERN.matcher(refBody); + + while (nameMatcher.find()) { + String var = nameMatcher.group(1); + + if (!state.vars.containsKey(var)) { + String msg = String.format("No variable '%s' defined", var); + throw new GrammarException(msg); + } + + String name = state.vars.get(var); + + if (name.contains(" ")) { + throw new GrammarException("Variables substituted into names cannot contain spaces"); + } else if (name.equals("")) { + throw new GrammarException("Variables substituted into names cannot be empty"); + } + + nameMatcher.appendReplacement(nameBuffer, name); + } + + nameMatcher.appendTail(nameBuffer); + + refersTo = "[" + nameBuffer.toString() + "]"; + } else { + /* Handle string references. */ + if (refBody.equals("$")) { + throw new GrammarException("Cannot refer to unnamed variables"); + } + + String key = refBody.substring(1); + + if (!state.vars.containsKey(key)) { + String msg = String.format("No variable '%s' defined", key); + throw new GrammarException(msg); + } + + state.contents.append(state.vars.get(key)); + + return; + } + } + + if (refersTo.startsWith("[^")) { + refersTo = "[" + refersTo.substring(2); + + RGrammar dst = importRules.get(refersTo); + + newState.contents.append(dst.generate(refersTo, state.rnd, state.vars)); + } else if (rules.containsKey(refersTo)) { + RuleCase cse = rules.get(refersTo).getCase(state.rnd); + + generateCase(cse, newState); + } else if (importRules.containsKey(refersTo)) { + RGrammar dst = importRules.get(refersTo); + + newState.contents.append(dst.generate(refersTo, state.rnd, state.vars)); + } else { + if (ruleSearcher != null) { + Set> results = ruleSearcher.search(refersTo, MAX_DISTANCE); + + String[] resArray = results.stream().map(Match::getMatch).toArray((i) -> new String[i]); + + String msg = String.format("No rule '%s' defined (perhaps you meant %s?)", refersTo, + StringUtils.toEnglishList(resArray, false)); + + throw new GrammarException(msg); + } + + String msg = String.format("No rule '%s' defined", refersTo); + throw new GrammarException(msg); + } + + if (refersTo.contains("+")) { + /* Rule names with pluses in them get space-flattened */ + state.contents.append(newState.contents.toString().replaceAll("\\s+", "")); + } else { + state.contents.append(newState.contents.toString()); + } + } + + /** + * Get the initial rule of this grammar. + * + * @return The initial rule of this grammar. + */ + public String getInitialRule() { + return initialRule; + } + + /** + * Set the initial rule of this grammar. + * + * @param initRule + * The initial rule of this grammar, or null to say there is no + * initial rule. + */ + public void setInitialRule(String initRule) { + /* Passing null, nulls our initial rule. */ + if (initRule == null) { + this.initialRule = null; + return; + } + + if (initRule.equals("")) { + throw new GrammarException("The empty string is not a valid rule name"); + } else if (!rules.containsKey(initRule)) { + String msg = String.format("No rule '%s' local to this grammar defined.", initRule); + + throw new GrammarException(msg); + } + + initialRule = initRule; + } + + /** + * Gets the rules exported by this grammar. + * + * The initial rule is exported by default if specified. + * + * @return The rules exported by this grammar. + */ + public Set getExportedRules() { + Set res = new HashSet<>(); + + for (String rname : exportRules) { + if (!rules.containsKey(rname)) { + String msg = String.format("No rule '%s' local to this grammar defined", initialRule); + + throw new GrammarException(msg); + } + + res.add(rules.get(rname)); + } + + if (initialRule != null) { + res.add(rules.get(initialRule)); + } + + return res; + } + + /** + * Set the rules exported by this grammar. + * + * @param exportedRules + * The rules exported by this grammar. + */ + public void setExportedRules(Set exportedRules) { + exportRules = exportedRules; + } + + /** + * Get all the rules in this grammar. + * + * @return All the rules in this grammar. + */ + public Map getRules() { + return rules; + } +} diff --git a/src/main/java/bjc/rgens/parser/RGrammarBuilder.java b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java new file mode 100644 index 0000000..b4cb04a --- /dev/null +++ b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java @@ -0,0 +1,246 @@ +package bjc.rgens.parser; + +import bjc.rgens.parser.elements.CaseElement; +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.IList; + +import static bjc.rgens.parser.RuleCase.CaseType.*; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * Construct randomized grammars piece by piece. + * + * @author EVE + */ +public class RGrammarBuilder { + /* The rules being built. */ + private Map rules; + /* The current set of exported rules. */ + private Set exportedRules; + /* The current initial rule. */ + private String initialRule; + + /** Create a new randomized grammar builder. */ + public RGrammarBuilder() { + rules = new HashMap<>(); + + exportedRules = new HashSet<>(); + } + + /** + * Get or create a rule by the given name. + * + * @param rName + * The name of the rule. + * + * @return + * The rule by that name, or a new one if none existed. + */ + public Rule getOrCreateRule(String rName) { + if(rName == null) + throw new NullPointerException("Rule name must not be null"); + else if(rName.equals("")) + throw new IllegalArgumentException("The empty string is not a valid rule name"); + + if(rules.containsKey(rName)) + return rules.get(rName); + else { + Rule ret = new Rule(rName); + + rules.put(rName, ret); + + return ret; + } + } + + /** + * Convert this builder into a grammar. + * + * @return + * The grammar built by this builder + */ + public RGrammar toRGrammar() { + RGrammar grammar = new RGrammar(rules); + + grammar.setInitialRule(initialRule); + + grammar.setExportedRules(exportedRules); + + return grammar; + } + + /** + * Set the initial rule of the grammar. + * + * @param init + * The initial rule of the grammar. + * + * @throws IllegalArgumentException + * If the rule is either not valid or not defined in the grammar. + */ + public void setInitialRule(String init) { + if (init == null) { + throw new NullPointerException("init must not be null"); + } else if (init.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } + + initialRule = init; + } + + /** + * Add an exported rule to this grammar. + * + * @param export + * The name of the rule to export. + * + * @throws IllegalArgumentException + * If the rule is either not valid or not defined in the grammar. + */ + public void addExport(String export) { + if (export == null) { + throw new NullPointerException("Export name must not be null"); + } else if (export.equals("")) { + throw new NullPointerException("The empty string is not a valid rule name"); + } + + exportedRules.add(export); + } + + /** + * Suffix a given case element to every case of a specific rule. + * + * @param ruleName + * The rule to suffix. + * + * @param suffix + * The suffix to add. + * + * @throws IllegalArgumentException + * If the rule name is either invalid or not defined by this + * grammar, or if the suffix is invalid. + */ + public void suffixWith(String ruleName, String suffix) { + if (ruleName == null) { + throw new NullPointerException("Rule name must not be null"); + } else if (ruleName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } else if(!rules.containsKey(ruleName)) { + String msg = String.format("Rule '%s' is not a valid rule name."); + + throw new IllegalArgumentException(msg); + } + + CaseElement element = CaseElement.createElement(suffix); + + FunctionalList newCases = new FunctionalList<>(); + + IList caseList = rules.get(ruleName).getCases(); + for (RuleCase ruleCase : caseList) { + FunctionalList newCase = new FunctionalList<>(); + + for(CaseElement elm : ruleCase.getElements()) { + newCase.add(elm); + } + + newCase.add(element); + + newCases.add(new RuleCase(NORMAL, newCase)); + } + + + for (RuleCase newCase : newCases) { + caseList.add(newCase); + } + } + + /** + * Prefix a given case element to every case of a specific rule. + * + * @param ruleName + * The rule to prefix. + * + * @param prefix + * The prefix to add. + * + * @throws IllegalArgumentException + * If the rule name is either invalid or not defined by this + * grammar, or if the prefix is invalid. + */ + public void prefixWith(String ruleName, String prefix) { + if (ruleName == null) { + throw new NullPointerException("Rule name must not be null"); + } else if (ruleName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } else if(!rules.containsKey(ruleName)) { + String msg = String.format("Rule '%s' is not a valid rule name."); + + throw new IllegalArgumentException(msg); + } + + CaseElement element = CaseElement.createElement(prefix); + + FunctionalList newCases = new FunctionalList<>(); + + IList caseList = rules.get(ruleName).getCases(); + for (RuleCase ruleCase : caseList) { + FunctionalList newCase = new FunctionalList<>(); + + newCase.add(element); + + for(CaseElement elm : ruleCase.getElements()) { + newCase.add(elm); + } + + newCases.add(new RuleCase(NORMAL, newCase)); + } + + + for (RuleCase newCase : newCases) { + caseList.add(newCase); + } + } + + public void despaceRule(String ruleName) { + if (ruleName == null) { + throw new NullPointerException("ruleName must not be null"); + } else if (ruleName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } + + IList caseList = rules.get(ruleName).getCases(); + + IList newCaseList = new FunctionalList<>(); + + for(RuleCase cse : caseList) { + newCaseList.add(new RuleCase(SPACEFLATTEN, cse.getElements())); + } + + rules.get(ruleName).replaceCases(newCaseList); + } + + public void regexizeRule(String rule, String pattern) { + if (rule == null) { + throw new NullPointerException("rule must not be null"); + } else if(pattern == null) { + throw new NullPointerException("pattern must not be null"); + } else if (rule.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } + + IList caseList = rules.get(rule).getCases(); + + IList newCaseList = new FunctionalList<>(); + + for(RuleCase cse : caseList) { + newCaseList.add(new RegexRuleCase(cse.getElements(), pattern)); + } + + rules.get(rule).replaceCases(newCaseList); + + } +} diff --git a/src/main/java/bjc/rgens/parser/RGrammarFormatter.java b/src/main/java/bjc/rgens/parser/RGrammarFormatter.java new file mode 100644 index 0000000..a2454dc --- /dev/null +++ b/src/main/java/bjc/rgens/parser/RGrammarFormatter.java @@ -0,0 +1,97 @@ +package bjc.rgens.parser; + +import bjc.rgens.parser.elements.CaseElement; +import bjc.utils.funcdata.IList; + +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * Format randomized grammars to strings properly. + * + * @author EVE + */ +public class RGrammarFormatter { + /** + * Format a grammar into a file that represents that grammar. + * + * @param gram + * The grammar to format. + * + * @return + * The formatted grammar. + */ + public static String formatGrammar(RGrammar gram) { + StringBuilder sb = new StringBuilder(); + + Map rules = gram.getRules(); + + String initRuleName = gram.getInitialRule(); + + Set processedRules = new HashSet<>(); + + if (initRuleName != null) { + processRule(rules.get(initRuleName), sb); + + processedRules.add(initRuleName); + } + + for (Rule rule : rules.values()) { + if (!processedRules.contains(rule.name)) { + sb.append("\n\n"); + + processRule(rule, sb); + } + + processedRules.add(rule.name); + } + + return sb.toString().trim(); + } + + /* Format a rule. */ + private static void processRule(Rule rule, StringBuilder sb) { + IList cases = rule.getCases(); + + StringBuilder ruleBuilder = new StringBuilder(); + + ruleBuilder.append(rule.name); + ruleBuilder.append(" \u2192 "); + + int markerPos = ruleBuilder.length(); + + processCase(cases.first(), ruleBuilder); + + sb.append(ruleBuilder.toString().trim()); + + ruleBuilder = new StringBuilder(); + + for (RuleCase cse : cases.tail()) { + sb.append("\n\t"); + + for (int i = 8; i < markerPos; i++) { + ruleBuilder.append(" "); + } + + processCase(cse, ruleBuilder); + + sb.append(ruleBuilder.toString()); + + ruleBuilder = new StringBuilder(); + } + + } + + /* Format a case. */ + private static void processCase(RuleCase cse, StringBuilder sb) { + /* Process each element, adding a space. */ + for (CaseElement element : cse.getElements()) { + sb.append(element.toString()); + sb.append(" "); + } + + /* Remove the trailing space. */ + sb.deleteCharAt(sb.length() - 1); + } +} diff --git a/src/main/java/bjc/rgens/parser/RGrammarParser.java b/src/main/java/bjc/rgens/parser/RGrammarParser.java new file mode 100644 index 0000000..3a357b1 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/RGrammarParser.java @@ -0,0 +1,394 @@ +package bjc.rgens.parser; + +import bjc.rgens.parser.elements.CaseElement; +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.IList; +import bjc.utils.funcutils.TriConsumer; +import bjc.utils.ioutils.blocks.Block; +import bjc.utils.ioutils.blocks.BlockReader; +import bjc.utils.ioutils.blocks.SimpleBlockReader; + +import java.io.Reader; +import java.io.StringReader; +import java.util.HashMap; +import java.util.Map; + +/** + * Reads {@link RGrammar} from a input stream. + * + * @author student + */ +public class RGrammarParser { + /** + * Whether we are in debug mode or not. + */ + public static final boolean DEBUG = false; + + /* + * Templates for level-dependent delimiters. + */ + /* Pragma block delimiter. */ + private static final String TMPL_PRAGMA_BLOCK_DELIM = "\\R\\t{%d}(?!\\t)"; + /* Rule declaration block delimiter. */ + private static final String TMPL_RULEDECL_BLOCK_DELIM = "\\R\\t\\t{%d}"; + /* Where block delimiter. */ + private static final String TMPL_WHERE_BLOCK_DELIM = "\\R\\t{%d}(?:in|end)\\R"; + /* Top-level block delimiter. */ + private static final String TMPL_TOPLEVEL_BLOCK_DELIM = "\\R\\t{%d}\\.?\\R"; + + /* Pragma impls. */ + private static Map> pragmas; + + /* Initialize pragmas. */ + static { + pragmas = new HashMap<>(); + + pragmas.put("initial-rule", (body, build, level) -> { + int sep = body.indexOf(' '); + + if (sep != -1) { + String msg = "Initial-rule pragma takes only one argument, the name of the initial rule"; + throw new GrammarException(msg); + } + + build.setInitialRule(body); + }); + + pragmas.put("despace-rule", (body, build, level) -> { + int sep = body.indexOf(' '); + + if (sep != -1) { + String msg = "despace-rule pragma takes only one argument, the name of the rule to despace"; + throw new GrammarException(msg); + } + + build.despaceRule(body); + }); + + pragmas.put("export-rule", (body, build, level) -> { + String[] exports = body.split(" "); + + for (String export : exports) { + build.addExport(export); + } + }); + + pragmas.put("regex-rule", (body, build, level) -> { + int nameIndex = body.indexOf(" "); + + if(nameIndex == -1) { + throw new GrammarException("Regex-rule pragma takes two arguments: the name of the rule to process, then the regex to apply after the rule has been generated."); + } + + String name = body.substring(0, nameIndex).trim(); + String patt = body.substring(nameIndex + 1).trim(); + + build.regexizeRule(name, patt); + }); + + pragmas.put("suffix-with", (body, build, level) -> { + String[] parts = body.trim().split(" "); + + if (parts.length != 2) { + String msg = "Suffix-with pragma takes two arguments, the name of the rule to suffix, then what to suffix it with"; + + throw new GrammarException(msg); + } + + build.suffixWith(parts[0], parts[1]); + }); + + pragmas.put("prefix-with", (body, build, level) -> { + String[] parts = body.trim().split(" "); + + if (parts.length != 2) { + String msg = "Prefix-with pragma takes two arguments, the name of the rule to prefix, then what to prefix it with"; + + throw new GrammarException(msg); + } + + build.prefixWith(parts[0], parts[1]); + }); + } + + /** + * Read a {@link RGrammar} from an input stream. + * + * @param is + * The input stream to read from. + * + * @return + * The grammar represented by the stream. + * + * @throws GrammarException + * Thrown if the grammar has a syntax error. + */ + public static RGrammar readGrammar(Reader is) throws GrammarException { + String dlm = String.format(TMPL_TOPLEVEL_BLOCK_DELIM, 0); + + try (BlockReader reader = new SimpleBlockReader(dlm, is)) { + if (!reader.hasNextBlock()) { + throw new GrammarException("At least one top-level block must be present"); + } + + try { + RGrammarBuilder build = new RGrammarBuilder(); + + reader.forEachBlock((block) -> { + if(DEBUG) + System.err.printf("Handling top-level block (%s)\n", block); + + handleBlock(build, block.contents, 0); + }); + + return build.toRGrammar(); + } catch (GrammarException gex) { + String msg = String.format("Error in block (%s)", reader.getBlock()); + throw new GrammarException(msg, gex); + } + } catch (Exception ex) { + throw new GrammarException("Unknown error handling block", ex); + } + } + + /* Throughout these, level indicates the nesting level of that construct. */ + + /* Handles an arbitrary block. */ + private static void handleBlock(RGrammarBuilder build, String block, + int level) throws GrammarException { + /* Discard empty blocks. */ + if (block.equals("") || block.matches("\\R")) + return; + + int typeSep = block.indexOf(' '); + + if (typeSep == -1) { + throw new GrammarException( + "A block must start with a introducer, followed by a space, then the rest of the block"); + } + + String blockType = block.substring(0, typeSep).trim(); + + if (blockType.equalsIgnoreCase("pragma")) { + handlePragmaBlock(block, build, level); + } else if (blockType.startsWith("[")) { + handleRuleBlock(block, build, level); + } else if (blockType.equalsIgnoreCase("where")) { + handleWhereBlock(block, build, level); + } else if (blockType.equalsIgnoreCase("#")) { + if(DEBUG) + System.err.printf("Handled comment block (%s)\n", block); + /* + * Comment block. + * + * @TODO 10/11/17 Ben Culkin :GrammarComment + * Attach these to the grammar somehow so that they + * can be re-output during formatting. + */ + return; + } else { + String msg = String.format("Unknown block type: '%s'", blockType); + throw new GrammarException(msg); + } + } + + /* Handle reading a block of pragmas. */ + private static void handlePragmaBlock(String block, RGrammarBuilder build, + int level) throws GrammarException { + String dlm = String.format(TMPL_PRAGMA_BLOCK_DELIM, level); + try (BlockReader pragmaReader = new SimpleBlockReader(dlm, new StringReader(block))) { + try { + pragmaReader.forEachBlock((pragma) -> { + if(DEBUG) + System.err.printf("Handled pragma block (%s)\n", pragma); + + String pragmaContents = pragma.contents; + + int pragmaSep = pragmaContents.indexOf(' '); + + if (pragmaSep == -1) { + String msg = "A pragma invocation must consist of the word pragma, followed by a space, then the body of the pragma"; + + throw new GrammarException(msg); + } + + String pragmaLeader = pragmaContents.substring(0, pragmaSep); + String pragmaBody = pragmaContents.substring(pragmaSep + 1); + + if (!pragmaLeader.equalsIgnoreCase("pragma")) { + String msg = String.format("Illegal line leader in pragma block: '%s'", pragmaLeader); + + throw new GrammarException(msg); + } + + handlePragma(pragmaBody, build, level); + }); + } catch (GrammarException gex) { + Block pragma = pragmaReader.getBlock(); + String msg = String.format("Error in pragma: (%s)", pragma); + + throw new GrammarException(msg, gex); + } + } catch (Exception ex) { + throw new GrammarException("Unknown error handling pragma block", ex); + } + } + + /* Handle an individual pragma in a block. */ + private static void handlePragma(String pragma, RGrammarBuilder build, + int level) throws GrammarException { + int bodySep = pragma.indexOf(' '); + + if (bodySep == -1) + bodySep = pragma.length(); + + String pragmaName = pragma.substring(0, bodySep); + String pragmaBody = pragma.substring(bodySep + 1); + + if (pragmas.containsKey(pragmaName)) { + try { + if(DEBUG) + System.err.printf("Handled pragma '%s'\n", pragmaName); + + pragmas.get(pragmaName).accept(pragmaBody, build, level); + } catch (GrammarException gex) { + String msg = String.format("Error in pragma '%s'", pragmaName); + + throw new GrammarException(msg, gex); + } + } else { + String msg = String.format("Unknown pragma '%s'", pragmaName); + + throw new GrammarException(msg); + } + } + + /* Handle a block of a rule declaration and one or more cases. */ + private static void handleRuleBlock(String ruleBlock, RGrammarBuilder build, + int level) throws GrammarException { + String dlm = String.format(TMPL_RULEDECL_BLOCK_DELIM, level); + try (BlockReader ruleReader = new SimpleBlockReader(dlm, new StringReader(ruleBlock))) { + try { + if (ruleReader.hasNextBlock()) { + /* Rule with a declaration followed by multiple cases. */ + ruleReader.nextBlock(); + Block declBlock = ruleReader.getBlock(); + + String declContents = declBlock.contents; + Rule rl = handleRuleDecl(build, declContents); + + ruleReader.forEachBlock((block) -> { + /* Ignore comment lines. */ + if(block.contents.trim().startsWith("#")) return; + + handleRuleCase(block.contents, build, rl); + }); + } else { + /* Rule with a declaration followed by a single case. */ + handleRuleDecl(build, ruleBlock); + } + } catch (GrammarException gex) { + String msg = String.format("Error in rule case (%s)", ruleReader.getBlock()); + + throw new GrammarException(msg, gex); + } + } catch (Exception ex) { + throw new GrammarException("Unknown error handling rule block", ex); + } + } + + /* Handle a rule declaration and its initial case. */ + private static Rule handleRuleDecl(RGrammarBuilder build, String declContents) { + int declSep = declContents.indexOf("\u2192"); + + if (declSep == -1) { + /* + * @NOTE + * We should maybe remove support for the old + * syntax at some point. However, maybe we don't + * want to do so so as to make inputting grammars + * easier. + */ + declSep = declContents.indexOf(' '); + + if (declSep == -1) { + String msg = "A rule must be given at least one case in its declaration, and seperated from that case by \u2192"; + + throw new GrammarException(msg); + } + } + + String ruleName = declContents.substring(0, declSep).trim(); + String ruleBody = declContents.substring(declSep + 1).trim(); + + if (ruleName.equals("")) { + throw new GrammarException("The empty string is not a valid rule name"); + } + + Rule rul = build.getOrCreateRule(ruleName); + + handleRuleCase(ruleBody, build, rul); + + return rul; + } + + /* Handle a single case of a rule. */ + private static void handleRuleCase(String cse, RGrammarBuilder build, Rule rul) { + IList caseParts = new FunctionalList<>(); + + for (String csepart : cse.split(" ")) { + String partToAdd = csepart.trim(); + + /* Ignore empty parts */ + if (partToAdd.equals("")) + continue; + + caseParts.add(CaseElement.createElement(partToAdd)); + } + + rul.addCase(new RuleCase(RuleCase.CaseType.NORMAL, caseParts)); + } + + /* Handle a where block (a block with local rules). */ + private static void handleWhereBlock(String block, RGrammarBuilder build, + int level) throws GrammarException { + int nlIndex = block.indexOf("\\n"); + + if (nlIndex == -1) { + throw new GrammarException("Where block must be a context followed by a body"); + } + + String trimBlock = block.substring(nlIndex).trim(); + + String whereDelim = String.format(TMPL_WHERE_BLOCK_DELIM, level); + + try (BlockReader whereReader = new SimpleBlockReader(whereDelim, + new StringReader(trimBlock))) { + try { + Block whereCtx = whereReader.next(); + + StringReader ctxReader = new StringReader(whereCtx.contents.trim()); + String ctxDelim = String.format(TMPL_TOPLEVEL_BLOCK_DELIM, level + 1); + + try (BlockReader bodyReader = new SimpleBlockReader(ctxDelim, ctxReader)) { + @SuppressWarnings("unused") + Block whereBody = whereReader.next(); + + /** + * @TODO 10/11/17 Ben Culkin :WhereBlocks + * Implement where blocks. + * + * A where block has the context evaluated + * in a new context, and the body executed + * in that context. + */ + } + } catch (GrammarException gex) { + throw new GrammarException(String.format("Error in where block (%s)", + whereReader.getBlock()), gex); + } + } catch (Exception ex) { + throw new GrammarException("Unknown error in where block", ex); + } + } +} diff --git a/src/main/java/bjc/rgens/parser/RGrammarSet.java b/src/main/java/bjc/rgens/parser/RGrammarSet.java new file mode 100644 index 0000000..975510a --- /dev/null +++ b/src/main/java/bjc/rgens/parser/RGrammarSet.java @@ -0,0 +1,290 @@ +package bjc.rgens.parser; + +import java.io.BufferedReader; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; +import java.util.Scanner; +import java.util.Set; + +/** + * Represents a set of grammars that can share rules via exports. + * + * @author EVE + */ +public class RGrammarSet { + /* Contains all the grammars in this set. */ + private Map grammars; + + /* Contains all the exported rules from grammars. */ + private Map exportedRules; + + /* Contains which export came from which grammar. */ + private Map exportFrom; + + /* Contains which file a grammar was loaded from. */ + private Map loadedFrom; + + /** Create a new set of randomized grammars. */ + public RGrammarSet() { + grammars = new HashMap<>(); + + exportedRules = new HashMap<>(); + + exportFrom = new HashMap<>(); + loadedFrom = new HashMap<>(); + } + + /** + * Add a grammar to this grammar set. + * + * @param grammarName + * The name of the grammar to add. + * + * @param gram + * The grammar to add. + * + * @throws IllegalArgumentException + * If the grammar name is invalid. + */ + public void addGrammar(String grammarName, RGrammar gram) { + /* Make sure a grammar is valid. */ + if (grammarName == null) { + throw new NullPointerException("Grammar name must not be null"); + } else if (gram == null) { + throw new NullPointerException("Grammar must not be null"); + } else if (grammarName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid grammar name"); + } + + grammars.put(grammarName, gram); + + /* Process exports from the grammar. */ + for (Rule export : gram.getExportedRules()) { + exportedRules.put(export.name, gram); + + exportFrom.put(export.name, grammarName); + } + + /* Add exports to grammar. */ + gram.setImportedRules(exportedRules); + } + + /** + * Get a grammar from this grammar set. + * + * @param grammarName + * The name of the grammar to get. + * + * @return + * The grammar with that name. + * + * @throws IllegalArgumentException + * If the grammar name is invalid or not present in this set. + */ + public RGrammar getGrammar(String grammarName) { + /* Check arguments. */ + if (grammarName == null) { + throw new NullPointerException("Grammar name must not be null"); + } else if (grammarName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid grammar name"); + } else if (!grammars.containsKey(grammarName)) { + String msg = String.format("No grammar with name '%s' found", grammarName); + + throw new IllegalArgumentException(msg); + } + + return grammars.get(grammarName); + } + + /** + * Get the grammar a rule was exported from. + * + * @param exportName + * The name of the exported rule. + * + * @return + * The grammar the exported rule came from. + * + * @throws IllegalArgumentException + * If the export name is invalid or not present in this set. + */ + public RGrammar getExportSource(String exportName) { + /* Check arguments. */ + if (exportName == null) { + throw new NullPointerException("Export name must not be null"); + } else if (exportName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } else if (!exportedRules.containsKey(exportName)) { + String msg = String.format("No export with name '%s' defined", exportName); + throw new IllegalArgumentException(msg); + } + + return exportedRules.get(exportName); + } + + /** + * Get the source of an exported rule. + * + * This will often be a grammar name, but is not required to be one. + * + * @param exportName + * The name of the exported rule. + * + * @return + * The source of an exported rule. + * + * @throws IllegalArgumentException + * If the exported rule is invalid or not present in this set. + */ + public String exportedFrom(String exportName) { + /* Check arguments. */ + if (exportName == null) { + throw new NullPointerException("Export name must not be null"); + } else if (exportName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } else if (!exportedRules.containsKey(exportName)) { + String msg = String.format("No export with name '%s' defined", exportName); + + throw new IllegalArgumentException(msg); + } + + return exportFrom.getOrDefault(exportName, "Unknown"); + } + + /** + * Get the source of an grammar + * + * This will often be a file name, but is not required to be one. + * + * @param grammarName + * The name of the exported grammar. + * + * @return + * The source of an exported grammar. + * + * @throws IllegalArgumentException + * If the exported grammar is invalid or not present in this set. + */ + public String loadedFrom(String grammarName) { + /* Check arguments. */ + if (grammarName == null) { + throw new NullPointerException("Grammar name must not be null"); + } else if (grammarName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid grammar name"); + } else if (grammarName.equals("unknown")) { + return grammarName; + } else if (!grammars.containsKey(grammarName)) { + String msg = String.format("No grammar with name '%s' defined", grammarName); + throw new IllegalArgumentException(msg); + } + + return loadedFrom.getOrDefault(grammarName, "Unknown"); + } + + /** + * Get the names of all the grammars in this set. + * + * @return + * The names of all the grammars in this set. + */ + public Set getGrammars() { + return grammars.keySet(); + } + + /** + * Get the names of all the exported rules in this set. + * + * @return + * The names of all the exported rules in this set. + */ + public Set getExportedRules() { + return exportedRules.keySet(); + } + + /** + * Load a grammar set from a configuration file. + * + * @param cfgFile + * The configuration file to load from. + * + * @return + * The grammar set created by the configuration file. + * + * @throws IOException + * If something goes wrong during configuration loading. + */ + public static RGrammarSet fromConfigFile(Path cfgFile) throws IOException { + /* The grammar set to hand back. */ + RGrammarSet set = new RGrammarSet(); + + /* Get the directory that contains the config file. */ + Path cfgParent = cfgFile.getParent(); + + try(Scanner scn = new Scanner(cfgFile)) { + /* Execute lines from the configuration file. */ + while (scn.hasNextLine()) { + String ln = scn.nextLine().trim(); + + /* Ignore blank/comment lines. */ + if (ln.equals("")) continue; + + if (ln.startsWith("#")) continue; + + /* Handle mixed whitespace. */ + ln = ln.replaceAll("\\s+", " "); + + /* + * Get the place where the name of the grammar + * ends. + */ + int nameIdx = ln.indexOf(" "); + if (nameIdx == -1) { + throw new GrammarException("Must specify a name for a loaded grammar"); + } + + /* Name and path of grammar. */ + String name = ln.substring(0, nameIdx); + Path path = Paths.get(ln.substring(nameIdx).trim()); + + /* + * Convert from configuration relative path to + * absolute path. + */ + Path convPath = cfgParent.resolve(path.toString()); + + //if(Files.isDirectory(convPath)) { + // /* @TODO implement subset grammars */ + // throw new GrammarException("Sub-grammar sets aren't implemented yet"); + //} else if (convPath.getFileName().endsWith(".gram")) { + /* Load grammar file. */ + try { + BufferedReader fis = Files.newBufferedReader(convPath); + RGrammar gram = RGrammarParser.readGrammar(fis); + fis.close(); + + /* Add grammar to the set. */ + set.addGrammar(name, gram); + + /* + * Mark where the grammar came + * from. + */ + set.loadedFrom.put(name, path.toString()); + } catch (GrammarException gex) { + String msg = String.format("Error loading file '%s'", path); + throw new GrammarException(msg, gex); + } + //} else { + // String msg = String.format("Unrecognized file type '%s'", convPath.getFileName()); + // throw new GrammarException(msg); + //} + } + } + + return set; + } +} diff --git a/src/main/java/bjc/rgens/parser/RGrammarTest.java b/src/main/java/bjc/rgens/parser/RGrammarTest.java new file mode 100644 index 0000000..4b1f283 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/RGrammarTest.java @@ -0,0 +1,72 @@ +package bjc.rgens.parser; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * Test for new grammar syntax. + * + * @author EVE + */ +public class RGrammarTest { + /** + * Main method. + * + * @param args + * Unused CLI args. + */ + public static void main(String[] args) { + URL rsc = RGrammarTest.class.getResource("/server-config-sample.cfg"); + + try { + /* Load a grammar set. */ + Path cfgPath = Paths.get(rsc.toURI()); + RGrammarSet gramSet = RGrammarSet.fromConfigFile(cfgPath); + + /* Generate rule suggestions for all the grammars in the set. */ + for (String gramName : gramSet.getGrammars()) { + gramSet.getGrammar(gramName).generateSuggestions(); + } + + /* Generate for each exported rule. */ + for (String exportName : gramSet.getExportedRules()) { + /* Where we loaded the rule from. */ + String loadSrc = gramSet.loadedFrom(gramSet.exportedFrom(exportName)); + + System.out.println(); + System.out.printf("Generating for exported rule '%s' from file '%s'\n", exportName, loadSrc); + + RGrammar grammar = gramSet.getExportSource(exportName); + for (int i = 0; i < 100; i++) { + try { + String res = grammar.generate(exportName); + if(exportName.contains("+")) res = res.replaceAll("\\s+", ""); + + if(res.length() > 120) { + System.out.printf("\t\n\tContents: %s\n\t\n", res); + } else { + System.out.printf("\tContents: %s\n", res); + } + } catch (GrammarException gex) { + /* Print out errors with generation. */ + String fmt = "Error in exported rule '%s' (loaded from '%s')\n"; + + System.out.printf(fmt, exportName, loadSrc); + System.out.println(); + gex.printStackTrace(); + + System.out.println(); + System.out.println(); + } + } + } + } catch (IOException ioex) { + ioex.printStackTrace(); + } catch (URISyntaxException urisex) { + urisex.printStackTrace(); + } + } +} diff --git a/src/main/java/bjc/rgens/parser/RGrammars.java b/src/main/java/bjc/rgens/parser/RGrammars.java new file mode 100644 index 0000000..f74a756 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/RGrammars.java @@ -0,0 +1,67 @@ +package bjc.rgens.parser; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URI; +import java.nio.file.FileSystem; +import java.nio.file.FileSystems; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; + +/** + * Get access to the included grammars. + * + * @author Ben Culkin + */ +public class RGrammars { + private static RGrammarSet gramSet; + + private static void loadSet() { + try { + URI rsc = RGrammarTest.class.getResource("/server-config-sample.cfg").toURI(); + + Map env = new HashMap<>(); + env.put("create", "true"); + @SuppressWarnings("unused") + FileSystem zipfs = FileSystems.newFileSystem(rsc, env); + + Path cfgPath = Paths.get(rsc); + + gramSet = RGrammarSet.fromConfigFile(cfgPath); + } catch (IOException | URISyntaxException ex) { + RuntimeException rtex = new RuntimeException("Could not load grammars"); + + rtex.initCause(ex); + + throw rtex; + } + } + + /** + * Generate an exported rule. + * + * @param exportName + * The rule to generate. + * @return The generated rule + * @throws GrammarException + * If something went wrong. + */ + public static String generateExport(String exportName) throws GrammarException { + if (gramSet == null) + loadSet(); + + if (!gramSet.getExportedRules().contains(exportName)) { + throw new GrammarException(String.format("No exported rule named %s", exportName)); + } + + RGrammar gram = gramSet.getExportSource(exportName); + + String res = gram.generate(exportName); + if (exportName.contains("+")) + res = res.replaceAll("\\s+", ""); + + return res; + } +} diff --git a/src/main/java/bjc/rgens/parser/RegexRuleCase.java b/src/main/java/bjc/rgens/parser/RegexRuleCase.java new file mode 100644 index 0000000..5e03cd6 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/RegexRuleCase.java @@ -0,0 +1,32 @@ +package bjc.rgens.parser; + +import bjc.rgens.parser.elements.CaseElement; +import bjc.utils.funcdata.IList; + +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; + +public class RegexRuleCase extends RuleCase { + private Pattern patt; + + public RegexRuleCase(IList elements, String pattern) { + super(RuleCase.CaseType.REGEX); + + elementList = elements; + + try { + patt = Pattern.compile(pattern); + } catch (PatternSyntaxException psex) { + IllegalArgumentException iaex = + new IllegalArgumentException("This type requires a valid regular expression parameter"); + + iaex.initCause(psex); + + throw iaex; + } + } + + public Pattern getPattern() { + return patt; + } +} diff --git a/src/main/java/bjc/rgens/parser/Rule.java b/src/main/java/bjc/rgens/parser/Rule.java new file mode 100644 index 0000000..7043e0f --- /dev/null +++ b/src/main/java/bjc/rgens/parser/Rule.java @@ -0,0 +1,134 @@ +package bjc.rgens.parser; + +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.IList; + +import java.util.Random; + +/** + * A rule in a randomized grammar. + * + * @author EVE + */ +public class Rule { + /** The name of this grammar rule. */ + public final String name; + + /* The cases for this rule. */ + private IList cases; + + /** + * Create a new grammar rule. + * + * @param ruleName + * The name of the grammar rule. + * + * @throws IllegalArgumentException + * If the rule name is invalid. + */ + public Rule(String ruleName) { + if (ruleName == null) { + throw new NullPointerException("Rule name must not be null"); + } else if (ruleName.equals("")) { + throw new IllegalArgumentException("The empty string is not a valid rule name"); + } + + name = ruleName; + + cases = new FunctionalList<>(); + } + + /** + * Adds a case to the rule. + * + * @param cse + * The case to add. + */ + public void addCase(RuleCase cse) { + if (cse == null) { + throw new NullPointerException("Case must not be null"); + } + + cases.add(cse); + } + + /** + * Get a random case from this rule. + * + * @return + * A random case from this rule. + */ + public RuleCase getCase() { + return cases.randItem(); + } + + /** + * Get a random case from this rule. + * + * @param rnd + * The random number generator to use. + * + * @return + * A random case from this rule. + */ + public RuleCase getCase(Random rnd) { + return cases.randItem(rnd::nextInt); + } + + /** + * Get all the cases of this rule. + * + * @return + * All the cases in this rule. + */ + public IList getCases() { + return cases; + } + + /** + * Replace the current list of cases with a new one. + * + * @param cases + * The new list of cases. + */ + public void replaceCases(IList cases) { + this.cases = cases; + } + + @Override + public int hashCode() { + final int prime = 31; + + int result = 1; + result = prime * result + ((cases == null) ? 0 : cases.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + + if (obj == null) return false; + + if (!(obj instanceof Rule)) return false; + + Rule other = (Rule) obj; + + if (cases == null) { + if (other.cases != null) return false; + } else if (!cases.equals(other.cases)) return false; + + if (name == null) { + if (other.name != null) return false; + } else if (!name.equals(other.name)) return false; + + return true; + } + + @Override + public String toString() { + return String.format("Rule [ruleName='%s', ruleCases=%s]", name, cases); + } +} diff --git a/src/main/java/bjc/rgens/parser/RuleCase.java b/src/main/java/bjc/rgens/parser/RuleCase.java new file mode 100644 index 0000000..9c0a856 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/RuleCase.java @@ -0,0 +1,88 @@ +package bjc.rgens.parser; + +import bjc.rgens.parser.elements.CaseElement; +import bjc.utils.funcdata.IList; + +/* + * @NOTE + * If at some point we add new case types, they should go into subclasses, + * not into this class. + */ +/** + * A case in a rule in a randomized grammar. + * + * @author EVE + */ +public class RuleCase { + /** + * The possible types of a case. + * + * @author EVE + */ + public static enum CaseType { + /** A normal case, composed from a list of elements. */ + NORMAL, + /** A case that doesn't insert spaces. */ + SPACEFLATTEN, + /** A case that applies a regex after generation. */ + REGEX + } + + /** The type of this case. */ + public final CaseType type; + + /** + * The list of element values for this case. + * + *

Used For

+ *
+ *
NORMAL, SPACEFLATTEN
+ *
Used as the list of elementList the rule is composed of.
+ *
+ */ + protected IList elementList; + + protected RuleCase(CaseType typ) { + type = typ; + } + + /** + * Create a new case of the specified type that takes a element list + * parameter. + * + * @param typ + * The type of case to create. + * + * @param elements + * The element list parameter of the case. + * + * @throws IllegalArgumentException + * If this type doesn't take a element list parameter. + */ + public RuleCase(CaseType typ, IList elements) { + this(typ); + + switch (typ) { + case NORMAL: + case SPACEFLATTEN: + break; + case REGEX: + throw new IllegalArgumentException("This type requires an element list and a pattern"); + default: + throw new IllegalArgumentException("This type doesn't have a element list parameter"); + } + + elementList = elements; + } + + /** + * Get the element list value of this type. + * + * @return + * The element list value of this case, or null if this type + * doesn't have one. + */ + public IList getElements() { + return elementList; + } +} diff --git a/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java b/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java new file mode 100644 index 0000000..7229e92 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java @@ -0,0 +1,7 @@ +package bjc.rgens.parser.elements; + +public class BlankCaseElement extends LiteralCaseElement { + public BlankCaseElement() { + super(""); + } +} diff --git a/src/main/java/bjc/rgens/parser/elements/CaseElement.java b/src/main/java/bjc/rgens/parser/elements/CaseElement.java new file mode 100644 index 0000000..d74ab52 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/elements/CaseElement.java @@ -0,0 +1,147 @@ +package bjc.rgens.parser.elements; + +import bjc.rgens.parser.GrammarException; + +/* + * @TODO 10/11/17 Ben Culkin :CaseElementSplit Split this into multiple + * subclasses based off of a value of ElementType. + */ +/** + * A element in a rule case. + * + * @author EVE + */ +public class CaseElement { + /** + * The possible types of an element. + * + * @author EVE + */ + public static enum ElementType { + /** An element that represents a literal string. */ + LITERAL, + /** An element that represents a rule reference. */ + RULEREF, + /** An element that represents a random range. */ + RANGE, + /** An element that represents a variable that stores a string. */ + VARDEF, + /** + * An element that represents a variable that stores the result of generating a + * rule. + */ + EXPVARDEF; + } + + /* Regexps for marking rule types. */ + private static final String SPECIAL_CASELEM = "\\{[^}]+\\}"; + private static final String REFER_CASELEM = "\\[[^\\]]+\\]"; + private static final String RANGE_CASELM = "\\[\\d+\\.\\.\\d+\\]"; + + /** The type of this element. */ + public final ElementType type; + + /** + * Create a new case element. + * + * @param typ + * The type of this element. + */ + protected CaseElement(ElementType typ) { + type = typ; + } + + @Override + public String toString() { + switch (type) { + default: + return String.format("Unknown type '%s'", type); + } + } + + /** + * Create a case element from a string. + * + * @param csepart + * The string to convert. + * + * @return A case element representing the string. + */ + public static CaseElement createElement(String csepart) { + if (csepart == null) { + throw new NullPointerException("Case part cannot be null"); + } + + if (csepart.matches(SPECIAL_CASELEM)) { + /* Handle special cases. */ + String specialBody = csepart.substring(1, csepart.length() - 1); + + System.out.printf("\t\tTRACE: special body is '%s'\n", specialBody); + + if (specialBody.matches("\\S+:=\\S+")) { + /* Handle expanding variable definitions. */ + String[] parts = specialBody.split(":="); + + if (parts.length != 2) { + String msg = "Expanded variables must be a name and a definition, seperated by :="; + + throw new GrammarException(msg); + } + + return new ExpVariableCaseElement(parts[0], parts[1]); + } else if (specialBody.matches("\\S+=\\S+")) { + /* Handle regular variable definitions. */ + String[] parts = specialBody.split("="); + + if (parts.length != 2) { + String msg = "Variables must be a name and a definition, seperated by ="; + + throw new GrammarException(msg); + } + + return new LitVariableCaseElement(parts[0], parts[1]); + } else if (specialBody.matches("{empty}")) { + /* Literal blank, for empty cases. */ + return new BlankCaseElement(); + } else { + throw new IllegalArgumentException(String.format("Unknown special case part '%s'", specialBody)); + } + } else if (csepart.matches(REFER_CASELEM)) { + if (csepart.matches(RANGE_CASELM)) { + /* Handle ranges */ + String rawRange = csepart.substring(1, csepart.length() - 1); + + int firstNum = Integer.parseInt(rawRange.substring(0, rawRange.indexOf('.'))); + int secondNum = Integer.parseInt(rawRange.substring(rawRange.lastIndexOf('.') + 1)); + + return new RangeCaseElement(firstNum, secondNum); + } + + return new RuleCaseElement(csepart); + } else { + return new LiteralCaseElement(csepart); + } + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((type == null) ? 0 : type.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CaseElement other = (CaseElement) obj; + if (type != other.type) + return false; + return true; + } +} \ No newline at end of file diff --git a/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java b/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java new file mode 100644 index 0000000..30925e2 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java @@ -0,0 +1,7 @@ +package bjc.rgens.parser.elements; + +public class ExpVariableCaseElement extends VariableCaseElement { + public ExpVariableCaseElement(String name, String def) { + super(name, def, true); + } +} diff --git a/src/main/java/bjc/rgens/parser/elements/LitVariableCaseElement.java b/src/main/java/bjc/rgens/parser/elements/LitVariableCaseElement.java new file mode 100644 index 0000000..11035b1 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/elements/LitVariableCaseElement.java @@ -0,0 +1,7 @@ +package bjc.rgens.parser.elements; + +public class LitVariableCaseElement extends VariableCaseElement { + public LitVariableCaseElement(String name, String def) { + super(name, def, false); + } +} diff --git a/src/main/java/bjc/rgens/parser/elements/LiteralCaseElement.java b/src/main/java/bjc/rgens/parser/elements/LiteralCaseElement.java new file mode 100644 index 0000000..d96a32d --- /dev/null +++ b/src/main/java/bjc/rgens/parser/elements/LiteralCaseElement.java @@ -0,0 +1,7 @@ +package bjc.rgens.parser.elements; + +public class LiteralCaseElement extends StringCaseElement { + public LiteralCaseElement(String vl) { + super(vl, true); + } +} diff --git a/src/main/java/bjc/rgens/parser/elements/RangeCaseElement.java b/src/main/java/bjc/rgens/parser/elements/RangeCaseElement.java new file mode 100644 index 0000000..d98bc61 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/elements/RangeCaseElement.java @@ -0,0 +1,43 @@ +package bjc.rgens.parser.elements; + +public class RangeCaseElement extends CaseElement { + public final int begin; + public final int end; + + public RangeCaseElement(int beg, int en) { + super(ElementType.RANGE); + + begin = beg; + end = en; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + begin; + result = prime * result + end; + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + RangeCaseElement other = (RangeCaseElement) obj; + if (begin != other.begin) + return false; + if (end != other.end) + return false; + return true; + } + + @Override + public String toString() { + return String.format("[%d..%d]", begin, end); + } +} diff --git a/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java b/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java new file mode 100644 index 0000000..f4d3512 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java @@ -0,0 +1,7 @@ +package bjc.rgens.parser.elements; + +public class RuleCaseElement extends StringCaseElement { + public RuleCaseElement(String vl) { + super(vl, false); + } +} diff --git a/src/main/java/bjc/rgens/parser/elements/StringCaseElement.java b/src/main/java/bjc/rgens/parser/elements/StringCaseElement.java new file mode 100644 index 0000000..0e64fd3 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/elements/StringCaseElement.java @@ -0,0 +1,41 @@ +package bjc.rgens.parser.elements; + +public class StringCaseElement extends CaseElement { + public final String val; + + protected StringCaseElement(String vl, boolean isLiteral) { + super(isLiteral ? ElementType.LITERAL : ElementType.RULEREF); + + val = vl; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((val == null) ? 0 : val.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + StringCaseElement other = (StringCaseElement) obj; + if (val == null) { + if (other.val != null) + return false; + } else if (!val.equals(other.val)) + return false; + return true; + } + + @Override + public String toString() { + return val; + } +} diff --git a/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java b/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java new file mode 100644 index 0000000..920445a --- /dev/null +++ b/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java @@ -0,0 +1,60 @@ +package bjc.rgens.parser.elements; + +public class VariableCaseElement extends CaseElement { + /** + * The name of the variable this element defines. + */ + public final String varName; + + /** + * The definition of the variable this element defines. + */ + public final String varDef; + + public VariableCaseElement(String name, String def, boolean isExp) { + super(isExp ? ElementType.EXPVARDEF : ElementType.VARDEF); + + varName = name; + varDef = def; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((varDef == null) ? 0 : varDef.hashCode()); + result = prime * result + ((varName == null) ? 0 : varName.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + VariableCaseElement other = (VariableCaseElement) obj; + if (varDef == null) { + if (other.varDef != null) + return false; + } else if (!varDef.equals(other.varDef)) + return false; + if (varName == null) { + if (other.varName != null) + return false; + } else if (!varName.equals(other.varName)) + return false; + return true; + } + + @Override + public String toString() { + if (type == ElementType.VARDEF) { + return String.format("{%s:=%s}", varName, varDef); + } else { + return String.format("{%s=%s}", varName, varDef); + } + } +} diff --git a/src/main/java/bjc/rgens/parser/new-syntax.txt b/src/main/java/bjc/rgens/parser/new-syntax.txt new file mode 100644 index 0000000..f6578b4 --- /dev/null +++ b/src/main/java/bjc/rgens/parser/new-syntax.txt @@ -0,0 +1,13 @@ +[grammar] → ([block] ( / \n\.\n ? / [block])*) ? + +[block] → [pragma - block] +→ [rule - block] +→ [where - block] + +[pragma - block] → [pragma] ( / \n( ? !\t) / [pragma])* + +[rule - block] → [rule - decl] [rule - case] ( / \n\t / [rule - case])* + +[where - block] → where / \n\t / ([rule - block] / \n\t / ) + in / \n\t / [rule - block] + +[pragma] → pragma [pragma - name] [pragma - body] diff --git a/src/main/java/bjc/rgens/text/markov/Markov.java b/src/main/java/bjc/rgens/text/markov/Markov.java new file mode 100644 index 0000000..e21d60f --- /dev/null +++ b/src/main/java/bjc/rgens/text/markov/Markov.java @@ -0,0 +1,208 @@ +package bjc.rgens.text.markov; + +import java.util.Map.Entry; +import java.util.*; + +/** + * Represents a k-character substring. + * + * Can give a pseudo-random suffix character based on probability. + * + * @author Daniel Friedman (Fall 2011) + */ +public class Markov { + String substring; + int count = 0; + + TreeMap map; + + /** + * Constructs a Markov object from a given substring. + * + * @param substr + * The given substring. + */ + public Markov(String substr) { + this.substring = substr; + + map = new TreeMap<>(); + + add(); + } + + /** + * Constructs a Markov object from a given substring and suffix + * character. + * + * Suffix characters are stored in a TreeMap. + * + * @param substr + * The specified substring. + * + * @param suffix + * The specified suffix. + */ + public Markov(String substr, Character suffix) { + this.substring = substr; + + map = new TreeMap<>(); + + add(suffix); + } + + /** + * Increments the count of number of times the substring appears in a + * text. + */ + public void add() { + count++; + } + + /** + * Adds a suffix character to the TreeMap. + * + * @param c + * The suffix character to be added. + */ + public void add(char c) { + add(); + + if (map.containsKey(c)) { + int frequency = map.get(c); + map.put(c, frequency + 1); + } else { + map.put(c, 1); + } + } + + /** + * Gives the frequency count of a suffix character; that is, the number + * of times the specified suffix follows the substring in a text. + * + * @param c + * The specified suffix. + * + * @return + * The frequency count. + */ + public int getFrequencyCount(char c) { + if (!map.containsKey(c)) { + return -1; + } + + return map.get(c); + } + + /** + * Gives a percentage of frequency count / number of total suffixes. + * + * @param c + * The character to look for the frequency for. + * + * @return + * The ratio of frequency count of a single character to the total + * number of suffixes. + */ + public double getCharFrequency(char c) { + if (getFrequencyCount(c) == -1) { + return -1; + } + + return (double) getFrequencyCount(c) / (double) count; + } + + /** + * Finds whether or not the given suffix is in the TreeMap. + * + * @param c + * The given suffix. + * + * @return + * True if the suffix exists in the TreeMap, false otherwise. + */ + public boolean containsChar(char c) { + if (!map.containsKey(c)) { + return false; + } + + return true; + } + + /** + * Gives the number of times this substring occurs in a text. + * + * @return + * Said number of times. + */ + public int count() { + return count; + } + + /** + * Gives the TreeMap. + * + * @return + * The TreeMap. + */ + public TreeMap getMap() { + return map; + } + + /** + * Using probability, returns a pseudo-random character to follow the + * substring. + * + * Character possibilities are added to an ArrayList (duplicates + * allowed), and a random number from 0 to the last index in the + * ArrayList is picked. Since more common suffixes occupy more indices + * in the ArrayList, the probability of getting a more common suffix is + * greater than the probability of getting a less common suffix. + * + * @return + * The pseudo-random suffix. + */ + public char random() { + Character ret = null; + + Set> s = map.entrySet(); + + Iterator> it = s.iterator(); + + ArrayList suffixes = new ArrayList<>(); + + while (it.hasNext()) { + Entry tmp = it.next(); + + for (int i = 0; i < tmp.getValue(); i++) { + suffixes.add(tmp.getKey()); + } + } + + Random rand = new Random(); + + int retIndex = rand.nextInt(suffixes.size()); + ret = suffixes.get(retIndex); + + return ret; + } + + /** + * Gives a String representation of the Markov object. + * + * @return + * Said String representation. + */ + @Override + public String toString() { + String ret = "Substring: " + substring + ", Count: " + count; + ret += "\n" + "Suffixes and frequency counts: "; + + for (Entry entry : map.entrySet()) { + char key = entry.getKey(); + int value = entry.getValue(); + ret += "\n" + "Suffix: " + key + ", frequency count: " + value; + } + + return ret; + } +} diff --git a/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java b/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java new file mode 100644 index 0000000..cebf2bc --- /dev/null +++ b/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java @@ -0,0 +1,70 @@ +package bjc.rgens.text.markov; + +import java.util.Map; + +/** + * A standalone Markov generator. + * + * @author bjculkin + */ +public class StandaloneMarkov { + /* The order of the generator. */ + private int ord; + + /* The generators to use. */ + private Map hash; + /* The initial string. */ + private String first; + + /** + * Create a new standalone Markov generator. + * + * @param order + * The order of this generator. + * + * @param markovHash + * The generators to use. + * + * @param firstSub + * The string to start out with. + */ + public StandaloneMarkov(int order, Map markovHash, String firstSub) { + ord = order; + hash = markovHash; + first = firstSub; + } + + /** + * Generate random text from the markov generator. + * + * @param charsToGenerate + * The number of characters of text to generate. + * + * @return + * The randomly generate text. + */ + public String generateTextFromMarkov(int charsToGenerate) { + StringBuilder text = new StringBuilder(); + + for (int i = ord; i < charsToGenerate; i++) { + if (i == ord) { + text.append(first); + + if (text.length() > ord) i = text.length(); + } + + String sub = text.substring(i - ord, i); + Markov tmp = hash.get(sub); + + if (tmp != null) { + Character nextChar = tmp.random(); + + text.append(nextChar); + } else { + i = ord - 1; + } + } + + return text.toString(); + } +} diff --git a/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java b/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java new file mode 100644 index 0000000..339e8d5 --- /dev/null +++ b/src/main/java/bjc/rgens/text/markov/StandaloneTextGenerator.java @@ -0,0 +1,76 @@ +package bjc.rgens.text.markov; + +import java.io.IOException; +import java.io.Reader; +import java.util.HashMap; +import java.util.Map; + +/** + * Create a Markov generate from a provided source. + * + * @author bjculkin + */ +public class StandaloneTextGenerator { + /** + * Build a markov generator from a provided source. + * + * @param order + * The markov order to use. + * + * @param reader + * The source to seed the generator from. + * + * @return + * The markov generator for the provided text. + */ + public static StandaloneMarkov generateMarkovMap(int order, Reader reader) { + Map hash = new HashMap<>(); + + Character next = null; + + try { + next = (char) reader.read(); + } catch (IOException e1) { + System.out.println("IOException in stepping through the reader"); + + e1.printStackTrace(); + + System.exit(1); + } + + StringBuilder origFileBuffer = new StringBuilder(); + + while (next != null && Character.isDefined(next)) { + Character.toString(next); + origFileBuffer.append(next); + + try { + next = (char) reader.read(); + } catch (IOException e) { + System.out.println("IOException in stepping through the reader"); + + e.printStackTrace(); + } + + } + + String origFile = origFileBuffer.toString(); + String firstSub = origFile.substring(0, order); + + for (int i = 0; i < origFile.length() - order; i++) { + String sub = origFile.substring(i, i + order); + Character suffix = origFile.charAt(i + order); + + if (hash.containsKey(sub)) { + Markov marvin = hash.get(sub); + marvin.add(suffix); + hash.put(sub, marvin); + } else { + Markov marvin = new Markov(sub, suffix); + hash.put(sub, marvin); + } + } + + return new StandaloneMarkov(order, hash, firstSub); + } +} diff --git a/src/main/java/bjc/rgens/text/markov/TextGenerator.java b/src/main/java/bjc/rgens/text/markov/TextGenerator.java new file mode 100644 index 0000000..f629d49 --- /dev/null +++ b/src/main/java/bjc/rgens/text/markov/TextGenerator.java @@ -0,0 +1,73 @@ +package bjc.rgens.text.markov; + +import java.io.*; + +/** + * Generate text from a markov model of an input text + * + * @author ben + * + */ +public class TextGenerator { + /** + * Main method. + * + * @param args + * When used with three arguments, the first represents the k-order + * of the Markov objects. The second represents the number of + * characters to print out. The third represents the file to be + * read. + * + * When used with two arguments, the first represents the k-order + * of the Markov objects, and the second represents the file to be + * read. The generated text will be the same number of characters + * as the original file. + */ + public static void main(String[] args) { + int k = 0; + int M = 0; + + String file = ""; + StringBuilder text = new StringBuilder(); + + if (args.length == 3) { + k = Integer.parseInt(args[0]); + M = Integer.parseInt(args[1]); + + file = args[2]; + } else if (args.length == 2) { + k = Integer.parseInt(args[0]); + + file = args[1]; + } else { + System.out.println("\n" + "Usage: java TextGenerator k M file"); + System.out.println("where k is the markov order, M is the number"); + System.out.println("of characters to be printed, and file is the"); + System.out.println("name of the file to print from. M may be left out." + "\n"); + System.exit(1); + } + + StandaloneMarkov markov = null; + + try (FileReader reader = new FileReader(file)) { + markov = StandaloneTextGenerator.generateMarkovMap(k, reader); + + String generatedText = markov.generateTextFromMarkov(M); + String desiredText = generatedText.substring(0, Math.min(M, text.length())); + + System.out.println(desiredText); + } catch (FileNotFoundException e) { + System.out.println("File not found."); + + e.printStackTrace(); + + System.exit(1); + } catch (IOException ioex) { + System.out.println("IOException"); + + ioex.printStackTrace(); + + System.exit(1); + } + } +} diff --git a/src/main/sql/db_schema.sql b/src/main/sql/db_schema.sql new file mode 100644 index 0000000..553c7a8 --- /dev/null +++ b/src/main/sql/db_schema.sql @@ -0,0 +1,15 @@ +create table Rules ( + ruleid serial, + name varchar(255) not null, + casecount int, + primary key(id) +); + +create index Rules_name on Rules(name); + +create table RuleCases ( + ruleid serial, + cse varchar(255) array +); + +create index RuleCase_id on RuleCases(ruleid); diff --git a/todos.txt b/todos.txt new file mode 100644 index 0000000..e4e39cd --- /dev/null +++ b/todos.txt @@ -0,0 +1,56 @@ +@TODO 10/11/17 Ben Culkin :GrammarReorg + Better organize the provided sample grammars. + +@TODO 10/11/17 Ben Culkin :Determinism + Add a way to get the grammar to pick rules in a deterministic fashion, + so as to be able to iterate all of the rules. + +@TODO 10/11/17 Ben Culkin :ExportSanity + Figure out a way to organize exports instead of just sticking them all + into the global namespace. Maybe use the @ symbol for 'foreign rule + references' (FRRs) + + ADDENDA: 10/26/17 + We now have the '^' syntax to avoid shadowing issues, but this + doesn't avoid the issue with duplicate exports. + +@TODO 10/23/17 Ben Culkin :Casing + Provide some way to convert rules into different cases. + +@TODO 10/23/17 Ben Culkin :Spacing + Find a saner way to do spacing. + rules work well for some things, but + what is needed is some way to do it only one level deep. Possibly some + kind of pragma to convert a rule to a single-level spacer? + + ADDENDA: 10/24/17 + We now have a partial solution in 'despace-rule'. Now, grammars need to + be adapted to use it. + +@TODO 10/23/17 Ben Culkin :Pluralizing + Add some way to say to pluralize the contents of a rule + +@TODO 10/23/17 Ben Culkin :Extensions + Add some soft of pragmas to allow the loading of extensions that provide + custom rules/case types/pragmas and things like that + +@TODO 10/30/17 Ben Culkin :RegexPragma + Add a pragma that applies a regex substitution to the generated version + of a rule. + +@TODO 4/25/18 Ben Culkin :Debugging + Add a way to print out the rules as a tree format, so as to perform + better debugging of rules. + + Once this has been done, consider doing a CLI interface that allows + manipulating and using grammars. + +@TODO 5/10/18 Ben Culkin :Despace + Add a generalized form of despace-rule that allows inserting arbitray + text between rule bits. Maybe call it 'intersperse-rule'? + +@TODO 5/10/18 Ben Culkin :RuleInclusion + Add some way to sort of 'import' a rules body into another rule so as to + not throw off probability by splitting. + +@TODO 5/18/18 Ben Culkin :PragmaErrors + Give better error messages for malformed pragmas -- cgit v1.2.3