diff options
| -rwxr-xr-x | data/misc/700000items.gram | 12 | ||||
| -rwxr-xr-x | data/new-sample-grammars/cbs.gram | 73 | ||||
| -rw-r--r-- | data/new-sample-grammars/drakensang/armor.gram | 19 | ||||
| -rw-r--r-- | data/new-sample-grammars/drakensang/gems.gram | 39 | ||||
| -rwxr-xr-x | data/new-sample-grammars/repinsult.gram | 13 | ||||
| -rwxr-xr-x | data/rpg-tools-cd/wands.gram | 80 | ||||
| -rwxr-xr-x | data/sample-grammars/acronym.gram | 13 | ||||
| -rwxr-xr-x | data/sample-grammars/diablo-ii/diabloii.gram | 40 | ||||
| -rwxr-xr-x | data/sample-grammars/dungeondressing/abandoned.gram | 2 | ||||
| -rwxr-xr-x | data/server-config-sample.cfg | 3 | ||||
| -rwxr-xr-x | dotest.sh | 3 | ||||
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/RGrammar.java | 1 | ||||
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/RGrammarTest.java | 2 | ||||
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/RuleCase.java | 8 | ||||
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java | 1 | ||||
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java | 1 |
16 files changed, 141 insertions, 169 deletions
diff --git a/data/misc/700000items.gram b/data/misc/700000items.gram index ae4f2ae..ec099f5 100755 --- a/data/misc/700000items.gram +++ b/data/misc/700000items.gram @@ -1,12 +1,12 @@ -[item-name] [noun] +[isaac-item-name] [noun] -pragma prefix-with [item-name] [post] -pragma prefix-with [item-name] <&1..2> [adj] -pragma prefix-with [item-name] [pre] +pragma prefix-with [isaac-item-name] [post] +pragma prefix-with [isaac-item-name] <&1..2> [adj] +pragma prefix-with [isaac-item-name] [pre] -pragma suffix-with [item-name] [end] +pragma suffix-with [isaac-item-name] [end] -pragma initial-rule [item-name] +pragma initial-rule [isaac-item-name] [noun] Boy Kid diff --git a/data/new-sample-grammars/cbs.gram b/data/new-sample-grammars/cbs.gram index dd3e76d..a72de3e 100755 --- a/data/new-sample-grammars/cbs.gram +++ b/data/new-sample-grammars/cbs.gram @@ -94,17 +94,12 @@ pragma prefix-with [boss-title] [boss-title-co] [boss-title-vice] Technical Manifesto -[boss-department] [boss-department-1] - [boss-department-1] - [boss-department-1] - [boss-department-1] +[boss-department] <^4> [boss-department-1] [boss-department-2] [boss-officer] Catalyst Futurist - Officer - Officer - Officer + <^3> Officer [boss-dept-of] of [boss-department-1] @@ -536,8 +531,7 @@ pragma export-rule [boss] game changer visionary -[person-single] [person-single-spec] - [person-single-spec] +[person-single] <^2> [person-single-spec] [boss] [person-plural] key people @@ -940,22 +934,12 @@ pragma export-rule [boss] pragma export-rule [growth] -[thing-with-adj] [thing-adjective] , [thing-adjective] [thing-atom] - [thing-adjective] , [thing-adjective] [thing-atom] - [thing-adjective] , [thing-adjective] [thing-atom] - [thing-adjective] and [thing-adjective] [thing-atom] - [thing-adjective] and [thing-adjective] [thing-atom] - [thing-adjective] and [thing-adjective] [thing-atom] - [thing-adjective] [thing-atom] - [thing-adjective] [thing-atom] - [thing-adjective] [thing-atom] - [thing-adjective] [thing-atom] - [thing-adjective] [thing-atom] - [thing-adjective] and/or [thing-adjective] [thing-atom] - [thing-adjective] and/or [thing-adjective] [thing-atom] +[thing-with-adj] <^3> [thing-adjective] , [thing-adjective] [thing-atom] + <^3> [thing-adjective] and [thing-adjective] [thing-atom] + <^4> [thing-adjective] [thing-atom] + <^2> [thing-adjective] and/or [thing-adjective] [thing-atom] [growth] - [thing-adjective] [thing-adjective] [thing-adjective] [thing-atom] - [thing-adjective] [thing-adjective] [thing-adjective] [thing-adjective] [thing-atom] + <^2> [thing-adjective] [thing-adjective] [thing-adjective] [thing-atom] [thing] [thing-with-adj] [thing-atom] @@ -1023,21 +1007,13 @@ pragma export-rule [thing] gradually aggressively -[eventual-adverb] {empty} - {empty} - {empty} +[eventual-adverb] <^3> {empty} [eventual-adverb-1] [random-article] the our - a - an - a - an - a - an - a - an + <^4> a + <^4> an {empty} [eventual-postfix-adverb-1] going forward @@ -1082,10 +1058,7 @@ pragma export-rule [thing] , paving the way for [random-article] [thing] [eventual-postfix-adverb] [eventual-postfix-adverb-1] - {empty} - {empty} - {empty} - {empty} + <^4> {empty} pragma export-rule [eventual-postfix-adverb-1] @@ -1306,19 +1279,11 @@ pragma export-rule [eventual-postfix-adverb-1] [thing-verb-def-ending] add value deliver maximum impact -[thing-verb-ending] [thing-verb-thing] [random-article] [thing] - [thing-verb-thing] [random-article] [thing] - [thing-verb-thing] [random-article] [thing] - [thing-verb-thing] [random-article] [thing] - [thing-verb-person] the [person] - [thing-verb-person] the [person] - [thing-verb-person] the [person] - [thing-verb-person] the [person] +[thing-verb-ending] <^4> [thing-verb-thing] [random-article] [thing] + <^4> [thing-verb-person] the [person] [thing-verb-def-ending] -[person-verb-ending] [person-verb-def-ending] - [person-verb-def-ending] - [person-verb-def-ending] +[person-verb-ending] <^3> [person-verb-def-ending] [person-verb-badthing] [random-article] [bad-things] [person-verb-thing] [random-article] [thing] @@ -1343,12 +1308,8 @@ pragma export-rule [verbphrase-coll-1] we will sharpen our business models to [proposition] [faukon] [person-verb-ending] [eventual-postfix-adverb] - the [person] [eventual-adverb] [person-verb-ending] - the [person] [eventual-adverb] [person-verb-ending] - the [person] [eventual-adverb] [person-verb-ending] - [random-article] [thing] [eventual-adverb] [thing-verb-ending] [eventual-postfix-adverb] - [random-article] [thing] [eventual-adverb] [thing-verb-ending] [eventual-postfix-adverb] - [random-article] [thing] [eventual-adverb] [thing-verb-ending] [eventual-postfix-adverb] + <^3> the [person] [eventual-adverb] [person-verb-ending] + <^3> [random-article] [thing] [eventual-adverb] [thing-verb-ending] [eventual-postfix-adverb] [thing] and [thing] [eventual-adverb] [thing-verb-ending] [eventual-postfix-adverb] [thing] , [thing] and [thing] [eventual-adverb] [thing-verb-ending] [eventual-postfix-adverb] there can be no [growth] until we can achieve [random-article] [growth] diff --git a/data/new-sample-grammars/drakensang/armor.gram b/data/new-sample-grammars/drakensang/armor.gram index 090b69d..b36d93c 100644 --- a/data/new-sample-grammars/drakensang/armor.gram +++ b/data/new-sample-grammars/drakensang/armor.gram @@ -61,21 +61,16 @@ pragma initial-rule [ds-armor] mitts jerkin -[ranger-armorprefix] [ranger-armorprefix-1] - [ranger-armormaterial] - [ranger-armorprefix-combo] +[ranger-armorprefix] {empty} + +pragma prefix-with [ranger-armorprefix] [ranger-armormaterial] [ranger-armorprefix-1] +pragma prefix-with [ranger-armorprefix] [ranger-armorprefix-prefix] [ranger-armorprefix-prefix] grim fearsome spirit cave -pragma prefix-with [ranger-armorprefix] [ranger-armorprefix-prefix] - -[ranger-armorprefix-combo] {empty} - -pragma prefix-with [ranger-armorprefix-combo] [ranger-armormaterial] [ranger-armorprefix-1] - [ranger-armorprefix-1] stalkers hunters wolf @@ -112,11 +107,9 @@ pragma prefix-with [ranger-armorprefix-combo] [ranger-armormaterial] [ranger-arm fist mask -[spellweaver-armorprefix] [spellweaver-armorprefix-1] - [spellweaver-armormaterial] +[spellweaver-armorprefix] {empty} -[spellweaver-armorprefix-combo] [spellweaver-armormaterial] [spellweaver-armorprefix-1] - [spellweaver-armorprefix-1] [spellweaver-armormaterial] +pragma prefix-with [spellweaver-armorprefix] [spellweaver-armormaterial] [spellweaver-armorprefix-1] [spellweaver-armorprefix-1] apprentice acolyte diff --git a/data/new-sample-grammars/drakensang/gems.gram b/data/new-sample-grammars/drakensang/gems.gram index 655bdcb..8ce0467 100644 --- a/data/new-sample-grammars/drakensang/gems.gram +++ b/data/new-sample-grammars/drakensang/gems.gram @@ -1,12 +1,13 @@ -[ds-gem] [gem-type] - [gem-type] +[ds-gem] <^2> [gem-type] [gem-type] of qaizah [unique-gem] +pragma prefix-with [ds-gem] [gem-adjective] +pragma prefix-with [ds-gem] [gem-quality] + pragma initial-rule [ds-gem] -[gem-quality] [gem-quality-normal] - [gem-quality-normal] +[gem-quality] <^2> [gem-quality-normal] [gem-quality-alt] [gem-quality-normal] flawed @@ -19,6 +20,7 @@ pragma initial-rule [ds-gem] royal [gem-quality-alt] [gem-quality-alt-1] + [gem-quality-alt-2] [gem-quality-alt-1] lesser cut @@ -34,9 +36,6 @@ pragma initial-rule [ds-gem] festive solstice -pragma prefix-with [ds-gem] [gem-adjective] -pragma prefix-with [ds-gem] [gem-quality] - [gem-type] ruby onyx sapphire @@ -45,6 +44,9 @@ pragma prefix-with [ds-gem] [gem-quality] amethyst peridot +pragma prefix-with [gem-type] [gem-descr] +pragma suffix-with [gem-type] [gem-category] + [gem-category] gem jewel star @@ -59,24 +61,23 @@ pragma prefix-with [ds-gem] [gem-quality] 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] +[unique-gem] [unique-type] [gem-category] -[unique-trail] insight +pragma suffix-with [unique-gem] [unique-trail] +pragma prefix-with [unique-gem] [unique-lead] + +[unique-trail] of [unique-trail-1] + +[unique-trail-1] insight immunity rage acceleration shadows willpower +pragma prefix-with [unique-trail-1] [gem-descr] + [unique-lead] solstice fluorite shadow @@ -86,6 +87,4 @@ pragma suffix-with [gem-type] [gem-category] [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] +pragma prefix-with [unique-type] [gem-descr] [gem-descr] diff --git a/data/new-sample-grammars/repinsult.gram b/data/new-sample-grammars/repinsult.gram index 30ac89d..efc4115 100755 --- a/data/new-sample-grammars/repinsult.gram +++ b/data/new-sample-grammars/repinsult.gram @@ -181,16 +181,3 @@ pragma initial-rule [rep-insult] 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 index 2bf7cd8..0acbbd4 100755 --- a/data/rpg-tools-cd/wands.gram +++ b/data/rpg-tools-cd/wands.gram @@ -1,21 +1,21 @@ -[wand] a wand - a [material] wand - a [wand-tip] wand +[wand] a [wand-tip] wand a [material] [wand-tip] wand + <^2> [untipped-wand] + +[untipped-wand] a wand + a [material] wand -pragma suffix-with [wand] [tipped] -pragma suffix-with [wand] [ornament] -pragma suffix-with [wand] [inscription] +pragma suffix-with [untipped-wand] [tipped] +pragma suffix-with [wand] [ornament] [inscription] pragma initial-rule [wand] -[material] - ivory +[material] ivory glass ash bone - [material-metal] - [material-wood] + <^4> [material-metal] + <^4> [material-wood] [tipped] tipped with a [tip] @@ -24,9 +24,10 @@ pragma initial-rule [wand] pragma despace-rule [wand-tip] [ornament] decorated with [ornaments] + adorned with [ornaments] [inscription] inscribed with [inscriptions] - with a [inscriptions] inscribed on it + with [inscriptions] inscribed on it [material-wood] teak ironwood @@ -54,8 +55,8 @@ pragma despace-rule [wand-tip] dessicated eye pentagram crescent moon - [tip-jewel] - [tip-metal] + <^4> [tip-jewel] + <^4> [tip-metal] [tip-jewel] diamond amethyst @@ -77,16 +78,8 @@ pragma despace-rule [wand-tip] feathers glitter leather braids - [ornaments-sigils] - [ornaments-creatures] - [ornaments-elements] - -[ornaments-sigils] lucky charms - hieroglyphs - alchemy signs - holy symbols - unholy symbols - arcane sigils + <^3> [ornaments-creatures] + <^3> [ornaments-elements] [ornaments-elements] waves lightning @@ -97,23 +90,50 @@ pragma despace-rule [wand-tip] dragons spiders and insects -[inscriptions] unreadable - gnomish +[inscriptions] [inscribed-sigils] + +pragma prefix-with [inscriptions] [inscribed-language] + +[inscribed-sigils] lucky charms + hieroglyphs + alchemy signs + holy symbols + unholy symbols + arcane sigils + runes + scriptures + warnings + +[inscribed-language] [inscribed-language-mod] + +pragma suffix-with [inscribed-language] [inscribed-language-base] +pragma prefix-with [inscribed-language] [inscribed-mod] + +[inscribed-language-base] gnomish aboleth - abyssal aquan dwarven draconic - lost tongue sphinx ignan orcish elven dreemspeech - celestial - runes auran sylvan terran - druidic + +[inscribed-language-mod] unreadable + runic + script infernal + celestial + abyssal + draconic + druidic + +[inscribed-mod] ancient + faint + illegible + glowing + eldritch diff --git a/data/sample-grammars/acronym.gram b/data/sample-grammars/acronym.gram index ed18cfc..1118732 100755 --- a/data/sample-grammars/acronym.gram +++ b/data/sample-grammars/acronym.gram @@ -1,17 +1,16 @@ -[acronym] [acronym-part] - [acronym-part] - [acronym-part] +[acronym] [acronym+1] + +[acronym+1] [acronym-phrase] [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] +[acronym-part] [acronym+part] + +[acronym+part] [join-acronym] [dot-acronym] pragma export-rule [acronym-part] diff --git a/data/sample-grammars/diablo-ii/diabloii.gram b/data/sample-grammars/diablo-ii/diabloii.gram index df45482..2c02b6c 100755 --- a/data/sample-grammars/diablo-ii/diabloii.gram +++ b/data/sample-grammars/diablo-ii/diabloii.gram @@ -1,6 +1,6 @@ -[base-treasures] [base-treasure] - [quote-treasure] as well as [quote-treasure] - [quote-treasure] or [quote-treasure] +[base-treasures] <^4> [base-treasure] + <^2> [quote-treasure] as well as [quote-treasure] + <^2> [quote-treasure] or [quote-treasure] [quote-treasure] , and [quote-treasure] as well as [quote-treasure] [quote-treasure] , [quote-treasure] or [quote-treasure] @@ -11,51 +11,49 @@ pragma initial-rule [base-treasures] pragma despace-rule [quote-treasure] [base-treasure] a [item] - a [item] - a [item] [non-item] -[non-item] [money] - [money] - [money] - [money] +[non-item] <^4> [money] nothing +pragma export-rule [non-item] + [money] [diablo-amount] [money-type] + [diablo-amount] [metal-type] [money-type] -[diablo-amount] 1 +[diablo-amount] 2 5 10 20 50 + 50 100 200 500 1000 +# Try to advance with a two out of three chance, 10 attempts +pragma enable-binomial [diablo-amount] 2 3 10 + pragma export-rule [diablo-amount] [money-type] coins -pragma prefix-with [money-type] [metal-type] +#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] +pragma enable-descent [metal-type] 2 + +[item] <^4> [item-types] + <^2> [item-types] [d2-suffix] + <^2> [d2-prefix] [item-types] [d2-prefix] [item-types] [d2-suffix] -[item-types] [d2-item-type] - [d2-item-type] +[item-types] <^2> [d2-item-type] [ds-items] [^item] diff --git a/data/sample-grammars/dungeondressing/abandoned.gram b/data/sample-grammars/dungeondressing/abandoned.gram index c9ed653..2102909 100755 --- a/data/sample-grammars/dungeondressing/abandoned.gram +++ b/data/sample-grammars/dungeondressing/abandoned.gram @@ -1,4 +1,4 @@ -[abandoned] while exploring the abandoned [abandon-place] , a [abandon-person] sneaks up on you [abandon-motion] . +[abandoned] while exploring the [{empty}|abandoned] [abandon-place] , a [abandon-person] sneaks up on you [abandon-motion] . pragma initial-rule [abandoned] diff --git a/data/server-config-sample.cfg b/data/server-config-sample.cfg index 8afbbf3..417e055 100755 --- a/data/server-config-sample.cfg +++ b/data/server-config-sample.cfg @@ -82,6 +82,9 @@ diabloii-suffixes sample-grammars/diablo-ii/diabloiisuffixes.gram # Vaults of Nagoh turboghoul-hats sample-grammars/vaultsofnagoh/turboghoul-hats.gram +# RPG tools +wand rpg-tools-cd/wands.gram + # Set II of grammars cbs new-sample-grammars/cbs.gram repinsults new-sample-grammars/repinsult.gram @@ -2,4 +2,5 @@ mvn clean compile exec:java > outp.txt 2> error.txt; -tail -n +32 outp.txt | view -c "normal! zR" -; +tail -n +32 outp.txt | view -c "normal! zR" -c "tabe error.txt" -c "normal! gt" -; +# tail -n +32 outp.txt | view -c "normal! zR" -; diff --git a/src/main/java/bjc/rgens/parser/RGrammar.java b/src/main/java/bjc/rgens/parser/RGrammar.java index e650a27..1d33dfe 100755 --- a/src/main/java/bjc/rgens/parser/RGrammar.java +++ b/src/main/java/bjc/rgens/parser/RGrammar.java @@ -159,6 +159,7 @@ public class RGrammar { if(rl.doRecur()) { RuleCase start = rules.get(fromRule).getCase(state.rnd); + System.err.printf("\tFINE: Generating case %d (from %s)\n", start.serial, fromRule); generateCase(start, state); diff --git a/src/main/java/bjc/rgens/parser/RGrammarTest.java b/src/main/java/bjc/rgens/parser/RGrammarTest.java index c86336c..e420c21 100755 --- a/src/main/java/bjc/rgens/parser/RGrammarTest.java +++ b/src/main/java/bjc/rgens/parser/RGrammarTest.java @@ -83,7 +83,7 @@ public class RGrammarTest { long genDur = endGenTime - startGenTime; if(gramSet.PERF) - System.err.printf("PERF: Generated %s 100 times in %d ns (%f s)\n", exportName, genDur, genDur / 1000000000.0); + System.err.printf("PERF: Generated %s 100 times in %d ns (%f s)\n\n\n", exportName, genDur, genDur / 1000000000.0); } } catch (IOException ioex) { ioex.printStackTrace(); diff --git a/src/main/java/bjc/rgens/parser/RuleCase.java b/src/main/java/bjc/rgens/parser/RuleCase.java index 21a7ed6..3581d54 100755 --- a/src/main/java/bjc/rgens/parser/RuleCase.java +++ b/src/main/java/bjc/rgens/parser/RuleCase.java @@ -14,6 +14,10 @@ import bjc.utils.funcdata.IList; * @author EVE */ public abstract class RuleCase { + public final int serial; + + private static int nextSerial = 0; + /** * The possible types of a case. * @@ -45,7 +49,11 @@ public abstract class RuleCase { protected IList<CaseElement> elementList; protected RuleCase(CaseType typ) { + serial = nextSerial; + type = typ; + + nextSerial += 1; } /** diff --git a/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java b/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java index 9c5ad1b..5c66e9f 100755 --- a/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java +++ b/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java @@ -21,6 +21,7 @@ public class ExpVariableCaseElement extends VariableCaseElement { if(rl.doRecur()) { RuleCase destCase = state.rules.get(varDef).getCase(); + System.err.printf("\tFINE: Generating case %d (from %s)\n", destCase.serial, varDef); state.gram.generateCase(destCase, newState); diff --git a/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java b/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java index 0869a2f..7bab6bf 100755 --- a/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java +++ b/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java @@ -37,6 +37,7 @@ public abstract class RuleCaseElement extends StringCaseElement { if(rl.doRecur()) { RuleCase cse = rl.getCase(state.rnd); + System.err.printf("\tFINE: Generating case %d (from %s)\n", cse.serial, actName); state.gram.generateCase(cse, newState); |
